Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Eslatma. tarjima.: Asl material muallifi Zalandodan Henning Jacobs. U Kubernetes bilan ishlash uchun yangi veb-interfeysini yaratdi, u "web uchun kubectl" sifatida joylashtirilgan. Nima uchun yangi Open Source loyihasi paydo bo'ldi va mavjud echimlar qanday mezonlarga javob bermadi - uning maqolasini o'qing.

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Ushbu postda men turli xil ochiq manbali Kubernetes veb-interfeyslarini ko'rib chiqaman, universal UI uchun talablarimni bayon qilaman va nima uchun ishlab chiqqanimni tushuntiraman. Kubernetes WebView — bir vaqtning o'zida bir nechta klasterlarni qo'llab-quvvatlash va muammolarni bartaraf etishni osonlashtirish uchun mo'ljallangan interfeys.

Foydalanish holatlari

Zalandoda biz ko'p sonli Kubernetes foydalanuvchilariga (900+) va klasterlarga (100+) xizmat ko'rsatamiz. Maxsus veb-vositadan foyda ko'radigan bir nechta umumiy foydalanish holatlari mavjud:

  1. qo'llab-quvvatlash uchun hamkasblar bilan muloqot qilish;
  2. hodisalarga javob berish va ularning sabablarini o'rganish.

qo'llab-quvvatlash

Mening tajribamga ko'ra, qo'llab-quvvatlash aloqalari ko'pincha shunday ko'rinadi:

— Yordam bering, bizning XYZ xizmatimiz mavjud emas!
- Ijod qilganingizda nimani ko'rasiz kubectl describe ingress ...?

Yoki CRD uchun shunga o'xshash narsa:

— Menda identifikatsiya xizmatida muammo bor...
- Buyruq nima beradi? kubectl describe platformcredentialsset ...?

Bunday aloqa odatda buyruqning turli xil variantlarini kiritishga to'g'ri keladi kubectl muammoni aniqlash uchun. Natijada, suhbatning ikkala tomoni ham terminal va veb-chat o'rtasida doimiy ravishda almashishga majbur bo'ladi, bundan tashqari ular boshqa vaziyatni kuzatadilar.

Shuning uchun men Kubernetes veb-brauzeriga quyidagilarga ruxsat berishini xohlayman:

  • foydalanuvchilar mumkin havolalarni almashish va xuddi shu narsani kuzating;
  • yordam berardi insoniy xatolardan qoching qo'llab-quvvatlashda: masalan, buyruq satrida noto'g'ri klasterga kirish, CLI buyruqlaridagi xatolar va boshqalar;
  • imkon berardi o'z qarashlaringizni yarating hamkasblarga yuborish, ya'ni teglar ustunlarini qo'shish, bir sahifada ko'p turdagi resurslarni ko'rsatish;
  • Ideal holda, ushbu veb-vositani sozlash imkonini berishi kerak YAML ning muayyan bo'limlariga "chuqur" havolalar (masalan, muvaffaqiyatsizlikka olib keladigan noto'g'ri parametrni ko'rsatish).

Voqealarga javob berish va tahlil qilish

Infratuzilma hodisalariga javob berish vaziyatdan xabardorlikni, ta'sirni baholash qobiliyatini va klasterlardagi naqshlarni izlashni talab qiladi. Haqiqiy hayotdan ba'zi misollar:

  • Muhim ishlab chiqarish xizmati muammolarga duch kelmoqda va sizga kerak barcha klasterlarda barcha Kubernetes resurslarini nomi bilan topingmuammolarni bartaraf etish;
  • miqyosda tugunlar tusha boshlaydi va sizga kerak barcha klasterlarda “Kutishda” holatiga ega barcha podlarni topingmuammoning ko'lamini baholash;
  • individual foydalanuvchilar DaemonSet bilan barcha klasterlarda o'rnatilgan muammo haqida xabar berishadi va buni aniqlashlari kerak. Muammo umumiymi?.

Bunday hollarda mening standart yechimim shunga o'xshash for i in $clusters; do kubectl ...; done. Shubhasiz, shunga o'xshash imkoniyatlarni ta'minlaydigan vosita ishlab chiqilishi mumkin.

Mavjud Kubernetes veb-interfeyslari

