Kubernetes uchun GUI-larning umumiy ko'rinishi

Kubernetes uchun GUI-larning umumiy ko'rinishi

Tizim bilan to'liq ishlash uchun buyruq qatori yordam dasturlarini bilish muhimdir: Kubernetes misolida bu kubectl. Boshqa tomondan, yaxshi mo'ljallangan, o'ylangan grafik interfeyslar ishlashi mumkinоodatiy vazifalarning aksariyati va tizimlarning ishlashi uchun qo'shimcha imkoniyatlar ochadi.

O'tgan yili biz tarjimani nashr qildik veb-interfeysning kichik ko'rinishi Kubernetes uchun veb-interfeys e'lon qilingan vaqtga to'g'ri keldi Kubernetes WebView. Ushbu maqola muallifi va yordamchi dasturning o'zi, Zalandodan Henning Jacobs, yangi mahsulotni "veb uchun kubectl" sifatida joylashtirdi. U texnik qo'llab-quvvatlash formatida o'zaro aloqa qilish (masalan, veb-havola bilan muammoni tezda ko'rsatish) va hodisalarga javob berish, bir vaqtning o'zida ko'plab klasterlarda muammolarni qidirish uchun foydalanuvchilarga qulay imkoniyatlarga ega vosita yaratmoqchi edi. Uning avlodlari hozirgi vaqtda rivojlanmoqda (asosan muallifning o'zi sa'y-harakatlari bilan).

Biz turli o'lchamdagi ko'plab Kubernetes klasterlariga xizmat ko'rsatar ekanmiz, mijozlarimizga vizual vositani taqdim etishdan ham manfaatdormiz. Tegishli interfeysni tanlashda biz uchun quyidagi xususiyatlar muhim edi:

  • foydalanuvchi huquqlarini farqlashni qo'llab-quvvatlash (RBAC);
  • nomlar maydoni holatini va standart Kubernetes primitivlarini vizualizatsiya qilish (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • pod ichidagi buyruq qatoriga kirish;
  • podalar jurnallarini ko'rish;
  • podalar holatini ko'rish (describe status);
  • podlarni olib tashlash.

Boshqa funktsiyalar, masalan, iste'mol qilingan resurslarni ko'rish (podlar / kontrollerlar / nomlar bo'shliqlari kontekstida), K8s primitivlarini yaratish / tahrirlash bizning ish jarayonimizga tegishli emas.

Ko'rib chiqishni bizning standartimiz bo'lgan klassik Kubernetes asboblar panelidan boshlaymiz. Dunyo to'xtamaganligi sababli (bu Kubernetes tobora ko'proq yangi GUI-larga ega ekanligini anglatadi), biz maqolaning oxiridagi qiyosiy jadvalda hamma narsani umumlashtirib, uning hozirgi muqobillari haqida gaplashamiz.

NB: Ko'rib chiqishda biz allaqachon ko'rib chiqilgan echimlar bilan takrorlamaymiz oxirgi maqola, ammo to'liqlik uchun undan tegishli variantlar (K8Dash, Octant, Kubernetes Web View) yakuniy jadvalga kiritilgan.

1. Kubernetes boshqaruv paneli

  • Hujjatlar sahifasi;
  • ombori (8000+ GitHub yulduzlari);
  • Litsenziya: Apache 2.0;
  • Qisqasi: “Kubernetes klasterlari uchun universal veb-interfeys. U foydalanuvchilarga klasterda ishlayotgan ilovalarni boshqarish va muammolarni bartaraf etish, shuningdek, klasterning o‘zini boshqarish imkonini beradi”.

Kubernetes uchun GUI-larning umumiy ko'rinishi

Bu rasmiy hujjatlarda Kubernetes mualliflari tomonidan qamrab olingan umumiy maqsadli panel (lekin joylashtirilmaydi standart). U klasterdagi ilovalarning kundalik ishlashi va disk raskadrovka ehtiyojlari uchun mo'ljallangan. Uyda biz uni ishlab chiquvchilarga klasterga kerakli va etarli darajada kirishni ta'minlashga imkon beruvchi to'liq huquqli engil vizual vosita sifatida foydalanamiz. Uning imkoniyatlari klasterdan foydalanish jarayonida yuzaga keladigan barcha ehtiyojlarini qoplaydi (ichida Ushbu maqola panelning ba'zi xususiyatlarini namoyish qildik). Siz taxmin qilganingizdek, bu yuqorida sanab o'tilgan barcha talablarimizga javob berishini anglatadi.

Kubernetes asboblar panelining asosiy xususiyatlari orasida:

  • Navigatsiya: K8-ning asosiy ob'ektlarini nomlar kontekstida ko'ring.
  • Agar sizda administrator huquqlari bo'lsa, panelda tugunlar, nomlar bo'shliqlari va doimiy jildlar ko'rsatiladi. Tugunlar uchun xotira, protsessor, resurslarni taqsimlash, ko'rsatkichlar, holat, hodisalar va boshqalardan foydalanish statistikasi mavjud.
  • Nom maydonida joylashtirilgan ilovalarni turlari (Deployment, StatefulSet va boshqalar), ular orasidagi munosabatlar (ReplicaSet, Horizontal Pod Autoscaler), umumiy va moslashtirilgan statistika va maʼlumotlar boʻyicha koʻring.
  • Xizmatlar va kirishlarni, shuningdek ularning pods va oxirgi nuqtalar bilan aloqalarini koʻring.
  • Fayl ob'ektlari va saqlash joylarini ko'rish: Doimiy hajm va Doimiy hajm da'vosi.
  • ConfigMap va Secretni koʻrish va tahrirlash.
  • Jurnallarni ko'rish.
  • Konteynerlarda buyruq qatoriga kirish.

Muhim kamchilik (ammo biz uchun emas) ko'p klasterli ishlarni qo'llab-quvvatlamaydi. Loyiha hamjamiyat tomonidan faol ishlab chiqilgan va Kubernetes API ning yangi versiyalari va spetsifikatsiyalari chiqarilishi bilan tegishli xususiyatlarni saqlab turadi: panelning so'nggi versiyasi v2.0.1 22-yil 2020-may - Kubernetes 1.18 bilan muvofiqligi tekshirildi.

2. linza

Kubernetes uchun GUI-larning umumiy ko'rinishi

Loyiha Kubernetes uchun to'liq integratsiyalashgan rivojlanish muhiti (IDE) sifatida joylashtirilgan. Bundan tashqari, u ko'plab klasterlar va ularda ishlaydigan ko'p sonli podalar bilan ishlash uchun optimallashtirilgan (25 XNUMX podda sinovdan o'tgan).

