Преглед на GUI за Kubernetes

Преглед на GUI за Kubernetes

За целосна работа со системот, важно е да се знаат комуналните услуги на командната линија: во случајот на Kubernetes, ова е kubectl. Од друга страна, добро дизајнираните, добро осмислени GUI може да работатоповеќето од вообичаените задачи и отвораат дополнителни можности кога оперативните системи.

Минатата година објавивме превод краток преглед на веб UI за Kubernetes, посветен на објавувањето на веб-интерфејсот Kubernetes WebView. Авторот на таа статија и самата алатка, Хенинг Џејкобс од компанијата Заландо, го позиционираа новиот производ како „кубектл за веб“. Тој сакаше да создаде алатка со пригодни можности за интеракција во формат за техничка поддршка (на пример, брзо прикажување проблем со веб-врска) и за одговор на инциденти, истовремено пребарување на проблеми во многу кластери. Неговиот замислив сè уште се развива денес (главно од самиот автор).

Служувајќи многу Kubernetes кластери со различни големини, ние сме заинтересирани и за можноста да им обезбедиме на клиентите визуелна работна алатка. При изборот на соодветен интерфејс, следните карактеристики беа клучни за нас:

  • поддршка за диференцијација на корисничките права (RBAC);
  • визуелизација на состојбата на именскиот простор и стандардните примитиви на Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • добивање пристап до командната линија во внатрешноста на подлогата;
  • гледање логови на pod;
  • гледање на статусот на мешунките (describe status);
  • отстранување на мешунките.

Други функции, како што се гледање потрошени ресурси (по подлоги/контролери/именски простори), создавање/уредување на примитиви на K8, не се релевантни во нашиот работен тек.

Прегледот ќе го започнеме со класичната табла на Kubernetes, која е усвоена како наш стандард. Бидејќи светот не мирува (што значи дека се појавуваат нови GUI во Kubernetes), ќе зборуваме и за неговите сегашни алтернативи, сумирајќи сè во компаративна табела на крајот од статијата.

NB: Во прегледот нема да ги повториме оние решенија кои веќе се разгледани во последна статија, сепак - заради комплетноста - соодветните опции од него (K8Dash, Octant, Kubernetes Web View) се вклучени во финалната табела.

1. Контролна табла на Кубернетес

  • Страница за документација;
  • складиште (8000+ ѕвезди на GitHub);
  • Лиценца: Apache 2.0;
  • Накратко: „Универзален веб-интерфејс за кластерите на Кубернетес. Тоа им овозможува на корисниците да управуваат и да решаваат проблеми со апликациите што работат во кластер, како и да управуваат со самиот кластер“.

Преглед на GUI за Kubernetes

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

Меѓу главните карактеристики на Kubernetes Dashboard:

  • Навигација: прегледувајте ги главните објекти на K8 по именски простор.
  • Ако имате администраторски права, панелот прикажува јазли, именски простори и постојани томови. За јазлите се достапни статистики за употреба на меморија и процесор, распределба на ресурси, метрика, статус, настани итн.
  • Приказ на апликациите распоредени во именскиот простор според нивниот тип (Deployment, StatefulSet, итн.), врските меѓу нив (ReplicaSet, Horizontal Pod Autoscaler), општи и персонализирани статистики и информации.
  • Погледнете ги услугите и Ingress, како и нивните врски со подлоги и крајни точки.
  • Приказ на објекти и складишта на датотеки: постојан волумен и тврдење за постојан волумен.
  • Приказ и уредување на ConfigMap и Secret.
  • Прикажи дневници.
  • Пристап до командната линија во контејнери.

Значаен недостаток (не за нас, сепак) е тоа што нема поддршка за работа со повеќе кластери. Проектот е активно развиен од заедницата и ги поддржува тековните функции со објавување на нови верзии и спецификации на Kubernetes API: најновата верзија на панелот е v2.0.1 22 мај 2020 година - Тестирано за компатибилност со Kubernetes 1.18.

2. Леќа

Преглед на GUI за Kubernetes

Проектот е позициониран како полноправно интегрирано развојно опкружување (IDE) за Kubernetes. Дополнително, тој е оптимизиран за работа со многу кластери и голем број мешунки кои работат во нив (тестиран на 25 илјади парчиња).

