
برای کار کامل با سیستم، دانش ابزارهای خط فرمان مهم است: در مورد Kubernetes، این Kubectl است. از سوی دیگر، رابط های گرافیکی خوب طراحی شده و متفکرانه می توانند عملکرد خوبی داشته باشندоبسیاری از وظایف معمول و باز کردن فرصت های اضافی برای بهره برداری از سیستم ها.
سال گذشته ترجمه ای را منتشر کردیم برای Kubernetes، همزمان با اعلام رابط وب . نویسنده آن مقاله و خود ابزار، هنینگ جاکوبز از Zalando، محصول جدید را به عنوان "kubectl برای وب" معرفی کرد. او میخواست ابزاری با قابلیتهای کاربر پسند برای تعامل در قالب پشتیبانی فنی (مثلاً نشان دادن سریع مشکل با یک لینک وب) و برای پاسخگویی به حوادث، جستجوی مشکلات در بسیاری از خوشهها به طور همزمان ایجاد کند. نسل او در حال حاضر (عمدتاً با تلاش خود نویسنده) در حال رشد است.
از آنجایی که ما به بسیاری از خوشههای Kubernetes در اندازههای مختلف خدمات میدهیم، همچنین علاقهمندیم که بتوانیم یک ابزار بصری به مشتریان خود ارائه دهیم. هنگام انتخاب یک رابط مناسب، ویژگی های زیر برای ما کلیدی بود:
- پشتیبانی از تمایز حقوق کاربر (RBAC)؛
- تجسم وضعیت فضای نام و استانداردهای اولیه Kubernetes (استقرار، StatefulSet، Service، Cronjob، Job، Ingress، ConfigMap، Secret، PVC).
- دسترسی به خط فرمان داخل غلاف؛
- مشاهده سیاهههای مربوط به غلاف.
- مشاهده وضعیت غلاف ها (
describe status); - برداشتن غلاف
سایر عملکردها، مانند مشاهده منابع مصرف شده (در زمینه پادها / کنترلرها / فضاهای نام)، ایجاد / ویرایش اولیه K8s، در جریان کاری ما مرتبط نیستند.
ما بررسی را با داشبورد کلاسیک Kubernetes، که استاندارد ما است، آغاز خواهیم کرد. از آنجایی که دنیا ثابت نمیماند (به این معنی که Kubernetes دارای رابط کاربری گرافیکی جدید و بیشتری است)، ما همچنین در مورد جایگزینهای فعلی آن صحبت خواهیم کرد و همه چیز را در یک جدول مقایسهای در پایان مقاله خلاصه میکنیم.
NB: در بررسی، با آن راه حل هایی که قبلاً در نظر گرفته شده است، تکرار نمی کنیم با این حال، به منظور کامل بودن، گزینه های مربوطه از آن (K8Dash، Octant، Kubernetes Web View) در جدول نهایی گنجانده شده است.
1. داشبورد Kubernetes
- ;
- (8000+ ستاره GitHub)؛
- مجوز: آپاچی 2.0;
- به طور خلاصه: "رابط وب جهانی برای خوشه های Kubernetes. این به کاربران اجازه می دهد تا برنامه های در حال اجرا در کلاستر را مدیریت و عیب یابی کنند و همچنین خود خوشه را مدیریت کنند.

این یک پانل با هدف عمومی است که توسط نویسندگان Kubernetes در اسناد رسمی پوشش داده شده است (ولی پیش فرض). برای نیازهای عملیات روزمره و اشکال زدایی برنامه ها در یک خوشه طراحی شده است. در خانه، ما از آن به عنوان یک ابزار بصری سبک وزن کامل استفاده می کنیم که به ما امکان می دهد دسترسی لازم و کافی به خوشه را برای توسعه دهندگان فراهم کنیم. قابلیت های آن تمامی نیازهای آنها را که در فرآیند استفاده از خوشه به وجود می آید را پوشش می دهد (در ما برخی از ویژگی های پانل را نشان دادیم). همانطور که ممکن است حدس بزنید، این بدان معنی است که تمام الزامات ذکر شده در بالا را برآورده می کند.
از جمله ویژگی های اصلی داشبورد Kubernetes:
- ناوبری: اشیاء اصلی K8s را در زمینه فضای نام مشاهده کنید.
- اگر حقوق سرپرست دارید، پانل گرهها، فضاهای نام و حجمهای پایدار را نشان میدهد. برای گره ها، آماری در مورد استفاده از حافظه، پردازنده، تخصیص منابع، معیارها، وضعیت، رویدادها و غیره موجود است.
- برنامه های کاربردی مستقر در یک فضای نام را بر اساس نوع آنها (Deployment، StatefulSet، و غیره)، روابط بین آنها (ReplicaSet، Horizontal Pod Autoscaler)، آمار و اطلاعات عمومی و شخصی مشاهده کنید.
- مشاهده سرویسها و ورودیها، و همچنین روابط آنها با پادها و نقاط پایانی.
- مشاهده اشیاء و ذخیرهسازیهای فایل: حجم پایدار و ادعای حجم پایدار.
- ConfigMap و Secret را مشاهده و ویرایش کنید.
- دیدن گزارش وقایع.
- دسترسی به خط فرمان در کانتینرها
یک ایراد قابل توجه (اما نه برای ما) این است که هیچ پشتیبانی از کار چند خوشه ای وجود ندارد. این پروژه به طور فعال توسط جامعه توسعه داده می شود و ویژگی های مربوطه را با انتشار نسخه های جدید و مشخصات Kubernetes API حفظ می کند: آخرین نسخه پنل 22 مه 2020 - برای سازگاری با Kubernetes 1.18 تست شده است.
2. عدسی
- ;
- ;
- (~4800 ستاره GitHub)؛
- مجوز: MIT;
- به طور خلاصه: "Kubernetes IDE".

