Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

Забелешка. превод.: Автор на оригиналниот материјал е Хенинг Џејкобс од Заландо. Тој создаде нов веб-интерфејс за работа со Kubernetes, кој е позициониран како „kubectl за веб“. Зошто се појави нов проект со отворен код и кои критериуми не ги исполнуваа постоечките решенија - прочитајте ја неговата статија.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

Во овој пост, ги прегледувам различните веб-интерфејси на Kubernetes со отворен код, ги изложувам моите барања за универзален интерфејс и објаснувам зошто развив Kubernetes WebView — интерфејс дизајниран да го олесни поддржувањето и решавањето проблеми на повеќе кластери одеднаш.

Случаи за употреба

Во Zalando опслужуваме голем број корисници на Kubernetes (900+) и кластери (100+). Постојат неколку случаи за вообичаена употреба кои би имале корист од посветена веб-алатка:

  1. комуникација со колегите за поддршка;
  2. реагирање на инциденти и истражување на нивните причини.

Поддршка

Според моето искуство, комуникациите за поддршка често изгледаат вака:

— Помош, нашата услуга XYZ е недостапна!
— Што гледате кога настапувате kubectl describe ingress ...?

Или нешто слично за CRD:

- Имам проблем со службата за идентификација...
— Што произведува командата? kubectl describe platformcredentialsset ...?

Таквата комуникација обично се сведува на внесување на различни варијации на командата kubectl со цел да се идентификува проблемот. Како резултат на тоа, двете страни во разговорот се принудени постојано да се префрлаат помеѓу терминалот и веб-разговорот, плус тие забележуваат различна ситуација.

Затоа, би сакал веб-фронтот на Кубернетес да го дозволи следново:

  • корисниците би можеле размена на врски и набљудувај го истото;
  • би помогнал избегнувајте човечки грешки во поддршка: на пример, најавување во погрешен кластер на командната линија, печатни грешки во командите CLI итн.;
  • би дозволил генерира сопствени ставови за испраќање до колеги, односно додавање колони ознаки, прикажување на многу видови ресурси на една страница;
  • Идеално, оваа веб-алатка треба да ви овозможи да поставите „длабоки“ врски до одредени делови од YAML (на пример, посочување на погрешен параметар што предизвикува дефекти).

Одговор и анализа на инцидентот

Одговарањето на инфраструктурни инциденти бара ситуациона свест, способност да се процени влијанието и да се бараат модели во кластери. Неколку примери од реалниот живот:

  • Критична производствена услуга има проблеми и вие треба најдете ги сите ресурси на Kubernetes по име во сите кластериза решавање на проблеми;
  • јазлите почнуваат да паѓаат при скалирање и ви треба најдете ги сите подлоги со статус „Во очекување“ во сите кластерида се процени обемот на проблемот;
  • индивидуалните корисници пријавуваат проблем со DaemonSet распореден во сите кластери и треба да го откријат Дали проблемот е целосен?.

Моето стандардно решение во вакви случаи е нешто слично for i in $clusters; do kubectl ...; done. Очигледно, можно е да се развие алатка која обезбедува слични можности.

Постоечки веб-интерфејси на Kubernetes

Светот со отворен код на веб-интерфејси за Kubernetes не е многу голем*, па затоа се обидов да соберам повеќе информации користејќи Twitter:

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

*Моето објаснување за ограничениот број на веб-интерфејси за Kubernetes: облак услугите и продавачите на Kubernetes обично нудат свои предни страни, така што пазарот за „добри“ бесплатни Kubernetes UI е релативно мал.

Преку твит дознав за K8Dash, Кубернатор и Октант. Ајде да ги погледнеме и другите постоечки решенија со отворен код, да се обидеме да разбереме што се тие.

K8Dash

„K8Dash е наједноставниот начин за управување со кластерот Kubernetes“.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

K8Dash Изгледа добро и се чувствува брзо, но има голем број на недостатоци за случаите на употреба наведени погоре:

  • Работи само во границите на еден кластер.
  • Сортирање и филтрирање се можни, но немаат постојани врски.
  • Нема поддршка за прилагодени дефиниции на ресурси (CRD).

Кубернатор