Lensning asosiy xususiyatlari/qobiliyatlari:

  • Klaster ichida hech narsa o'rnatishni talab qilmaydigan mustaqil dastur (aniqrog'i, Prometey barcha ko'rsatkichlarni olish uchun talab qilinadi, lekin buning uchun mavjud o'rnatish ham ishlatilishi mumkin). "Asosiy" o'rnatish Linux, macOS yoki Windows bilan ishlaydigan shaxsiy kompyuterda amalga oshiriladi.
  • Ko'p klasterli boshqaruv (yuzlab klasterlar qo'llab-quvvatlanadi).
  • Klaster holatini real vaqtda vizualizatsiya qilish.
  • O'rnatilgan Prometey asosidagi tarixga ega resurslardan foydalanish grafiklari va tendentsiyalari.
  • Konteynerlarning buyruq qatoriga va klaster tugunlariga kirish.
  • Kubernetes RBAC-ni to'liq qo'llab-quvvatlash.

Joriy nashr - 3.5.0 16-yil 2020-iyun. Dastlab Kontena tomonidan yaratilgan, bugungi kunda barcha intellektual mulk maxsus tashkilotga topshirilgan Lakend laboratoriyalari, "Kontena ochiq manbali dasturiy ta'minot va mahsulotlarining saqlanishi va mavjudligi" uchun mas'ul bo'lgan "bulutli mahalliy geeks va texnologlar ittifoqi" deb ataladi.

Lens GitHub-da Kubernetes uchun GUI toifasidan ikkinchi eng mashhur loyiha bo‘lib, faqat Kubernets boshqaruv panelini “yo‘qotadi”. CLI* toifasiga kirmaydigan boshqa barcha ochiq manbali yechimlar mashhurlik jihatidan ancha past.