این پروژه به عنوان یک محیط توسعه یکپارچه کامل (IDE) برای Kubernetes قرار گرفته است. علاوه بر این، برای کار با بسیاری از خوشه ها و تعداد زیادی پاد در حال اجرا در آنها بهینه شده است (تست شده روی 25 پاد).
ویژگی ها/قابلیت های اصلی لنز:
- یک برنامه مستقل که نیازی به نصب در داخل کلاستر ندارد (به طور دقیقتر، Prometheus برای به دست آوردن تمام معیارها مورد نیاز است، اما میتوان از یک نصب موجود برای این کار استفاده کرد). نصب "اصلی" بر روی یک رایانه شخصی که در حال اجرا است انجام میشود. Linux, macOS یا Windows.
- مدیریت چند خوشه ای (صدها خوشه پشتیبانی می شود).
- تجسم وضعیت خوشه در زمان واقعی.
- نمودارهای استفاده از منابع و روندها با تاریخچه بر اساس پرومتئوس داخلی.
- دسترسی به خط فرمان کانتینرها و گره های خوشه ای.
- پشتیبانی کامل از Kubernetes RBAC.
نسخه فعلی - مورخ 16 ژوئن 2020 که در اصل توسط Kontena ایجاد شد، امروز تمام مالکیت معنوی به یک سازمان خاص منتقل شده است. ، "اتحادیه متخصصان و متخصصان بومی ابری" نامیده می شود که مسئولیت "حفظ و در دسترس بودن نرم افزار و محصولات منبع باز Kontena" را بر عهده دارد.
لنز دومین پروژه محبوب GitHub از دسته رابط کاربری گرافیکی Kubernetes است که فقط داشبورد Kubernets را از دست می دهد. همه راه حل های منبع باز دیگر که از دسته CLI* نیستند از نظر محبوبیت به طور قابل توجهی پایین تر هستند.
* در مورد K9s در بخش جایزه نقد مشاهده کنید.
3. کوبرنتیک
- ;
- ;
- (200+ ستاره GitHub)؛
- مجوز: اختصاصی;
- به طور خلاصه: "مدیریت خوشه آسان شد."

این یک برنامه اختصاصی است که بر روی رایانه شخصی نصب میشود (پشتیبانی میشود) Linux, macOS, Windowsسازندگان آن قول جایگزینی کامل برای ابزار خط فرمان را دادهاند که نیاز به به خاطر سپردن دستورات را از بین میبرد و حتی سرعت کار را ده برابر افزایش میدهد.
یکی از ویژگی های جالب این ابزار پشتیبانی داخلی از نمودار Helm است و یکی از ایرادات آن عدم وجود معیارهای عملکرد برنامه است.
ویژگی های اصلی Kubernetic:
- نمایش راحت وضعیت خوشه. یک صفحه برای مشاهده تمام اشیاء خوشه مرتبط و وابستگی های آنها. وضعیت آمادگی قرمز/سبز برای همه اشیا؛ حالت نمایش وضعیت خوشه ای با به روز رسانی وضعیت بلادرنگ.
- دکمه های عمل سریع برای حذف و مقیاس بندی برنامه.
- پشتیبانی از عملیات چند خوشه ای
- کار ساده با فضاهای نام.
- پشتیبانی از نمودارهای Helm و مخازن Helm (از جمله مخازن خصوصی). نصب و مدیریت نمودارها در رابط وب.
هزینه فعلی محصول یک بار پرداخت 30 یورو برای استفاده از آن توسط یک نفر برای هر تعداد فضای نام و خوشه است.
4. Kubevious
- ;
- ;
- (~500 ستاره GitHub)؛
- مجوز: آپاچی 2.0
- به طور خلاصه: "Kubevious خوشه های Kubernetes، پیکربندی برنامه و مشاهده وضعیت را ایمن و قابل درک می کند."