Главни карактеристики/способности на објективот:

  • Самостојна апликација која не бара инсталација на ништо во кластерот (поточно, Prometheus е потребен за да ги добие сите метрики, но за ова можете да користите и постоечка инсталација). „Главната“ инсталација се изведува на персонален компјутер со Linux, macOS или Windows.
  • Управување со повеќе кластери (поддржани стотици кластери).
  • Визуелизација на состојбата на кластерот во реално време.
  • Графикони за користење ресурси и трендови со историја базирана на вградениот Прометеј.
  • Пристап до командната линија на контејнери и кластерски јазли.
  • Целосна поддршка за Kubernetes RBAC.

Тековно издание - 3.5.0 од 16 јуни 2020 година. Првичната верзија е креирана во Контена, а денес целата интелектуална сопственост е префрлена на посебна организација Lakeland Labs, наречена „здружение на домородни гикови и технолози во облак“, кои се одговорни за „зачувување и ставање на располагање на софтверот со отворен код и производите на Kontena“.

Lens е вториот најпопуларен проект на GitHub во категоријата GUI за Kubernetes, зад само самата Kubernets Dashboard. Сите други решенија со отворен код кои не се во категоријата CLI* се значително инфериорни по популарност.

*Погледнете за K9 во бонусниот дел од прегледот.

3. Кубернетик

Преглед на GUI за Kubernetes

Ова е комерцијална апликација која е инсталирана на персонален компјутер (поддржани се Linux, macOS, Windows). Неговите автори ветуваат целосна замена на алатката за командна линија, а со тоа нема потреба да се сеќаваат на командите, па дури и десеткратно зголемување на работната брзина.

Една од интересните карактеристики на алатката е вградената поддршка за табелите на Helm, но една од недостатоците е недостатокот на метрика за перформансите на апликацијата.

Главните карактеристики на Кубернетик:

  • Практично прикажување на статусот на кластерот. Еден екран за прегледување на сите поврзани објекти на кластерот и нивните зависности; црвено/зелена подготвена состојба за сите објекти; режим на гледање статус на кластер со ажурирања на статусот во реално време.
  • Копчиња за брзо дејство за бришење и скалирање на апликацијата.
  • Поддршка за работа со повеќе кластери.
  • Лесна работа со именски простори.
  • Поддршка за табели на Helm и складишта на Helm (вклучувајќи ги и приватните). Инсталација и управување со графикони во веб-интерфејсот.

Тековната цена на производот е еднократна исплата од 30 евра за негова употреба од страна на едно лице за кој било број на именски простори и кластери.

4. Кубевиус

  • Мапа;
  • Презентација;
  • складиште (~500 ѕвезди на GitHub);
  • Лиценца: Apache 2.0
  • Накратко: „Kubevious ги прави кластерите на Kubernetes, конфигурацијата на апликациите и видливоста во статусот на апликацијата безбедни и лесни за разбирање“.

Преглед на GUI за Kubernetes

Идејата на проектот е да се создаде алатка дизајнирана да ги анализира и дебагира конфигурациите на апликациите распоредени во кластер. Авторите се фокусираа првенствено на имплементацијата на овие карактеристики, оставајќи поопшти работи за подоцна.

Главни карактеристики и функции на Kubevious:

  • Визуелизирајте го кластерот на апликациски-центричен начин: меѓусебно поврзаните објекти во интерфејсот се групирани во хиерархија.
  • Визуелно прикажувајте ги зависностите во конфигурациите и каскадните последици од нивните промени.
  • Прикажува грешки во конфигурацијата на кластерот: неправилна употреба на етикети, пропуштени порти итн. (Патем, ако сте заинтересирани за оваа функција, обрнете внимание Поларисза кои ние веќе напиша.)
  • Покрај претходната точка, достапно е откривање на потенцијално опасни контејнери, т.е. имајќи премногу привилегии (атрибути hostPID, hostNetwork, hostIPC, монтажа docker.sock итн).
  • Напреден систем за пребарување на кластери (не само според имињата на објектите, туку и според нивните својства).
  • Алатки за планирање на капацитетот и оптимизација на ресурсите.
  • Вградена „временска машина“ (способност да се видат претходно настанатите промени во конфигурацијата на објектите).
  • Управување со RBAC користејќи збирна меѓусебно поврзана табела од Улоги, RoleBindings, ServiceAccounts.
  • Работи само со еден кластер.