* Sharhning bonus qismida K9 haqida qarang.

3. Kubernetik

Kubernetes uchun GUI-larning umumiy ko'rinishi

Bu shaxsiy kompyuterga o'rnatilgan xususiy dastur (Linux, macOS, Windows qo'llab-quvvatlanadi). Uning mualliflari buyruq qatori yordam dasturini to'liq almashtirishni va'da qilmoqdalar va u bilan - buyruqlarni eslab qolishning hojati yo'q va hatto tezlikni o'n baravar oshirish.

Asbobning qiziqarli xususiyatlaridan biri bu Helm diagrammalarining o'rnatilgan qo'llab-quvvatlashi va kamchiliklardan biri bu dastur ishlash ko'rsatkichlarining etishmasligi.

Kubernetic-ning asosiy xususiyatlari:

  • Klaster holatini qulay ko'rsatish. Barcha tegishli klaster ob'ektlari va ularning bog'liqliklarini ko'rish uchun bitta ekran; barcha ob'ektlar uchun qizil/yashil tayyorlik holati; real vaqtda holat yangilanishlari bilan klaster holatini ko'rish rejimi.
  • Ilovani o'chirish va masshtablash uchun tezkor harakat tugmalari.
  • Ko'p klasterli ishlashni qo'llab-quvvatlash.
  • Nom maydonlari bilan oddiy ishlash.
  • Helm diagrammalari va Helm omborlarini qo'llab-quvvatlash (jumladan, shaxsiy). Veb-interfeysda diagrammalarni o'rnatish va boshqarish.

Mahsulotning joriy narxi bir kishi tomonidan istalgan miqdordagi nomlar maydoni va klasterlar uchun foydalanish uchun 30 evro miqdoridagi bir martalik to'lovdir.

4. Kubevous

  • veb-sayt;
  • Taqdimot;
  • ombori (~500 GitHub yulduzi);
  • Litsenziya: Apache 2.0
  • Qisqasi: "Kubevious Kubernetes klasterlarini, dastur konfiguratsiyasini va holatni ko'rishni xavfsiz va tushunarli qiladi."

Kubernetes uchun GUI-larning umumiy ko'rinishi

Loyihaning g'oyasi - klasterda o'rnatilgan dastur konfiguratsiyasini tahlil qilish va disk raskadrovka qilish uchun mo'ljallangan vositani yaratish. Mualliflar, birinchi navbatda, ushbu xususiyatlarni amalga oshirishga e'tibor qaratdilar va keyinroq umumiy narsalarni qoldirdilar.