ایده این پروژه ایجاد ابزاری است که برای تجزیه و تحلیل و اشکالزدایی تنظیمات برنامههای کاربردی مستقر در یک خوشه طراحی شده است. نویسندگان در درجه اول بر اجرای این ویژگی ها تمرکز کردند و چیزهای کلی تری را برای بعد گذاشتند.
ویژگی ها و عملکردهای کلیدی Kubevious:
- تجسم خوشه به روشی برنامه محور: اشیاء مرتبط در رابط گروه بندی می شوند و در یک سلسله مراتب قرار می گیرند.
- نمایش بصری وابستگی ها در پیکربندی ها و پیامدهای آبشاری تغییرات آنها.
- نمایش خطاهای پیکربندی کلاستر: استفاده نادرست از برچسب ها، پورت های از دست رفته و غیره. (به هر حال، اگر به این ویژگی علاقه مند هستید، به آن توجه کنید که در مورد آن ما .)
- علاوه بر نکته قبلی، شناسایی کانتینرهای بالقوه خطرناک در دسترس است، یعنی. داشتن امتیازات بیش از حد (ویژگی ها
hostPID,hostNetwork,hostIPC، کوهdocker.sockو غیره). - سیستم جستجوی پیشرفته برای خوشه (نه تنها با نام اشیاء، بلکه با ویژگی های آنها).
- ابزارهایی برای برنامه ریزی ظرفیت و بهینه سازی منابع.
- "ماشین زمان" داخلی (قابلیت مشاهده تغییرات قبلی در پیکربندی اشیا).
- مدیریت RBAC با یک جدول مرتبط محوری از Roles، RoleBindings، ServiceAccounts.
- فقط با یک خوشه کار می کند.
این پروژه تاریخچه بسیار کوتاهی دارد (اولین انتشار در 11 فوریه 2020 انجام شد) و به نظر می رسد که دوره ای از تثبیت یا کاهش سرعت در توسعه وجود داشته است. اگر نسخه های قبلی اغلب منتشر می شدند، آخرین نسخه ( 15 آوریل 2020) از سرعت اولیه توسعه عقب مانده است. این احتمالاً به دلیل تعداد کم مشارکت کنندگان است: فقط 4 نفر از آنها در تاریخچه مخزن وجود دارد و تمام کار واقعی توسط یک نفر انجام می شود.
5. Kubewise
- ;
- مجوز: اختصاصی (به منبع باز تبدیل می شود).
- به طور خلاصه: "یک کلاینت ساده چند پلتفرمی برای Kubernetes."

محصول جدیدی از VMware که در ابتدا به عنوان بخشی از یک هکاتون داخلی (در ژوئن 2019) ایجاد شد. نصب شده بر روی یک کامپیوتر شخصی، بر اساس کار می کند (پشتیبانی شده) Linux, macOS и Windows) و به kubectl نیاز دارد که نسخه آن از ۱.۱۴.۰ پایینتر نباشد.
ویژگی های اصلی Kubewise:
- تعامل رابط با متداول ترین موجودیت های Kubernetes: گره ها، فضاهای نام و غیره.
- پشتیبانی از چندین فایل kubeconfig برای کلاسترهای مختلف.
- ترمینال با قابلیت تنظیم متغیر محیطی
KUBECONFIG. - فایل های kubeconfig سفارشی را برای فضای نام داده شده ایجاد کنید.
- ویژگی های امنیتی پیشرفته (RBAC، رمزهای عبور، حساب های خدمات).
تا کنون، این پروژه تنها یک نسخه - نسخه دارد به تاریخ 26 نوامبر 2019. علاوه بر این، نویسندگان قصد داشتند بلافاصله آن را به عنوان منبع باز منتشر کنند، اما به دلیل مشکلات داخلی (مربوط به مسائل فنی) نتوانستند این کار را انجام دهند. از ماه می 2020، نویسندگان در حال کار بر روی نسخه بعدی هستند و باید همزمان فرآیند باز کردن کد را آغاز کنند.
6. OpenShift کنسول
- ;
- (~150 ستاره GitHub)؛
- مجوز: آپاچی 2.0;
- به طور خلاصه: "UI for OpenShift Cluster".

