کامپوننتهای کوبرنتیز
هنگامی که کوبرنتیز را دیپلوی کنید یک کلاستر دریافت خواهید کرد.
یک کلاستر کوبرنتیز از مجموعهای از ماشینها (worker machine) که نود (node) نامیده میشوند و اپلیکیشنهای containrizedشده را اجرا میکنند تشکیل میشود.
نودهای کارگر (worker nodes) میزبان پادها (Pod) هستند.
control plane نودها و پادها در کلاستر را مدیریت میکند.
در محیط پروداکشن، control plane معمولا بر روی چندین کامپیوتر اجرا میشود و یک کلاستر معمولا چندین نود را اجرا میکند که این تحمل خطا (fault-tolerance) و دسترسیپذیری بالایی را فراهم میکند.
در این مستند و در ادامه کامپوننتهایی را که برای یک کلاستر کامل و کارآمد باید داشته باشید، تشریح خواهیم کرد.
StatefulSet یک آبجکت از workload API است که برای مدیریت اپلیکیشنهای Stateful استفاده میشود. StatefulSet استقرار (deployment) و مقیاسپذیری یک مجموعه از پادها را مدیریت میکند و نظم و منحصربهفرد بودن این پادها را تضمین میکند.
اگر میخواهید از ظرفیت استوریج برای ایجاد پایداری برای workload خود استفاده کنید میتوانید از StatefulSet بهعنوان بخشی از راه حل استفاده کنید.
StatefulSetها برای اپلیکیشنهایی که به یک یا چند مورد زیر نیاز دارند، ارزشمند هستند.
- شناسههای ثابت و منحصربهفرد شبکه.
- استوریج ثابت و پایدار.
- استقرار (deployment) و مقیاسپذیری منظم.
- بهروزرسانیهای سفارشی اتوماتیک و منظم
مثال زیر کامپوننتهای StatefulSet را نمایش میدهد.
برای اطلاعات بیشتر در مورد کامپوننتهای StatefulSet میتوانید به این مستند مراجعه کنید.
Deployment بهروزرسانیهای اعلامشده را برای Podها و ReplicaSetها فراهم میکند.
شما یک وضعیت دلخواه را در یک Deployment توصیف میکنید و Deployment Controller وضعیت واقعی را با سرعت کنترلشدهای به وضعیت دلخواه تغییر میدهد. شما میتوانید Deploymentها را برای ایجاد ReplicaSetهای جدید یا حذف Deployment موجود و استفاده از تمام منابع آن در Deploymentهای جدید، تعریف کنید.
در زیر نمونهای از Deployment آورده شده است. در این نمونه یک ReplicaSet برای سه پاد nginx ایجاد شده است:
برای اطلاعات بیشتر در مورد کامپوننتهای StatefulSet میتوانید به این مستند مراجعه کنید.
یک Job یک یا چند پاد ایجاد میکند و اجرای موفق پادها را تا زمانی که تعداد مشخصی از آنها با موفقیت خاتمه یابند، ادامه خواهد داد. با تکمیل موفقیتآمیز Podها، Job آنها را دنبال میکند. با حذف یک Job، پادهای ایجاد شده پاکسازی میشوند. تعلیق یک Job، پادهای فعال آن را تا زمانی که Job دوباره از سر گرفته شود، حذف میکند.
میتوانید از Job برای اجرای چند پاد بهصورت موازی استفاده کنید.
در ادامه یک مثال از پیکربندی Job آورده شده است. این نمونه، عدد π را با تقریب ۲۰۰۰ محاسبه و چاپ میکند. این کار حدود ۱۰ ثانیه طول میکشد تا کامل شود.
میتوانید این مثال را با دستور زیر اجرا کنید:
خروجی مانند زیر خواهد بود:
میتوانید وضعیت Job را با Kubectl بررسی کنید:
خروجی مانند زیر خواهد بود:
برای اینکه پادهای کامل یک Job را ببینید میتوانید از kubectl get pods استفاده کنید.
برای لیست کردن همهی پادهای مرتبط با یک Job در یک ماشین میتوانید، از دستوری مانند دستور زیر استفاده کنید.
برای اطلاعات بیشتر میتوانید در مورد Job میتوانید به این مستند مراجعه کنید.