Kubeviousning asosiy xususiyatlari va funktsiyalari:

  • Klasterni amaliy ko'rinishga yo'naltirish usulida vizualizatsiya qilish: interfeysdagi tegishli ob'ektlar ierarxiyaga joylashtirilgan holda guruhlangan.
  • Konfiguratsiyalardagi bog'liqliklarning vizual ko'rinishi va ularning o'zgarishining kaskadli oqibatlari.
  • Klaster konfiguratsiyasi xatolarini ko'rsatish: teglardan noto'g'ri foydalanish, o'tkazib yuborilgan portlar va boshqalar. (Aytgancha, agar siz ushbu xususiyatga qiziqsangiz, e'tibor bering Polarisbu haqda biz allaqachon yozilgan.)
  • Oldingi nuqtaga qo'shimcha ravishda, potentsial xavfli konteynerlarni aniqlash mavjud, ya'ni. haddan tashqari ko'p imtiyozlarga ega bo'lish (atributlar hostPID, hostNetwork, hostIPC, o'rnatish docker.sock va hokazo).
  • Klaster uchun kengaytirilgan qidiruv tizimi (nafaqat ob'ektlar nomi bo'yicha, balki ularning xususiyatlari bo'yicha ham).
  • Imkoniyatlarni rejalashtirish va resurslarni optimallashtirish vositalari.
  • O'rnatilgan "vaqt mashinasi" (ob'ektlar konfiguratsiyasidagi oldingi o'zgarishlarni ko'rish imkoniyati).
  • Rollar, RoleBindings, ServiceAccountsning o'zaro bog'liq jadvali bilan RBAC boshqaruvi.
  • Faqat bitta klaster bilan ishlaydi.

Loyiha juda qisqa tarixga ega (birinchi reliz 11-yil 2020-fevralda boʻlib oʻtgan) va rivojlanishda barqarorlashuv yoki sekinlashuv davri boʻlganga oʻxshaydi. Agar oldingi versiyalar tez-tez chiqarilgan bo'lsa, so'nggi versiya (v0.5 15 yil 2020 aprel) rivojlanishning dastlabki sur'atlaridan orqada qoldi. Bu, ehtimol, hissa qo'shuvchilar sonining kamligi bilan bog'liq: ombor tarixida ulardan faqat 4 tasi bor va barcha haqiqiy ishlarni bir kishi bajaradi.

5. Kubewise

  • Loyiha sahifasi;
  • Litsenziya: mulkiy (Ochiq manbaga aylanadi);
  • Qisqasi: "Kubernetes uchun oddiy ko'p platformali mijoz."

Kubernetes uchun GUI-larning umumiy ko'rinishi

VMware yangi mahsuloti, dastlab ichki xakatonning bir qismi sifatida yaratilgan (2019 yil iyun oyida). Shaxsiy kompyuterga o'rnatilgan, asosida ishlaydi Elektron (Linux, macOS va Windows qo'llab-quvvatlanadi) va kubectl v1.14.0 yoki undan keyingi versiyasini talab qiladi.

Kubewise-ning asosiy xususiyatlari:

  • Eng ko'p ishlatiladigan Kubernetes ob'ektlari bilan interfeys o'zaro ta'siri: tugunlar, nomlar bo'shliqlari va boshqalar.
  • Turli klasterlar uchun bir nechta kubeconfig fayllarini qo'llab-quvvatlash.
  • Atrof-muhit o'zgaruvchisini o'rnatish qobiliyatiga ega terminal KUBECONFIG.
  • Berilgan nom maydoni uchun maxsus kubeconfig fayllarini yarating.
  • Kengaytirilgan xavfsizlik xususiyatlari (RBAC, parollar, xizmat hisoblari).

Hozircha loyihada faqat bitta versiya mavjud 1.1.0 26 yil 2019 noyabr. Bundan tashqari, mualliflar uni darhol ochiq manba sifatida chiqarishni rejalashtirishgan, ammo ichki muammolar (texnik muammolar bilan bog'liq bo'lmagan) tufayli ular buni qila olmadilar. 2020 yil may oyidan boshlab mualliflar keyingi nashr ustida ishlamoqda va bir vaqtning o'zida kodni ochish jarayonini boshlashlari kerak.

6. OpenShift konsoli

Kubernetes uchun GUI-larning umumiy ko'rinishi

Ushbu veb-interfeys OpenShift distributivining bir qismi bo'lishiga qaramay (u erda o'rnatilgan maxsus operator), mualliflar nazarda tutilgan oddiy (vanil) Kubernetes o'rnatishlarida uni o'rnatish / ishlatish qobiliyati.

OpenShift Console uzoq vaqt davomida ishlab chiqilmoqda, shuning uchun u ko'plab xususiyatlarni o'zida mujassam etgan. Biz asosiylarini aytib o'tamiz:

  • Umumiy interfeys yondashuvi - Konsolda mavjud bo'lgan imkoniyatlarning ikkita "perspektivlari": ma'murlar va ishlab chiquvchilar uchun. Rejim ishlab chiquvchi nuqtai nazari ob'ektlarni ishlab chiquvchilarga (ilovalar bo'yicha) tushunarliroq shaklda guruhlaydi va interfeysni ilovalarni joylashtirish, qurish/joylashtirish holatini kuzatish va hatto Eclipse Che orqali kodni tahrirlash kabi tipik vazifalarni hal qilishga yo'naltiradi.
  • Ish yuklarini, tarmoqni, saqlashni, kirish huquqlarini boshqarish.
  • Ish yuklarini loyihalar va ilovalarga mantiqiy ajratish. So'nggi versiyalardan birida - v4.3 - paydo maxsus loyiha boshqaruv paneli, bu loyiha bo'limida odatiy ma'lumotlarni (joylashtirishlar soni va holati, podkastlar va boshqalar; resurslar iste'moli va boshqa ko'rsatkichlar) aks ettiradi.
  • Klaster holati, unda sodir bo'lgan o'zgarishlar (hodisalar) real vaqt rejimida yangilanadi; jurnallarni ko'rish.
  • Prometey, Alertmanager va Grafana asosidagi monitoring ma'lumotlarini ko'ring.
  • Vakil qilingan operatorlarni boshqarish operatorhub.
  • Docker orqali ishlaydigan tuzilmalarni boshqarish (Dockerfile bilan belgilangan ombordan), S2I yoki o'zboshimchalik bilan tashqi yordam dasturlari.