علیرغم این واقعیت که این رابط وب بخشی از توزیع OpenShift است (با استفاده از آن در آنجا نصب می شود ) نویسندگان قابلیت نصب / استفاده از آن در نصب های عادی (وانیلی) Kubernetes.
کنسول OpenShift برای مدت طولانی در حال توسعه بوده است، بنابراین ویژگی های بسیاری را در خود جای داده است. به موارد اصلی اشاره می کنیم:
- رویکرد رابط مشترک دو "چشم انداز" موجود در کنسول است: برای مدیران و برای توسعه دهندگان. حالت دیدگاه توسعه دهنده اشیاء را به شکلی گروه بندی می کند که برای توسعه دهندگان قابل درک تر است (بر اساس برنامه ها) و رابط را بر حل کارهای معمولی مانند استقرار برنامه ها، ردیابی وضعیت ساخت/استقرار، و حتی ویرایش کد از طریق Eclipse Che متمرکز می کند.
- مدیریت حجم کار، شبکه، ذخیره سازی، حقوق دسترسی.
- جداسازی منطقی بارهای کاری به پروژه ها و برنامه ها. در یکی از آخرین نسخه ها - v4.3 - خاص داشبورد پروژه، که داده های معمول (تعداد و وضعیت استقرارها، پادها و غیره؛ مصرف منابع و سایر معیارها) را در یک قطعه پروژه نمایش می دهد.
- به روز رسانی در نمایش زمان واقعی از وضعیت خوشه، تغییرات (رویدادها) که در آن رخ داده است. مشاهده سیاهههای مربوط
- مشاهده داده های نظارت بر اساس Prometheus، Alertmanager و Grafana.
- مدیریت اپراتورهای نمایندگی در .
- مدیریت ساختهایی که از طریق Docker اجرا میشوند (از یک مخزن مشخص شده با Dockerfile)، یا ابزارهای خارجی دلخواه.
NB: ما دیگران را به مقایسه اضافه نکردیم توزیع های Kubernetes (به عنوان مثال، موارد بسیار کمتر شناخته شده ): با وجود اینکه رابط کاربری گرافیکی می تواند در آنها بسیار پیشرفته باشد، معمولاً به عنوان بخشی از پشته یکپارچه یک سیستم بزرگ می آید. با این حال، اگر فکر می کنید که راه حل های کافی وجود ندارد که به طور کامل در نصب وانیلی K8s کار کند، در نظرات به ما اطلاع دهید.
جایزه
1. Portainer در Kubernetes در بتا
- ;
- (~100 ستاره GitHub)؛
- مجوز: Zlib(?) (همانطور برای پروژه مادر).
پروژه ای از تیم Portainer که رابط محبوبی به همین نام برای کار با Docker ایجاد کرد. از آنجایی که پروژه در مراحل اولیه توسعه است (اولین و تنها نسخه بتا 16 آوریل 2020)، ویژگی های آن را ارزیابی نکردیم. با این حال، ممکن است برای بسیاری جالب باشد: اگر این در مورد شماست، توسعه را دنبال کنید.
2. پنل یخی
- ;
- مجوز: اختصاصی;
- به طور خلاصه: "ویژوال Kubernetes Editor".

هدف این برنامه دسکتاپ جوان، تجسم و مدیریت منابع Kubernetes در زمان واقعی با یک رابط ساده کشیدن و رها کردن است. اشیاء پشتیبانی شده در حال حاضر عبارتند از Pod، Service، Deployment، StatefulSet، PersistentVolume، PersistentVolumeClaim، ConfigMap و Secret. به زودی آنها قول می دهند که از هلم پشتیبانی کنند. معایب اصلی نزدیک بودن کد است (انتظار می رود ) و عدم پشتیبانی Linux (در حال حاضر فقط نسخههای موجود هستند) Windows и macOS، اگرچه این نیز به احتمال زیاد فقط مسئله زمان است).
3.k9s
- ;
- ;
- (~7700 ستاره GitHub)؛
- مجوز: آپاچی 2.0;
- به طور خلاصه: "یک رابط کنسول برای Kubernetes که به شما امکان می دهد کلاستر خود را به سبک مدیریت کنید."