Kubernetes veb-interfeyslarining ochiq manba dunyosi unchalik katta emas*, shuning uchun men qo'shimcha ma'lumot to'plashga harakat qildim. Twitter:

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

*Kubernetes uchun cheklangan miqdordagi veb-interfeyslar haqida mening tushuntirishim: bulut xizmatlari va Kubernetes sotuvchilari odatda o'zlarining frontendlarini taklif qilishadi, shuning uchun "yaxshi" bepul Kubernetes UI bozori nisbatan kichik.

Tvit orqali men bilib oldim K8Dash, Kubernator и Oktant. Keling, ularni va boshqa mavjud ochiq manba echimlarini ko'rib chiqaylik, ularning nima ekanligini tushunishga harakat qilaylik.

K8Dash

"K8Dash - Kubernetes klasterini boshqarishning eng oddiy usuli."

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

K8Dash Yaxshi ko'rinadi va tez his qiladi, lekin yuqorida sanab o'tilgan foydalanish holatlari uchun bir qator kamchiliklarga ega:

  • Faqat bitta klaster chegaralarida ishlaydi.
  • Saralash va filtrlash mumkin, lekin doimiy havolalarga ega emas.
  • Custom Resource Definitions (CRD) uchun hech qanday yordam yo'q.

Kubernator

“Kubernator Kubernetes uchun muqobil UI hisoblanadi. Yuqori darajadagi Kubernetes asboblar panelidan farqli o'laroq, u yangilarini yaratish, ularni tahrirlash va nizolarni hal qilish qobiliyatiga ega bo'lgan klasterdagi barcha ob'ektlarga past darajadagi boshqaruv va mukammal ko'rinishni ta'minlaydi. To'liq mijoz tomonidagi dastur (masalan, kubectl) bo'lib, u Kubernetes API serverining o'zidan boshqa hech qanday serverni talab qilmaydi, shuningdek, klasterga kirish qoidalarini hurmat qiladi.

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Bu juda aniq tavsif Kubernator. Afsuski, u ba'zi xususiyatlarga ega emas:

  • Faqat bitta klasterga xizmat qiladi.
  • Ro'yxatni ko'rish rejimi yo'q (ya'ni, siz "Kutish kutilmoqda" holati bilan barcha podlarni ko'rsata olmaysiz).

Kubernetes boshqaruv paneli

“Kubernetes Dashboard Kubernetes klasterlari uchun universal veb-interfeysdir. U foydalanuvchilarga klasterda ishlaydigan ilovalarni boshqarish va muammolarni bartaraf etish, shuningdek, klasterning o‘zini boshqarish imkonini beradi”.

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Afsuski, Kubernetes boshqaruv paneli Mening qo'llab-quvvatlashim va hodisalarga javob berish faoliyatimda yordam bermaydi, chunki u:

  • doimiy havolalar yo'q, masalan, men resurslarni filtrlaganimda yoki tartiblash tartibini o'zgartirganimda;
  • holat bo'yicha filtrlashning oson usuli yo'q - masalan, "Kutilmoqda" holatiga ega bo'lgan barcha podlarni ko'ring;
  • faqat bitta klaster qo'llab-quvvatlanadi;
  • CRDlar qo'llab-quvvatlanmaydi (bu xususiyat ishlab chiqilmoqda);
  • maxsus ustunlar yo'q (turi bo'yicha belgilangan ustunlar kabi kubectl -L).

Kubernetes operatsion ko'rinishi (kube-ops-view)

"K8s Cluster Space uchun tizim boshqaruv paneli kuzatuvchisi."

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

У Kubernetes operatsion ko'rinishi Butunlay boshqacha yondashuv: bu vosita faqat WebGL-dan foydalangan holda klaster tugunlari va podkastlarini hech qanday matn ob'ekti tafsilotlarisiz ko'rsatadi. Bu klasterning sog'lig'ini tezda ko'rib chiqish uchun juda yaxshi (qobiqlar tushyaptimi?)*, lekin u yuqorida tavsiflangan qo'llab-quvvatlash va hodisalarga javob berish holatlari uchun mos emas.

* Eslatma. tarjima.: Shu ma'noda plaginimiz sizni ham qiziqtirishi mumkin grafana-status xaritasi, biz bu haqda batafsilroq gaplashdik Ushbu maqola.

Kubernetes resurs hisoboti (kube-resurs-hisobot)