NB: Taqqoslash uchun boshqalarni qo'shmadik Kubernetes tarqatish (masalan, kamroq ma'lum Kubesfera): GUI ularda juda ilg'or bo'lishi mumkinligiga qaramay, u odatda katta tizimning o'rnatilgan stekining bir qismi sifatida keladi. Ammo, agar siz vanil K8s o'rnatishda to'liq ishlaydigan echimlar etarli emas deb hisoblasangiz, izohlarda bizga xabar bering.

bonus

1. Beta-versiyasida Kubernetes-da porteyner

  • veb-sayt;
  • ombori (~100 GitHub yulduzi);
  • Litsenziya: Zlib(?) (bosh loyiha uchun ham xuddi shunday).

Docker bilan ishlash uchun bir xil nomdagi mashhur interfeysni ishlab chiqqan Porttainer jamoasi loyihasi. Loyiha rivojlanishning dastlabki bosqichida bo'lgani uchun (birinchi va yagona beta-versiya chiqdi 16 yil 2020 aprel), biz uning xususiyatlarini baholamadik. Biroq, bu ko'pchilikni qiziqtirishi mumkin: agar bu siz haqingizda bo'lsa, rivojlanishni kuzatib boring.

2. IcePanel

  • veb-sayt;
  • Litsenziya: mulkiy;
  • Qisqasi: "Visual Kubernetes Editor".

Kubernetes uchun GUI-larning umumiy ko'rinishi

Ushbu yosh ish stoli ilovasi oddiy sudrab olib tashlash interfeysi yordamida Kubernetes resurslarini real vaqtda vizuallashtirish va boshqarishga qaratilgan. Hozirda qo'llab-quvvatlanadigan ob'ektlar: Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap va Secret. Tez orada ular Helmga yordam qo'shishga va'da berishadi. Asosiy kamchiliklar - bu kodning yaqinligi (u kutilmoqda "qandaydir tarzda" ochish) va Linux-ni qo'llab-quvvatlashning etishmasligi (hozircha faqat Windows va macOS versiyalari mavjud, ammo bu ham vaqt masalasidir).

3,k9s

  • veb-sayt;
  • Namoyishlar;
  • ombori (~7700 GitHub yulduzi);
  • Litsenziya: Apache 2.0;
  • Qisqasi: "Klasteringizni uslubda boshqarish imkonini beruvchi Kubernetes uchun konsol interfeysi."

Kubernetes uchun GUI-larning umumiy ko'rinishi

Yordamchi dastur faqat ko'rib chiqishning bonus qismida edi, chunki u GUI konsolini taklif qiladi. Biroq, mualliflar so'zma-so'z terminaldan maksimal darajada siqib chiqdilar, bu nafaqat foydalanuvchilarga qulay interfeysni, balki oldindan belgilangan 6 ta mavzuni, shuningdek, klaviatura yorliqlari va buyruq taxalluslarining ilg'or tizimini taklif qildi. Ularning puxta yondashuvi tashqi ko'rinish bilan cheklanib qolmadi: k9s xususiyatlari yoqimli taassurot qoldiradi: resurslarni boshqarish, klaster holatini ko'rsatish, resurslarni bog'liqliklar bilan ierarxik ko'rinishda ko'rsatish, jurnallarni ko'rish, RBAC-ni qo'llab-quvvatlash, plaginlar orqali imkoniyatlarni kengaytirish ... Bularning barchasi e'tiborni tortdi. keng K8s hamjamiyatiga: loyihaning GitHub yulduzlari soni rasmiy Kubernetes Dashboard kabi deyarli yaxshi!

4. Ilovalarni boshqarish panellari