„Kubernator е алтернативен интерфејс за Kubernetes. За разлика од таблата Kubernetes на високо ниво, таа обезбедува контрола на ниско ниво и одлична видливост на сите објекти во кластерот со можност за создавање нови, нивно уредување и решавање на конфликти. Со оглед на тоа што е целосно апликација од страна на клиентот (како kubectl), таа не бара никаков заднина освен самиот Kubernetes API сервер, а исто така ги почитува правилата за пристап во кластерот.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

Ова е прилично точен опис Кубернатор. За жал, му недостасуваат некои карактеристики:

  • Служи само еден кластер.
  • Не постои режим на преглед на список (т.е., не можете да ги прикажете сите подлоги со статус „Во очекување“).

Табла на Кубернес

„Kubernetes Dashboard е универзален веб-интерфејс за кластерите на Kubernetes. Тоа им овозможува на корисниците да управуваат и да решаваат проблеми со апликациите што работат во кластер, како и да управуваат со самиот кластер“.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

За жал, Табла на Кубернес навистина не помага со мојата поддршка и активности за одговор на инциденти затоа што:

  • нема постојани врски, на пример кога филтрирам ресурси или менувам редослед на сортирање;
  • не постои лесен начин за филтрирање по статус - на пример, видете ги сите подлоги со статус „Во очекување“;
  • само еден кластер е поддржан;
  • CRD не се поддржани (оваа функција е во развој);
  • нема приспособени колони (како што се колони означени по тип kubectl -L).

Оперативен приказ на Kubernetes (kube-ops-view)

„Набљудувач на системска контролна табла за простор на кластерот K8s“.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

У Оперативен приказ на Kubernetes Сосема поинаков пристап: оваа алатка прикажува само јазли и кластери користејќи WebGL, без никакви детали за текстуален објект. Одлично е за брз преглед на здравјето на кластерот (дали паѓаат мешунките?)*, но не е погоден за случаите за употреба на поддршка и одговор на инциденти опишани погоре.

* Забелешка. превод.: Во оваа смисла, можеби ќе ве интересира и нашиот приклучок графана-статусна карта, за што подетално зборувавме во овој напис.

Извештај за ресурси на Кубернетес (кубе-ресурс-извештај)

„Соберете барања за ресурси за кластери за под и Кубернетс, споредете ги со потрошувачката на ресурси и генерирајте статичен HTML“.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

Извештај за ресурсите на Кубернетес генерира статични HTML извештаи за користење на ресурси и распределба на трошоците низ тимови/апликации во кластери. Извештајот е донекаде корисен за поддршка и одговор на инциденти бидејќи ви овозможува брзо да го пронајдете кластерот каде што е распоредена апликацијата.

Забелешка. превод.: Услугата и алатката исто така може да бидат корисни при прегледување информации за распределбата на ресурсите и нивните трошоци меѓу давателите на облак Кубекост, кој го разгледуваме неодамна објавени.

Октант

„Проширлива веб-платформа за програмери дизајнирана да обезбеди поголемо разбирање на сложеноста на кластерите на Кубернетес“.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

Октант, создаден од VMware, е нов производ за кој дознав релативно неодамна. Со негова помош, погодно е да се истражува кластерот на локална машина (има дури и визуелизации), но прашањата за поддршка и одговор на инцидентот ги решава само во ограничен обем. Недостатоци на октант:

  • Нема пребарување на кластери.
  • Работи само на локалната машина (не се распоредува во кластер).
  • Не може да се сортираат/филтрираат објекти (поддржан е само избирачот на етикети).
  • Не можете да наведете приспособени колони.
  • Не можете да наведете објекти по именски простор.

Имав проблеми и со стабилноста на Октант со кластерите Заландо: на некои ЦРД тој паѓаше.

Ви го претставуваме веб-приказот на Кубернетес

"kubectl за веб".

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)