Проектот има многу кратка историја (првото издание се случи на 11 февруари 2020 година) и се чини дека има период или на стабилизација или забавување во развојот. Ако претходните верзии беа објавувани често, тогаш најновото издание (v0.5 од 15 април 2020 година) заостана зад првичното темпо на развој. Ова веројатно се должи на малиот број на соработници: во историјата на складиштето има само 4 од нив, а целата вистинска работа ја врши едно лице.

5. Kubewise

  • Страница на проектот;
  • Лиценца: комерцијална (ќе стане отворен код);
  • Накратко: „Едноставен клиент со повеќе платформи за Kubernetes“.

Преглед на GUI за Kubernetes

Нов производ од VMware, првично создаден како дел од внатрешен хакатон (во јуни 2019 година). Инсталиран на персонален компјутер, работи на основа Електронска (поддржано од Linux, macOS и Windows) и бара kubectl v1.14.0 или понова верзија.

Главни карактеристики на Kubewise:

  • Интеракција на интерфејсот со најчесто користените ентитети на Кубернет: јазли, именски простори итн.
  • Поддршка за повеќе датотеки kubeconfig за различни кластери.
  • Терминал со можност за поставување променлива на околината KUBECONFIG.
  • Генерирање сопствени датотеки kubeconfig за даден именски простор.
  • Напредни безбедносни карактеристики (RBAC, лозинки, сметки за услуги).

Досега проектот има само едно издание - верзија 1.1.0 од 26 ноември 2019 година. Покрај тоа, авторите планирале веднаш да го пуштат како софтвер со отворен код, но поради внатрешни проблеми (не поврзани со технички проблеми) не можеа да го направат тоа. Почнувајќи од мај 2020 година, авторите работат на следното издание и мора да го започнат процесот со отворен код во исто време.

6. Конзола OpenShift

Преглед на GUI за Kubernetes

И покрај фактот дека овој веб-интерфејс е дел од дистрибуцијата OpenShift (таму се инсталира со користење специјален оператор), автори имаат обезбедено можност за инсталирање/користење во редовни (ванила) Кубернетес инсталации.

Конзолата OpenShift се развива долго време, па затоа има вградено многу функции. Да ги споменеме главните:

  • Заеднички пристап кон интерфејсот - две „перспективи“ на можностите достапни во Конзолата: за администратори и за програмери. Мод Перспектива на програмери ги групира објектите во форма поразбирлива за програмерите (по апликација) и го фокусира интерфејсот на решавање на типични задачи како што се распоредување апликации, следење на статусот на изградба/распоредување, па дури и уредување на код преку Eclipse Che.
  • Управувајте со обемот на работа, мрежата, складирањето, правата за пристап.
  • Логичко раздвојување за обемот на работа на проекти и апликации. Во едно од најновите изданија - v4.3 - се појави посебен Контролна табла на проектот, прикажување на вообичаените податоци (број и статус на распоредувања, подлоги, итн.; потрошувачка на ресурси и други метрики) во пресек на проекти.
  • Ажуриран приказ во реално време на статусот на кластерот и промените (настаните) што се случиле во него; гледање дневници.
  • Погледнете ги податоците за следење врз основа на Prometheus, Alertmanager и Grafana.
  • Управувачките оператори застапени во OperatorHub.
  • Управувајте со градбите што работат преку Docker (од одредено складиште со Dockerfile) S2I или произволни надворешни комунални услуги.

NB: Не додадовме други во споредбата Дистрибуции на Kubernetes (на пример, многу помалку познат Кубесфера): и покрај фактот што графичкиот интерфејс во нив може да биде многу напреден, тој обично доаѓа како дел од интегрираниот стек на голем систем. Меѓутоа, доколку мислите дека недостасуваат некои решенија кои се целосно функционални во инсталацијата на ванила K8s, кажете ни во коментар.

бонус

1. Portainer на Kubernetes во бета верзија

  • Мапа;
  • складиште (~100 ѕвезди на GitHub);
  • Лиценца: Злиб(?) (исто како и матичниот проект).

Проект од тимот на Portainer, кој го разви истоимениот популарен интерфејс за работа со Docker. Бидејќи проектот е во рана фаза на развој (првата и единствена бета верзија излезе 16 април 2020 година), не ги оценивме неговите карактеристики. Сепак, тоа може да биде од интерес за многумина: ако ова звучи како вас, следете го развојот.

2. IcePanel

  • Мапа;
  • Лиценца: комерцијален;
  • Накратко: „Уредник на визуелен Kubernetes“.

Преглед на GUI за Kubernetes