Va ko'rib chiqish oxirida - alohida mini-toifa. U Kubernetes klasterlarini har tomonlama boshqarish uchun emas, balki ularda joylashtirilgan narsalarni boshqarish uchun mo'ljallangan ikkita veb-interfeysni o'z ichiga oladi.

Ma'lumki, Kubernetes-da murakkab ilovalarni o'rnatish uchun eng etuk va keng tarqalgan vositalardan biri Helm hisoblanadi. Mavjud bo'lgan davrda oson joylashtirish uchun ko'plab paketlar (Helm diagrammalar) to'plangan. ko'plab mashhur ilovalar. Shuning uchun, diagrammalarning hayot aylanishini boshqarishga imkon beruvchi tegishli vizual vositalarning paydo bo'lishi juda mantiqiy.

4.1. Monokulyar

  • ombori (1300+ GitHub yulduzlari);
  • Litsenziya: Apache 2.0;
  • Qisqasi: “Bir nechta omborlarda Helm diagrammalarini qidirish va topish uchun veb-ilova. Helm hub loyihasi uchun asos bo'lib xizmat qiladi."

Kubernetes uchun GUI-larning umumiy ko'rinishi

Helm mualliflarining ushbu ishlanmasi Kubernetes-da o'rnatilgan va vazifani bajaradigan bir xil klasterda ishlaydi. Biroq, hozirda loyiha deyarli ishlab chiqilmagan. Uning asosiy maqsadi Helm Hub mavjudligini qo'llab-quvvatlashdir. Boshqa ehtiyojlar uchun mualliflar Kubeapps (pastga qarang) yoki Red Hat Automation Broker (OpenShift-ning bir qismi, lekin endi ishlab chiqilmaydi) ni tavsiya qiladi.

4.2. Kubeapps

  • veb-sayt;
  • Taqdimot;
  • ombori (~2100 GitHub yulduzi);
  • Litsenziya: Apache 2.0
  • Qisqasi: "Kubernetes uchun ilovangiz boshqaruv paneli."

Kubernetes uchun GUI-larning umumiy ko'rinishi

Bitnami mahsuloti, u ham Kubernetes klasterida o'rnatiladi, lekin Monocular-dan shaxsiy omborlar bilan ishlashga qaratilgan dastlabki yo'nalishi bilan farq qiladi.

Kubeapps-ning asosiy funktsiyalari va xususiyatlari:

  • Repozitariylardan Helm diagrammalarini ko'ring va o'rnating.
  • Klasterda o'rnatilgan Helm-ga asoslangan ilovalarni tekshiring, yangilang va o'chiring.
  • Maxsus va shaxsiy grafik omborlarini qo'llab-quvvatlash (ChartMuseum va JFrog Artifactory-ni qo'llab-quvvatlaydi).
  • Tashqi xizmatlarni ko'rish va ular bilan ishlash - Xizmatlar katalogi va xizmat brokerlaridan.
  • Xizmat katalogini bog'lash mexanizmidan foydalangan holda o'rnatilgan ilovalarni nashr qilish.
  • RBAC yordamida autentifikatsiya va huquqlarni ajratishni qo'llab-quvvatlash.

Xulosa jadvali

Quyida biz taqqoslashni osonlashtirish uchun mavjud vizual interfeyslarning asosiy xususiyatlarini umumlashtirishga va jamlashga harakat qilgan umumiy jadval mavjud:

Kubernetes uchun GUI-larning umumiy ko'rinishi
(Jadvalning onlayn versiyasi Google Docs-da mavjud.)

xulosa

Kubernetes uchun GUI-lar juda o'ziga xos va yosh joy. Biroq, u juda faol rivojlanmoqda: juda etuk echimlarni ham, hali o'sishi uchun joy bor juda yosh echimlarni topish mumkin. Ular turli xil ilovalarga javob beradi, deyarli har qanday didga mos keladigan xususiyatlar va ko'rinishlarni taklif qiladi. Umid qilamizki, ushbu sharh sizga hozirgi ehtiyojlaringizga eng mos keladigan vositani tanlashda yordam beradi.

PS

rahmat kvaps Taqqoslash jadvali uchun OpenShift konsolidagi ma'lumotlar uchun!

Shuningdek, bizning blogimizda o'qing:

Manba: www.habr.com

a Izoh qo'shish