"Pod va Kubernetes klaster resurs so'rovlarini to'plang, ularni resurslar iste'moli bilan solishtiring va statik HTML yarating."

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Kubernetes resurs hisoboti klasterlardagi guruhlar/ilovalar bo'yicha resurslardan foydalanish va xarajatlarni taqsimlash bo'yicha statik HTML hisobotlarini yaratadi. Hisobot qo'llab-quvvatlash va hodisalarga javob berish uchun biroz foydalidir, chunki u ilova joylashtirilgan klasterni tezda topishga imkon beradi.

Eslatma. tarjima.: Xizmat va vosita bulutli provayderlardan resurslarni taqsimlash va ularning xarajatlari haqidagi maʼlumotlarni koʻrishda ham foydali boʻlishi mumkin. Kubecost, biz ko'rib chiqamiz yaqinda nashr etilgan.

Oktant

"Kubernetes klasterlarining murakkabligini yaxshiroq tushunish uchun ishlab chiquvchilar uchun kengaytirilgan veb-platforma."

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Oktant, VMware tomonidan yaratilgan, men nisbatan yaqinda bilib olgan yangi mahsulotdir. Uning yordami bilan mahalliy mashinada klasterni o'rganish qulay (hatto vizualizatsiya ham mavjud), ammo u qo'llab-quvvatlash va hodisalarga javob berish masalalarini faqat cheklangan darajada hal qiladi. Oktantning kamchiliklari:

  • Klaster qidiruvi yo'q.
  • Faqat mahalliy mashinada ishlaydi (klasterga o'rnatilmaydi).
  • Ob'ektlarni saralab/filtrlab bo'lmadi (faqat teg selektori qo'llab-quvvatlanadi).
  • Siz maxsus ustunlarni belgilay olmaysiz.
  • Ob'ektlarni nomlar maydoni bo'yicha sanab bo'lmaydi.

Menda Zalando klasterlari bilan Oktantning barqarorligi bilan bog'liq muammolar bor edi: ba'zi CRDlarda u yiqilib tushdi.

Kubernetes Web View bilan tanishtirish

"Veb uchun kubectl".

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)

Kubernetes uchun mavjud interfeys variantlarini tahlil qilib, men yangisini yaratishga qaror qildim: Kubernetes WebView. Axir, aslida, menga barcha kuch kerak kubectl Internetda, xususan:

  • foydalanuvchilar kubectl dan foydalanishni afzal ko'radigan barcha (faqat o'qish uchun) operatsiyalarning mavjudligi;
  • barcha URL manzillar doimiy bo‘lishi va sahifani asl ko‘rinishida ifodalashi kerak, shunda hamkasblar ularni baham ko‘rishlari va boshqa vositalarda foydalanishlari mumkin;
  • har qanday turdagi muammolarni hal qilish imkonini beradigan barcha Kubernetes ob'ektlarini qo'llab-quvvatlash;
  • Resurs ro'yxatlari keyingi ishlash uchun yuklab olinishi kerak (elektron jadvallarda, CLI vositalari kabi grep) va saqlash (masalan, postmortems uchun);
  • yorliq bo'yicha resurslarni tanlashni qo'llab-quvvatlash (o'xshash kubectl get .. -l);
  • har xil turdagi resurslarning birlashtirilgan ro'yxatlarini yaratish qobiliyati (o'xshash kubectl get all) hamkasblar orasida umumiy operatsion rasmni olish (masalan, hodisaga javob berish paytida);
  • asboblar paneli, loggerlar, ilovalar registrlari va boshqalar kabi boshqa vositalarga maxsus aqlli chuqur havolalarni qo'shish imkoniyati. xatolarni bartaraf etish/hal qilish va hodisalarga javob berishni osonlashtirish;
  • Muzlatilgan JavaScript kabi tasodifiy muammolarni oldini olish uchun frontend iloji boricha sodda bo'lishi kerak (sof HTML);
  • masofaviy konsalting vaqtida o'zaro aloqani soddalashtirish uchun bir nechta klasterlarni qo'llab-quvvatlash (masalan, faqat bitta URL manzilini eslab qolish);
  • Iloji bo'lsa, vaziyatni tahlil qilish soddalashtirilgan bo'lishi kerak (masalan, barcha klasterlar/nom bo'shliqlari uchun yuklab olish manbalariga havolalar bilan);
  • moslashuvchan havolalarni yaratish va matn ma'lumotlarini ajratib ko'rsatish uchun qo'shimcha imkoniyatlar, masalan, siz hamkasblaringizni manba tavsifidagi ma'lum bo'limga (YAML-dagi chiziq) yo'naltirishingiz mumkin;
  • ma'lum bir mijozning talablariga moslashtirish qobiliyati, masalan, CRD uchun maxsus displey shablonlarini yaratish, o'zingizning jadval ko'rinishlaringizni va CSS uslublarini o'zgartirish;
  • buyruq satrida qo'shimcha tadqiqotlar uchun vositalar (masalan, to'liq buyruqlarni ko'rsatish kubectl, nusxa ko'chirishga tayyor);

