|
| 1 | +--- |
| 2 | +reviewers: |
| 3 | +- xirehat |
| 4 | +title: "نمای کلی" |
| 5 | +description: > |
| 6 | + کوبرنتیز یک پلتفرم متنباز، قابل حمل و قابل توسعه برای مدیریت حجم کار و سرویسهای کانتینری است که پیکربندی اعلانی و اتوماسیون را تسهیل میکند. این پلتفرم دارای یک اکوسیستم بزرگ و به سرعت در حال رشد است. خدمات، پشتیبانی و ابزارهای کوبرنتیز به طور گسترده در دسترس هستند. |
| 7 | +content_type: concept |
| 8 | +weight: 20 |
| 9 | +card: |
| 10 | + name: concepts |
| 11 | + weight: 10 |
| 12 | + anchors: |
| 13 | + - anchor: "#why-you-need-kubernetes-and-what-can-it-do" |
| 14 | + title: چرا کوبرنتیز؟ |
| 15 | +no_list: true |
| 16 | +--- |
| 17 | + |
| 18 | +<!-- overview --> |
| 19 | +این صفحه مروری بر کوبرنتیز است. |
| 20 | + |
| 21 | + |
| 22 | +<!-- body --> |
| 23 | + |
| 24 | +نام «کوبرنتیس» از واژهٔ یونانی بهمعنای «سکاندار» یا «خلبان» گرفته شده است. مخفف «K8s» حاصل شمارش هشت حرف بین «K» و «s» است. گوگل پروژهٔ کوبرنتیس را در سال ۲۰۱۴ بهصورت متنباز منتشر کرد. کوبرنتیس بیش از [۱۵ سال تجربهٔ گوگل](/blog/2015/04/borg-predecessor-to-kubernetes/) در اجرای بارهای کاری تولیدی در مقیاس بزرگ را با ایدهها و بهترین رویههای جامعهٔ کاربری تلفیق میکند. |
| 25 | + |
| 26 | +## چرا به کوبرنتیس نیاز دارید و چه کاری میتواند انجام دهد {#why-you-need-kubernetes-and-what-can-it-do} |
| 27 | + |
| 28 | +کانتینرها راه مناسبی برای بستهبندی و اجرای برنامههای شما هستند. در یک محیط تولیدی باید کانتینرهایی را که برنامهها را اجرا میکنند مدیریت کنید و اطمینان حاصل کنید که هیچ زمان ازکارافتادگی وجود نداشته باشد. برای مثال، اگر یک کانتینر از کار بیفتد باید کانتینر دیگری بهجای آن راهاندازی شود. آیا راحتتر نبود اگر سامانهای این رفتار را برای شما مدیریت میکرد؟ |
| 29 | + |
| 30 | +اینجاست که کوبرنتیس به کمک میآید! کوبرنتیس چارچوبی در اختیار شما قرار میدهد تا سامانههای توزیعشده را بهصورت پایدار اجرا کنید. این سامانه مسئول مقیاسپذیری و جبران خرابی برای برنامهٔ شماست، الگوهای استقرار فراهم میآورد و امکانات دیگری نیز در اختیار میگذارد. بهعنوان مثال: کوبرنتیس میتواند بهسادگی یک استقرار کَنَری را برای سامانهٔ شما مدیریت کند. |
| 31 | + |
| 32 | +کوبرنتیس امکانات زیر را در اختیار شما میگذارد: |
| 33 | + |
| 34 | +* **کشف سرویس و توزیع بار** |
| 35 | + کوبرنتیس میتواند یک کانتینر را با استفاده از نام DNS یا آدرس IP اختصاصی در معرض دسترس قرار دهد. اگر ترافیک ورودی به یک کانتینر بالا باشد، کوبرنتیس قادر است ترافیک شبکه را متعادل و توزیع کند تا استقرار پایدار بماند. |
| 36 | + |
| 37 | +* **مدیریت ذخیرهسازی (ارکستراسیون)** |
| 38 | + کوبرنتیس به شما اجازه میدهد بهطور خودکار یک سیستم ذخیرهسازی دلخواه ـ از دیسکهای محلی گرفته تا ارائهدهندگان ابر عمومی ـ را متصل (mount) کنید. |
| 39 | + |
| 40 | +* **بهروزرسانی و بازگردانی خودکار** |
| 41 | + با استفاده از کوبرنتیس میتوانید وضعیت مطلوب کانتینرهای مستقرشدهٔ خود را توصیف کرده و کوبرنتیس با نرخی کنترلشده، وضعیت واقعی را به وضعیت مطلوب تغییر دهد. برای نمونه، میتوانید از کوبرنتیس بخواهید کانتینرهای جدید بسازد، کانتینرهای قدیمی را حذف کند و همهٔ منابع آنها را به کانتینر جدید اختصاص دهد. |
| 42 | + |
| 43 | +* **بستهبندی خودکار وظایف (Bin Packing)** |
| 44 | + شما یک خوشه از نودها در اختیار کوبرنتیس قرار میدهید تا وظایف کانتینریشده را روی آنها اجرا کند. سپس به کوبرنتیس میگویید هر کانتینر چه میزان CPU و حافظه (RAM) نیاز دارد؛ کوبرنتیس کانتینرها را طوری روی نودها جا میدهد که بهترین استفاده از منابع شما حاصل شود. |
| 45 | + |
| 46 | +* **خوددرمانی (Self-healing)** |
| 47 | + کوبرنتیس کانتینرهایی را که از کار میافتند دوباره راهاندازی میکند، کانتینرها را جایگزین میکند، کانتینرهایی را که به آزمون سلامت کاربر پاسخ نمیدهند میکشد و تا زمانی که کانتینر آماده سرویسدهی نباشد، آن را به مشتریان معرفی نمیکند. |
| 48 | + |
| 49 | +* **مدیریت محرمانهها و پیکربندی** |
| 50 | + کوبرنتیس امکان ذخیره و مدیریت اطلاعات حساس مانند گذرواژهها، توکنهای OAuth و کلیدهای SSH را فراهم میکند. میتوانید محرمانهها و پیکربندی برنامه را بدون بازسازی تصاویر کانتینر و بدون افشای اسرار در پیکربندی پشتهٔ خود، استقرار داده یا بهروزرسانی کنید. |
| 51 | + |
| 52 | +* **اجرای دستهای (Batch)** |
| 53 | + افزون بر سرویسها، کوبرنتیس میتواند وظایف دستهای و CI شما را نیز مدیریت کند و در صورت تمایل، کانتینرهای ازکارافتاده را جایگزین کند. |
| 54 | + |
| 55 | +* **مقیاسگذاری افقی** |
| 56 | + برنامهٔ خود را با یک فرمان ساده، از طریق یک رابط کاربری، یا بهطور خودکار بر اساس مصرف CPU به بالا یا پایین مقیاس کنید. |
| 57 | + |
| 58 | +* **پشتهٔ دوگانهٔ IPv4/IPv6** |
| 59 | + تخصیص آدرسهای IPv4 و IPv6 به پادها و سرویسها. |
| 60 | + |
| 61 | +* **طراحیشده برای توسعهپذیری** |
| 62 | + بدون تغییر کد منبع بالادست، ویژگیهای جدید به خوشهٔ کوبرنتیس خود اضافه کنید. |
| 63 | + |
| 64 | +## آنچه کوبرنتیز نیست |
| 65 | + |
| 66 | +کوبرنتیز یک سیستم PaaS (پلتفرم به عنوان سرویس) سنتی و فراگیر نیست. |
| 67 | + |
| 68 | +از آنجایی که کوبرنتیز در سطح کانتینر و نه در سطح سختافزار عمل میکند، برخی از ویژگیهای عمومی و کاربردی رایج در ارائههای PaaS، مانند استقرار، مقیاسبندی، متعادلسازی بار را ارائه میدهد و به کاربران اجازه میدهد تا راهحلهای ثبت وقایع، نظارت و هشدار خود را ادغام کنند. با این حال، کوبرنتیز یکپارچه نیست و این راهحلهای پیشفرض اختیاری و قابل اتصال هستند. کوبرنتیز بلوکهای سازنده برای ساخت پلتفرمهای توسعهدهندگان را فراهم میکند، اما در صورت لزوم، حق انتخاب و انعطافپذیری کاربر را حفظ میکند. |
| 69 | + |
| 70 | +کوبرنتیز: |
| 71 | + |
| 72 | +* انواع برنامههای پشتیبانیشده را محدود نمیکند. Kubernetes قصد دارد از انواع بسیار متنوعی از بارهای کاری، از جمله بارهای کاری بدون وضعیت، با وضعیت و پردازش داده، پشتیبانی کند. اگر یک برنامه بتواند در یک کانتینر اجرا شود، باید روی Kubernetes به خوبی اجرا شود. |
| 73 | + |
| 74 | +* کد منبع را مستقر نمیکند و برنامه شما را نمیسازد. گردشهای کاری ادغام مداوم، تحویل و استقرار (CI/CD) توسط فرهنگها و ترجیحات سازمانی و همچنین الزامات فنی تعیین میشوند. |
| 75 | + |
| 76 | +* خدمات سطح برنامه، مانند میانافزار (به عنوان مثال، گذرگاههای پیام)، چارچوبهای پردازش داده (به عنوان مثال، Spark)، پایگاههای داده (به عنوان مثال، MySQL)، حافظههای پنهان و همچنین سیستمهای ذخیرهسازی خوشهای (به عنوان مثال، Ceph) را به عنوان سرویسهای داخلی ارائه نمیدهد. چنین اجزایی میتوانند روی Kubernetes اجرا شوند و/یا میتوانند توسط برنامههایی که روی Kubernetes اجرا میشوند از طریق مکانیسمهای قابل حمل، مانند [Open Service Broker](https://openservicebrokerapi.org/) قابل دسترسی باشند. |
| 77 | + |
| 78 | +* راهحلهای ثبت وقایع، نظارت یا هشدار را دیکته نمیکند. این سیستم، برخی یکپارچهسازیها را |
| 79 | +به عنوان اثبات مفهوم، و مکانیسمهایی را برای جمعآوری و صدور معیارها ارائه میدهد. |
| 80 | + |
| 81 | +* زبان/سیستم پیکربندی (به عنوان مثال، Jsonnet) را ارائه یا الزامی نمیکند. |
| 82 | +یک API اعلانی ارائه میدهد که ممکن است توسط اشکال دلخواه مشخصات اعلانی هدف قرار گیرد. |
| 83 | + |
| 84 | +* هیچ سیستم پیکربندی، نگهداری، مدیریت یا خودترمیمی جامعی را ارائه یا اتخاذ نمیکند. |
| 85 | + |
| 86 | +* علاوه بر این، Kubernetes یک سیستم ارکستراسیون صرف نیست. در واقع، نیاز به ارکستراسیون را از بین میبرد. تعریف فنی ارکستراسیون، اجرای یک گردش کار تعریف شده است: |
| 87 | +ابتدا A، سپس B و سپس C را انجام دهید. در مقابل، Kubernetes شامل مجموعهای از فرآیندهای کنترل مستقل و قابل ترکیب است که به طور مداوم وضعیت فعلی را به سمت وضعیت مطلوب ارائه شده سوق میدهند. |
| 88 | +مهم نیست که چگونه از A به C میرسید. کنترل متمرکز نیز مورد نیاز نیست. این |
| 89 | +منجر به سیستمی میشود که استفاده از آن آسانتر و قدرتمندتر، مقاومتر، انعطافپذیرتر و قابل توسعهتر است. |
| 90 | + |
| 91 | +## پیشینه تاریخی Kubernetes {#going-back-in-time} |
| 92 | + |
| 93 | +بیایید با بازگشت به گذشته، نگاهی به این بیندازیم که چرا Kubernetes بسیار مفید است. |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | +**دوران استقرار سنتی:** |
| 98 | + |
| 99 | +در اوایل، سازمانها برنامهها را روی سرورهای فیزیکی اجرا میکردند. هیچ راهی برای تعریف مرزهای منابع برای برنامهها در یک سرور فیزیکی وجود نداشت و این باعث ایجاد مشکلاتی در تخصیص منابع میشد. به عنوان مثال، اگر چندین برنامه روی یک سرور فیزیکی اجرا شوند، ممکن است مواردی وجود داشته باشد که یک برنامه بیشتر منابع را اشغال کند و در نتیجه، برنامههای دیگر عملکرد ضعیفی داشته باشند. یک راه حل برای این مشکل، اجرای هر برنامه روی یک سرور فیزیکی متفاوت است. اما این روش مقیاسپذیر نبود زیرا منابع کمتر از حد مورد استفاده قرار میگرفتند و نگهداری بسیاری از سرورهای فیزیکی برای سازمانها پرهزینه بود. |
| 100 | + |
| 101 | +**دورۀ استقرار مجازیشده:** |
| 102 | + |
| 103 | +بهعنوان یک راهحل، مجازیسازی معرفی شد. این فناوری امکان میدهد چندین ماشین مجازی (VM) را روی CPU یک سرور فیزیکی واحد اجرا کنید. مجازیسازی باعث میشود برنامهها در ماشینهای مجازی از یکدیگر جدا باشند و سطحی از امنیت ایجاد شود؛ زیرا اطلاعات یک برنامه بهصورت آزاد توسط برنامۀ دیگر قابل دسترسی نیست. |
| 104 | + |
| 105 | +مجازیسازی استفادهٔ بهتر از منابعِ یک سرور فیزیکی را ممکن میسازد و مقیاسپذیری بهتری فراهم میآورد؛ چراکه افزودن یا بهروزرسانی یک برنامه آسان است، هزینههای سختافزاری کاهش مییابد و مزایای بسیار دیگری نیز بهدنبال دارد. با مجازیسازی میتوانید مجموعهای از منابع فیزیکی را بهصورت یک خوشه از ماشینهای مجازی یکبارمصرف ارائه کنید. |
| 106 | + |
| 107 | +هر ماشین مجازی یک ماشین کامل است که تمامی مؤلفهها، از جمله سیستمعامل خود را، بر روی سختافزار مجازیشده اجرا میکند. |
| 108 | + |
| 109 | +**دورۀ استقرار کانتینری:** |
| 110 | + |
| 111 | +کانتینرها شبیه ماشینهای مجازی هستند، اما ویژگیهای جداسازی در آنها منعطفتر است تا سیستمعامل (OS) میان برنامهها به اشتراک گذاشته شود؛ ازاینرو کانتینرها سبک محسوب میشوند. مشابه یک ماشین مجازی، هر کانتینر سامانهٔ فایل اختصاصی، سهمی از CPU، حافظه، فضای فرایند و موارد دیگر را در اختیار دارد. چون کانتینرها از زیرساخت پایه جدا شدهاند، در میان رایانش ابری و توزیعهای مختلف سیستمعامل قابل حملاند. |
| 112 | + |
| 113 | +کانتینرها بهدلیل مزایای اضافهای همچون موارد زیر محبوب شدهاند: |
| 114 | + |
| 115 | +* ایجاد و استقرار چابک برنامه: افزایش سهولت و کارایی ایجاد تصویر کانتینر در مقایسه با استفاده از تصویر ماشین مجازی. |
| 116 | + |
| 117 | +* توسعه، ادغام و استقرار مداوم: امکان ساخت و استقرار تصویر کانتینر قابل اعتماد و مکرر را با عقبگردهای سریع و کارآمد (به دلیل تغییرناپذیری تصویر) فراهم میکند. |
| 118 | + |
| 119 | +* جداسازی دغدغههای توسعه و عملیات: ایجاد تصاویر کانتینر برنامه در زمان ساخت/انتشار به جای زمان استقرار، و در نتیجه جداسازی برنامهها از زیرساخت. |
| 120 | + |
| 121 | +* قابلیت مشاهده: نه تنها اطلاعات و معیارهای سطح سیستم عامل را نشان میدهد، بلکه سلامت برنامه و سایر سیگنالها را نیز پوشش میدهد. |
| 122 | + |
| 123 | +* سازگاری محیطی در طول توسعه، آزمایش و تولید: همانطور که در ابر اجرا میشود، روی لپتاپ نیز اجرا میشود. |
| 124 | + |
| 125 | +* قابلیت حمل توزیع ابر و سیستم عامل: روی اوبونتو، RHEL، CoreOS، در محل، روی ابرهای عمومی بزرگ و هر جای دیگر اجرا میشود. |
| 126 | + |
| 127 | +* مدیریت متمرکز بر برنامه: سطح انتزاع را از اجرای یک سیستم عامل روی سختافزار مجازی به اجرای یک برنامه روی یک سیستم عامل با استفاده از منابع منطقی افزایش میدهد. * میکروسرویسهای آزاد، توزیعشده، انعطافپذیر و با اتصال آزاد: برنامهها به قطعات کوچکتر و مستقل تقسیم میشوند و میتوانند به صورت پویا مستقر و مدیریت شوند - نه یک پشته یکپارچه که روی یک ماشین بزرگ تکمنظوره اجرا میشود. |
| 128 | + |
| 129 | +* ایزولهسازی منابع: عملکرد قابل پیشبینی برنامه. |
| 130 | + |
| 131 | +* استفاده از منابع: کارایی و تراکم بالا. |
| 132 | + |
| 133 | +## {{% heading "whatsnext" %}} |
| 134 | + |
| 135 | +* نگاهی بیندازید به [اجزای کوبرنتیز](/docs/concepts/overview/components/) |
| 136 | +* نگاهی بیندازید به [رابط برنامهنویسی کوبرنتیز](/docs/concepts/overview/kubernetes-api/) |
| 137 | +* نگاهی بیندازید به [معماری کلاستر](/docs/concepts/architecture/) |
| 138 | +* آمادهاید تا [شروع کنید](/docs/setup/)؟ |
0 commit comments