همه پلتفرمهای سرور، حتی قدرتمندترین و مقیاسپذیرترین پلتفرمها، همه نیازها را آنطور که هستند برآورده نمیکنند. در حالی که Kubernetes به تنهایی عالی کار می کند، ممکن است قطعات مناسبی برای کامل شدن نداشته باشد. همیشه یک مورد خاص پیدا میکنید که نیاز شما را نادیده میگیرد یا جایی که Kubernetes در نصب پیشفرض کار نمیکند، مانند پشتیبانی از پایگاه داده یا عملیات CD.
اینجا جایی است که افزونهها، برنامههای افزودنی و سایر موارد خوب برای این ارکستراتور کانتینر ظاهر میشوند که توسط گستردهترین جامعه پشتیبانی میشوند. در این مقاله 11 مورد از بهترین چیزهایی که پیدا کردیم وجود خواهد داشت. ما خودمان در Southbridge آنها بسیار جالب هستند، و ما قصد داریم به طور عملی با آنها برخورد کنیم - آنها را در پیچ و مهره جدا کنیم و ببینیم داخل آن چیست. برخی از آنها به طور کامل هر خوشه Kubernetes را تکمیل می کنند، در حالی که برخی دیگر به حل وظایف خاصی که در توزیع معمولی Kubernetes اجرا نمی شوند کمک می کنند.
دروازه بان: مدیریت سیاست
پروژه باز کردن نماینده سیاست (OPA) توانایی ایجاد خطمشیها را در بالای پشتههای برنامههای ابری در Kubernetes، از ورودی تا مش سرویس، فراهم میکند. دروازه بان به Kubernetes توانایی بومی برای اجرای خودکار خطمشیها در خوشه را میدهد و همچنین برای هر رویداد یا منبعی که خطمشی را نقض میکند، بازرسی میکند. همه اینها توسط مکانیسم نسبتا جدید Kubernetes، مدیر پذیرش Webhooks، که با تغییر منابع فعال می شود، مدیریت می شود. با Gatekeeper، سیاستهای OPA به بخش دیگری از وضعیت خوشه Kubernetes شما بدون نیاز به نظارت مداوم تبدیل میشوند.
جاذبه: خوشه های قابل حمل Kubernetes
اگر میخواهید برنامهای را در Kubernetes منتشر کنید، بسیاری از برنامهها دارای نمودار Helm هستند که این فرآیند را هدایت و خودکار میکند. اما اگر بخواهید خوشه Kubernetes خود را "همانطور که هست" بگیرید و آن را در جای دیگری منتشر کنید، چه؟
جاذبه زمین عکسهای فوری از خوشههای Kubernetes، رجیستری آنها برای تصاویر ظرف، و همچنین برنامههای در حال اجرا به نام «بستههای برنامه» میگیرد. چنین بسته ای که یک فایل معمولی است .tar، می تواند خوشه را در هر جایی که Kubernetes می تواند اجرا کند تکرار کند.
Gravity همچنین بررسی میکند که زیرساخت هدف همانند زیرساخت منبع عمل میکند و همچنین اینکه محیط Kubernetes روی هدف در دسترس است. نسخه پولی Gravity همچنین ویژگیهای امنیتی از جمله RBAC و توانایی همگامسازی تنظیمات امنیتی در استقرارهای مختلف کلاستر را اضافه میکند.
آخرین نسخه اصلی، Gravity 7، می تواند یک تصویر Gravity را به یک خوشه Kubernetes موجود، به جای چرخاندن یک خوشه کاملاً جدید از تصویر، وارد کند. Gravity 7 همچنین می تواند با خوشه های نصب شده بدون استفاده از تصویر Gravity کار کند. Gravity همچنین از SELinux پشتیبانی می کند و به صورت بومی با دروازه SSH Teleport کار می کند.
Kaniko: Building Containers in a Kubernetes Cluster
اکثر تصاویر کانتینر بر روی سیستم های خارج از پشته کانتینر ساخته می شوند. با این حال، گاهی اوقات شما نیاز دارید که تصویر را در یک پشته از کانتینرها، مانند جایی در یک کانتینر در حال اجرا، یا در یک خوشه Kubernetes بسازید.
کانیکو کانتینرها را در داخل یک محیط کانتینر می سازد، اما بدون وابستگی به یک سرویس کانتینری، مانند داکر. در عوض، Kaniko فایل سیستم را از تصویر پایه استخراج می کند، تمام دستورات ساخت فضای کاربر را در بالای سیستم فایل استخراج شده اجرا می کند و پس از هر دستور یک عکس فوری از سیستم فایل می گیرد.
توجه: Kaniko در حال حاضر (مه 2020، تقریبا مترجم) نمی تواند کانتینرهای ویندوز بسازد.
Kubecost: گزینه های هزینه راه اندازی Kubernetes
اکثر ابزارهای مدیریت Kubernetes بر سهولت استفاده، نظارت، درک رفتار درون یک pod و غیره تمرکز دارند. اما نظارت بر هزینه - به روبل و کوپک - مربوط به راه اندازی Kubernetes چیست؟
کوبکوست پارامترهای Kubernetes را در زمان واقعی پردازش میکند، و در نتیجه اطلاعات هزینه بهروز از خوشههای در حال اجرا در ارائهدهندگان اصلی ابر، در یک پانل با هزینه ماهانه برای هر خوشه نمایش داده میشود. قیمتهای RAM، زمان پردازنده، پردازنده گرافیکی و زیرسیستم دیسک بر اساس اجزای Kubernetes (کانتینر، پاد، سرویس و غیره) تقسیم میشوند.
Kubecost همچنین هزینه منابع غیر خوشه ای مانند سطل های آمازون S3 را ردیابی می کند، اگرچه این توسط AWS محدود شده است. داده های هزینه را می توان به Prometheus ارسال کرد تا بتوانید از آن برای تغییر رفتار خوشه به صورت برنامه ریزی شده استفاده کنید.
اگر 15 روز داده گزارش کافی دارید، استفاده از Kubecost رایگان است. برای ویژگی های اضافی، قیمت گذاری از 199 دلار ماهانه برای نظارت بر 50 گره شروع می شود.
KubeDB: اجرای پایگاه های داده نبرد در Kubernetes
در Kubernetes نیز به سختی می توان پایگاه های داده را به طور چشمگیر اجرا کرد. شما اپراتورهای Kubernetes را برای MySQL، PostgreSQL، MongoDB و Redis خواهید یافت، اما همه آنها اشکالاتی دارند. همچنین، مجموعه ویژگی های معمولی Kubernetes به طور مستقیم به بسیاری از مشکلات پایگاه داده تعریف شده رسیدگی نمی کند.
KubeDB به شما کمک می کند تا عبارات Kubernetes خود را برای مدیریت پایگاه داده ایجاد کنید. اجرای پشتیبانگیری، شبیهسازی، نظارت، عکسهای فوری و ایجاد پایگاهداده اعلامی اجزای تشکیلدهنده آن هستند. توجه داشته باشید که پشتیبانی از ویژگی ها به پایگاه داده وابسته است. به عنوان مثال، ایجاد یک کلاستر برای PostgreSQL کار می کند، اما برای MySQL نه (قبلا همانطور که به درستی اشاره شد وجود دارد dnbstd, تقریبا مترجم).
Kube-monkey: Chaos Monkey برای Kubernetes
بدون خطاترین روش تست استرس، شکست های تصادفی در نظر گرفته می شود. این نظریه در قلب Chaos Monkey نتفلیکس قرار دارد، یک ابزار مهندسی آشفته که بهطور تصادفی ماشینهای مجازی و کانتینرهای محیط تولید را خاموش میکند تا توسعهدهندگان را تشویق کند تا سیستمهای انعطافپذیرتر بسازند. کوبه میمون - اجرای همان نظریه اولیه تست استرس برای خوشه های Kubernetes. با کشتن تصادفی ماژولها در خوشهای که شما تعیین کردهاید کار میکند، و همچنین میتواند تنظیم شود تا در یک بازه زمانی خاص اجرا شود.
کنترل کننده ورودی Kubernetes برای AWS
Kubernetes یک متعادل کننده بار خارجی و خدمات شبکه خوشه ای را از طریق سرویسی به نام ارائه می کند ورود AWS ویژگی های متعادل کننده بار را ارائه می دهد اما به طور خودکار آنها را با همان ویژگی های Kubernetes همراه نمی کند. کنترل کننده ورودی Kubernetes برای AWS این شکاف را می بندد.
به طور خودکار منابع AWS را برای هر ورودی در خوشه مدیریت می کند، متعادل کننده های بار را برای منابع ورودی جدید ایجاد می کند و هنگامی که منابع حذف می شوند، متعادل کننده های بار را حذف می کند. از CloudFormation استفاده می کند تا مطمئن شود حالت خوشه ثابت می ماند. همچنین از تنظیمات CloudWatch Alarm پشتیبانی میکند و بهطور خودکار سایر عناصر مورد استفاده در خوشه، مانند گواهیهای SSL و گروههای مقیاس خودکار EC2 را مدیریت میکند.
Kubespray: نصب خودکار Kubernetes
کوبسپری نصب یک خوشه Kubernetes آماده برای تولید را خودکار می کند، از نصب بر روی سرورهای سخت افزاری تا ابرهای عمومی اصلی. از Ansible (اختیاری Vagrant) برای شروع استقرار و ایجاد یک خوشه با قابلیت دسترسی بالا از ابتدا با افزونه های شبکه (مانند Flannel، Calico و غیره) در توزیع محبوب لینوکس انتخابی شما هنگام نصب بر روی سرورهای سخت افزاری، ایجاد می کند.
Skaffold: توسعه تکراری برای Kubernetes
داربست - یکی از ابزارهای گوگل که برای سازماندهی سی دی های برنامه در Kubernetes استفاده می شود. به محض ایجاد تغییرات در کد منبع، skaffold به طور خودکار این موضوع را شناسایی می کند، شروع به ساخت و استقرار می کند و در صورت وجود هر گونه خطایی به شما هشدار می دهد. Skaffold به طور کامل در سمت مشتری اجرا می شود، بنابراین ممکن است تغییرات کمی در نصب یا به روز رسانی وجود داشته باشد. این می تواند با خطوط لوله CICD موجود و همچنین تعامل با برخی ابزارهای ساخت خارجی، به ویژه Bazel Google، استفاده شود.
ترزا: ساده ترین PaaS در Kubernetes
ترزا یک سیستم استقرار برنامه است که یک PaaS ساده را در بالای Kubernetes اجرا می کند. کاربران تیمی می توانند برنامه های کاربردی خود را مستقر و مدیریت کنند. این کار را برای افرادی که به این اپلیکیشن اعتماد دارند و نمیخواهند با Kubernetes و همه پیچیدگیهای آن سروکار داشته باشند، کمی آسانتر میکند.
Tilt: بهروزرسانیهای کانتینر را به خوشههای Kubernetes پخش کنید
شیبکه توسط Windmill Engineering توسعه یافته است، تغییرات Dockerfiles مختلف را رصد می کند و سپس به تدریج کانتینرهای مناسب را در خوشه Kubernetes مستقر می کند. در اصل، به شما این امکان را می دهد که خوشه تولید را به سادگی با به روز رسانی Dockerfiles به روز کنید. Tilt در داخل خوشه ایجاد می شود، کد منبع تنها چیزی است که باید تغییر کند. همچنین میتوانید یک عکس فوری از وضعیت کلاستر بگیرید و شرایط خطا را مستقیماً از Tilt بگیرید تا برای اشکالزدایی با اعضای تیم به اشتراک بگذارید.
PS همه این ابزارها را بارها و بارها در آن قرار داده ایم Southbridge با دستان کنجکاو ما کاوش کردیم برای ارائه شیوه های واقعی در حال حاضر (امیدوارم!) در فشرده آفلاین در ماه فوریه. پایگاه کوبرنتیس 8–10 فوریه 2021. و Kubernetes Mega 12 تا 14 فوریه. راستش ما هم دلتنگ فضای گرم و پر انرژی آموزش آفلاین شدیم. فناوریها هر چقدر هم که پیشرفته باشند، جایگزین ارتباطات زنده انسانی و فضای خاص در زمان جمع شدن افراد همفکر نمیشوند.