Откако ги анализирав достапните опции за интерфејс за Kubernetes, решив да создадам нов: Kubernetes WebView. На крајот на краиштата, всушност, ми треба само сета моќ kubectl на веб, имено:

  • достапност на сите операции (само за читање) за кои корисниците претпочитаат да користат kubectl;
  • сите URL-адреси мора да бидат постојани и да ја претставуваат страницата во нејзината оригинална форма за да можат колегите да ги споделат и да ги користат во други алатки;
  • поддршка за сите објекти на Кубернет, што ќе ви овозможи да решите секаков вид проблем;
  • Списоците со ресурси треба да можат да се преземат за понатамошна работа (во табеларни пресметки, алатките CLI како grep) и складирање (на пример, за посмртници);
  • поддршка за избор на ресурси по ознака (слично на kubectl get .. -l);
  • способноста да се креираат комбинирани листи на различни видови ресурси (слично на kubectl get all) да се добие заедничка оперативна слика меѓу колегите (на пример, за време на одговор на инцидентот);
  • можност за додавање прилагодени паметни длабоки врски до други алатки како што се контролни табли, дневници, регистри на апликации итн. да се олесни решавањето/решавањето на грешките и да се одговори на инциденти;
  • Предниот дел треба да биде што е можно поедноставен (чист HTML) за да се избегнат случајни проблеми, како што е замрзнатиот JavaScript;
  • поддршка за повеќе кластери за да се поедностави интеракцијата за време на далечинско консултации (на пример, да се запамети само еден URL);
  • Ако е можно, анализата на ситуацијата треба да се поедностави (на пример, со врски за преземање ресурси за сите кластери/имиња);
  • дополнителни можности за создавање флексибилни врски и истакнување на текстуални информации, на пример, за да можете да ги насочите колегите кон одреден дел во описот на ресурсите (линија во YAML);
  • можност за прилагодување на барањата на одреден клиент, на пример, овозможувајќи ви да креирате специјални шаблони за приказ за CRD, ваши сопствени прикази на табели и да ги менувате стиловите на CSS;
  • алатки за понатамошно истражување на командната линија (на пример, прикажување на целосни команди kubectl, подготвен за копирање);

Надвор од задачите решени во веб-приказот на Кубернетес (без голови) остана:

  • апстракција на објекти од Кубернет;
  • управување со апликации (на пример, управување со распоредување, дијаграми на корми, итн.);
  • операции за пишување (мора да се направат преку безбедни алатки CI/CD и/или GitOps);
  • прекрасен интерфејс (JavaScript, теми, итн.);
  • визуелизација (види kube-ops-view);
  • анализа на трошоците (види кубе-ресурс-извештај).

Како Kubernetes Web View помага при поддршката и одговорот на инцидентот?

Поддршка

  • Сите врски се постојани, што ја олеснува размената на информации со колегите.
  • Можете да креирате вашите идеи, на пример, прикажете ги сите распоредувања и подлоги со одредена ознака во две специфични кластери (неколку имиња на кластери и типови на ресурси може да се наведат во врската, одделени со запирки).
  • Можете да се повикате на специфични линии во датотека YAML објект, што укажува на потенцијални проблеми во спецификацијата на објектот.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)
Пребарувајте по кластери во веб-приказот на Кубернетес

Одговор на инцидент

  • Глобално пребарување (глобално пребарување) ви овозможува да пребарувате објекти во сите кластери.
  • Прегледи на листа може да ги прикаже сите објекти со одредена состојба/колона во сите кластери (на пример, треба да ги најдеме сите подлоги со статус „Во очекување“).
  • Списоците на објекти може да се преземат во формат со вредност одвоена со јазичиња (TSV) за подоцнежна анализа.
  • Прилагодливи надворешни врски Ви овозможува да се префрлите на поврзани контролни табли и други алатки.

Најава за веб-приказот на Kubernetes (и краток преглед на други веб-интерфејси за Kubernetes)
Веб приказ на Kubernetes: список на места со статус „Во очекување“ во сите кластери

Ако сакате да го пробате Kubernetes Web View, препорачувам да се проверите документација или погледнете демо во живо.

Се разбира, интерфејсот би можел да биде подобар, но засега Kubernetes Web View е алатка за „напредни корисници“ кои не се избегнуваат рачно да манипулираат со патеките на URL-то доколку е потребно. Доколку имате какви било коментари/додатоци/предлози, ве молиме контактирајте со мене на Твитер!

Оваа статија е кратка историја на позадината што доведе до создавање на веб-приказ на Kubernetes. Ќе следи повеќе! (Забелешка. превод.: Треба да се очекуваат во блог на авторот.)

PS од преведувачот

Прочитајте и на нашиот блог:

Извор: www.habr.com

Додадете коментар