Kubernetes Web View-da hal qilingan vazifalardan tashqari (maqsadsiz) qoldi:

  • Kubernetes ob'ektlarining abstraktsiyasi;
  • ilovalarni boshqarish (masalan, joylashtirishni boshqarish, Helm diagrammalari va boshqalar);
  • yozish operatsiyalari (xavfsiz CI/CD va/yoki GitOps vositalari orqali amalga oshirilishi kerak);
  • chiroyli interfeys (JavaScript, mavzular va boshqalar);
  • vizualizatsiya (qarang kube-ops-view);
  • xarajatlarni tahlil qilish (qarang kube-resurs-hisobot).

Kubernetes Web View yordam va hodisalarga javob berishda qanday yordam beradi?

qo'llab-quvvatlash

  • Barcha havolalar doimiydir, bu hamkasblar bilan ma'lumot almashishni osonlashtiradi.
  • Siz yaratishingiz mumkin sizning g'oyalaringiz, masalan, ikkita maxsus klasterda ma'lum yorliqli barcha O'rnatish va Podlarni ko'rsating (bir nechta klaster nomlari va manba turlari havolada vergul bilan ajratilgan holda ko'rsatilishi mumkin).
  • murojaat qilishingiz mumkin YAML faylidagi maxsus qatorlar ob'ekt spetsifikatsiyasida yuzaga kelishi mumkin bo'lgan muammolarni ko'rsatuvchi ob'ekt.

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)
Kubernetes Web View'da klasterlar bo'yicha qidirish

Hodisaga javob

  • Global qidiruv (global qidiruv) barcha klasterlardagi ob'ektlarni qidirish imkonini beradi.
  • Ko'rishlar ro'yxati barcha klasterlarda ma'lum holat/ustunga ega bo'lgan barcha ob'ektlarni ko'rsatishi mumkin (masalan, "Kutish kutilmoqda" holatiga ega barcha podlarni topishimiz kerak).
  • Ob'ektlar ro'yxatini yuklab olish mumkin keyinchalik tahlil qilish uchun tab bilan ajratilgan qiymat (TSV) formatida.
  • Moslashtirilgan tashqi havolalar Tegishli asboblar paneli va boshqa vositalarga o'tish imkonini beradi.

Kubernetes veb-ko'rinishi haqida e'lon (va Kubernetes uchun boshqa veb-UI-lar haqida qisqacha ma'lumot)
Kubernetes Web View: barcha klasterlarda “Kutilayotgan” maqomga ega bo‘laklar ro‘yxati

Agar siz Kubernetes Web View-ni sinab ko'rmoqchi bo'lsangiz, tekshirishni tavsiya qilaman hujjatlar yoki qarang jonli demo.

Albatta, interfeys yaxshiroq bo'lishi mumkin edi, ammo hozirda Kubernetes Web View bu "ilg'or foydalanuvchilar" uchun vosita bo'lib, agar kerak bo'lsa, URL yo'llarini qo'lda boshqarishdan qochmaydi. Agar sizda biron bir fikr / qo'shimcha / taklif bo'lsa, iltimos, murojaat qiling Twitterda men bilan!

Ushbu maqola Kubernetes Web View-ni yaratishga olib kelgan fonning qisqacha tarixi. Yana davom etadi! (Eslatma. tarjima.: Ularni kutish kerak muallif blogi.)

PS tarjimondan

Shuningdek, bizning blogimizda o'qing:

Manba: www.habr.com

a Izoh qo'shish