این ابزار فقط در بخش جایزه نقد قرار داشت به این دلیل که رابط کاربری گرافیکی کنسول را ارائه می دهد. با این حال، نویسندگان به معنای واقعی کلمه حداکثر را از ترمینال خارج کردند و نه تنها یک رابط کاربر پسند، بلکه 6 تم از پیش تعریف شده و یک سیستم پیشرفته از میانبرهای صفحه کلید و نام مستعار دستورات را ارائه کردند. رویکرد کامل آنها به ظاهر محدود نمیشود: ویژگیهای k9s به طرز دلپذیری چشمگیر هستند: مدیریت منابع، نمایش وضعیت خوشه، نمایش منابع در یک نمایش سلسله مراتبی با وابستگیها، مشاهده گزارشها، پشتیبانی از RBAC، گسترش قابلیتها از طریق پلاگینها... همه اینها جذاب هستند. به جامعه گسترده K8s: تعداد ستارگان GitHub پروژه تقریباً به اندازه داشبورد رسمی Kubernetes هستند!
4. کنترل پنل های کاربردی
و در پایان بررسی - یک مینی دسته جداگانه. این شامل دو رابط وب بود که نه برای مدیریت جامع خوشههای Kubernetes، بلکه برای مدیریت آنچه در آنها مستقر شده است، طراحی شدهاند.
همانطور که می دانید یکی از بالغ ترین و گسترده ترین ابزارها برای استقرار برنامه های پیچیده در Kubernetes، Helm است. در طول دوره وجود آن، بسته های زیادی (نمودارهای هلم) برای استقرار آسان انباشته شده است . بنابراین، ظاهر ابزارهای بصری مناسب که به شما امکان می دهد چرخه عمر نمودارها را مدیریت کنید کاملاً منطقی است.
4.1. تک چشمی
- (1300+ ستاره GitHub)؛
- مجوز: آپاچی 2.0;
- به طور خلاصه: «یک برنامه وب برای جستجو و کشف نمودارهای Helm در چندین مخزن. به عنوان پایه ای برای پروژه هلم هاب عمل می کند."

این توسعه از نویسندگان Helm در Kubernetes نصب شده است و در همان خوشه کار می کند و وظیفه را انجام می دهد. با این حال، در حال حاضر، این پروژه تقریبا توسعه نیافته است. هدف اصلی آن حمایت از وجود Helm Hub است. برای سایر نیازها، نویسندگان Kubeapps (به پایین مراجعه کنید) یا Red Hat Automation Broker (بخشی از OpenShift، اما دیگر در حال توسعه نیست) را توصیه می کنند.
4.2. Kubeapps
- ;
- ;
- (~2100 ستاره GitHub)؛
- مجوز: آپاچی 2.0
- به طور خلاصه: "داشبورد برنامه شما برای Kubernetes."

محصولی از Bitnami که در یک خوشه Kubernetes نیز نصب شده است، اما در تمرکز اولیه آن بر روی کار با مخازن خصوصی با Monocular متفاوت است.
عملکردها و ویژگی های کلیدی Kubeapps:
- نمودارهای Helm را از مخازن مشاهده و نصب کنید.
- برنامههای مبتنی بر Helm را که روی خوشه نصب شدهاند بررسی، بهروزرسانی و حذف کنید.
- پشتیبانی از مخازن نمودار سفارشی و خصوصی (پشتیبانی از ChartMuseum و JFrog Artifactory).
- مشاهده و کار با خدمات خارجی - از کاتالوگ خدمات و کارگزاران خدمات.
- انتشار برنامه های نصب شده با استفاده از مکانیسم خدمات کاتالوگ Bindings.
- پشتیبانی از احراز هویت و جداسازی حقوق با استفاده از RBAC.
جدول جمع بندی
در زیر یک جدول خلاصه ارائه شده است که در آن سعی شده است ویژگی های اصلی رابط های بصری موجود برای تسهیل مقایسه خلاصه و جمع آوری شود:
(نسخه آنلاین جدول .)
نتیجه
رابط کاربری گرافیکی برای Kubernetes یک جایگاه نسبتاً خاص و جوان است. با این حال، بسیار فعال در حال توسعه است: در حال حاضر می توان هم راه حل های کاملاً بالغ و هم راه حل های بسیار جوان را پیدا کرد که هنوز جای رشد دارند. آنها برنامه های مختلفی را ارائه می دهند و ویژگی ها و ظاهری را ارائه می دهند که تقریباً با هر سلیقه ای مطابقت دارد. امیدواریم این بررسی به شما کمک کند تا ابزاری را انتخاب کنید که به بهترین وجه با نیازهای فعلی شما مطابقت دارد.
PS
متشکرم برای داده های موجود در کنسول OpenShift برای جدول مقایسه!
در وبلاگ ما نیز بخوانید:
- «"؛
- «"؛
- «"؛
- «'.
منبع: www.habr.com