Оваа млада десктоп апликација има за цел да ги визуелизира и управува со ресурсите на Кубернетес во реално време со едноставен интерфејс за влечење и спуштање. Тековно поддржаните објекти се Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap и Secret. Тие ветуваат дека наскоро ќе додадат поддршка на Helm. Главните недостатоци се дека кодот е затворен (се очекува отворање „во некоја форма“) и недостаток на поддршка за Linux (засега се достапни само верзии за Windows и macOS, иако ова е најверојатно само прашање на време).

3. k9s

  • Мапа;
  • Демонстрација;
  • складиште (~7700 ѕвезди на GitHub);
  • Лиценца: Apache 2.0;
  • Накратко: „Интерфејс за конзола за Kubernetes што ви овозможува да управувате со вашиот кластер со стил“.

Преглед на GUI за Kubernetes

Алатката беше вклучена само во бонусниот дел од прегледот од причина што нуди GUI на конзолата. Сепак, авторите буквално го притиснаа максимумот од терминалот, нудејќи не само удобен интерфејс, туку и 6 предефинирани теми и развиен систем на кратенки на тастатурата и псевдоними за команди. Нивниот темелен пристап не беше ограничен само на изгледот: можностите на k9 се пријатно импресивни: управување со ресурси, прикажување на состојбата на кластерот, прикажување ресурси во хиерархиски приказ со зависности, прегледување дневници, поддршка на RBAC, проширување на можностите преку приклучоци... Сите ова и се допадна на широката заедница на K8: количина Проектот ѕвезда на GitHub е речиси исто толку добар како официјалната контролна табла на Кубернетес!

4. Контролни панели за апликации

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

Како што знаете, една од најзрелите и најраспространетите алатки за распоредување сложени апликации во Kubernetes е Helm. Во текот на периодот на неговото постоење, се акумулираа многу пакети (Хелм графикони) за лесно распоредување многу популарни апликации. Затоа, сосема е логично да се појават соодветни визуелни алатки кои ќе помогнат во управувањето со животниот циклус на графиконите.

4.1. Моноглед

  • складиште (1300+ ѕвезди на GitHub);
  • Лиценца: Apache 2.0;
  • Накратко: „Веб-апликација за пребарување и откривање на табели на Helm низ повеќе складишта. Служи како основа за проектот Helm hub“.

Преглед на GUI за Kubernetes

Овој развој од авторите на Helm е инсталиран во Kubernetes и работи во еден кластер, извршувајќи ја доделената задача. Меѓутоа, во моментов проектот воопшто не се развива. Неговата главна цел е да го поддржи постоењето на Helm Hub. За други потреби, авторите препорачуваат Kubeapps (види подолу) или Red Hat Automation Broker (дел од OpenShift, но исто така повеќе не се развива).

4.2. Kubeapps

Преглед на GUI за Kubernetes

Производ од Bitnami, кој исто така е инсталиран во кластерот Kubernetes, но се разликува од Monocular во неговиот првичен фокус на работа со приватни складишта.

Главни карактеристики и функционалност на Kubeapps:

  • Прегледувајте ги и инсталирајте табели на Helm од складишта.
  • Проверете, ажурирајте и отстранете ги апликациите базирани на Helm инсталирани на кластерот.
  • Поддршка за работа со сопствени и приватни складишта за графикони (поддржува ChartMuseum и JFrog Artifactory).
  • Приказ и работа со надворешни услуги - од Каталог за услуги и Брокери за услуги.
  • Објавување на инсталирани апликации користејќи го механизмот за врзување на каталог за услуги.
  • Поддршка за автентикација и раздвојување на правата со помош на RBAC.

Завршна табела

Подолу е сумирана табела во која се обидовме да ги сумираме и да ги собереме главните можности на постоечките визуелни интерфејси за да ја олесниме споредбата:

Преглед на GUI за Kubernetes
(Онлајн верзија на табелата достапни во Google Docs.)

Заклучок

Графичките интерфејси за Kubernetes се прилично специфична и млада ниша. Сепак, тој се развива многу активно: веќе можете да најдете и прилично зрели решенија и многу млади кои сè уште имаат простор да растат. Тие се грижат за различни апликации, нудејќи карактеристики и изглед што одговараат на речиси секој вкус. Се надеваме дека овој преглед ќе ви помогне да ја изберете алатката што најдобро одговара на вашите моментални потреби.

PS

Ви благодарам квапс за податоците на Конзолата OpenShift за споредбената табела!

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

Извор: www.habr.com

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