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

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

За пълноценна работа със системата е важно познаването на помощните програми на командния ред: в случая на Kubernetes това е kubectl. От друга страна, добре проектираните, обмислени графични интерфейси могат да работятоповечето от обичайните задачи и отварят допълнителни възможности за работа на системите.

Миналата година публикувахме превод малък преглед на уеб потребителския интерфейс за Kubernetes, насрочено да съвпадне с обявяването на уеб интерфейса Kubernetes WebView. Авторът на тази статия и самата помощна програма, Henning Jacobs от Zalando, току-що позиционира новия продукт като „kubectl за уеб“. Той искаше да създаде инструмент с удобни за потребителя възможности за взаимодействие във формат за техническа поддръжка (например бързо показване на проблема с уеб връзка) и за реагиране на инциденти, търсене на проблеми в много клъстери едновременно. Неговото потомство се развива в момента (главно с усилията на самия автор).

Тъй като обслужваме много клъстери Kubernetes с различни размери, ние също се интересуваме от възможността да предоставим визуален инструмент на нашите клиенти. При избора на подходящ интерфейс за нас бяха ключови следните характеристики:

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

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

Ще започнем прегледа с класическия Kubernetes Dashboard, който е нашият стандарт. Тъй като светът не стои неподвижен (което означава, че Kubernetes има все повече и повече нови графични интерфейси), ще говорим и за текущите му алтернативи, като обобщим всичко в сравнителна таблица в края на статията.

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

1. Табло за управление на Kubernetes

  • Страница с документация;
  • хранилище (8000+ GitHub звезди);
  • Лиценз: Apache 2.0;
  • Накратко: „Универсален уеб интерфейс за Kubernetes клъстери. Той позволява на потребителите да управляват и отстраняват неизправности в приложения, работещи в клъстера, както и да управляват самия клъстер.

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

Това е панел с общо предназначение, обхванат от авторите на Kubernetes в официалната документация (но неразгръщаем по подразбиране). Предназначен е за нуждите на ежедневната работа и отстраняване на грешки на приложения в клъстер. У дома го използваме като пълноценен лек визуален инструмент, който ни позволява да предоставим на разработчиците необходимия и достатъчен достъп до клъстера. Неговите възможности покриват всичките им нужди, които възникват в процеса на използване на клъстера тази статия ние демонстрирахме някои функции на панела). Както може би се досещате, това означава, че той отговаря на всички наши изисквания, изброени по-горе.

Сред основните характеристики на Kubernetes Dashboard:

  • Навигация: прегледайте основните обекти на K8s в контекста на пространствата от имена.
  • Ако имате администраторски права, панелът показва възли, пространства от имена и постоянни томове. За възлите са налични статистически данни за използването на памет, процесор, разпределение на ресурси, показатели, състояние, събития и т.н.
  • Преглеждайте приложенията, внедрени в пространство от имена по техния тип (Deployment, StatefulSet и т.н.), връзки между тях (ReplicaSet, Horizontal Pod Autoscaler), общи и персонализирани статистики и информация.
  • Преглед на услуги и Ingresses, както и техните взаимоотношения с подове и крайни точки.
  • Преглед на файлови обекти и хранилища: постоянен том и иск за постоянен том.
  • Преглед и редактиране на ConfigMap и Secret.
  • Преглед на регистрационни файлове.
  • Достъп до командния ред в контейнери.

Съществен недостатък (но не за нас) е, че няма поддръжка за работа с няколко клъстера. Проектът се разработва активно от общността и поддържа съответните функции с пускането на нови версии и спецификации на Kubernetes API: най-новата версия на панела е v2.0.1 22 май 2020 г. – Тествано за съвместимост с Kubernetes 1.18.

2. обектив

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

Проектът е позициониран като цялостна интегрирана среда за разработка (IDE) за Kubernetes. Освен това той е оптимизиран да работи с много клъстери и голям брой подове, работещи в тях (тествано на 25 XNUMX подове).

Основни характеристики/възможности на Lens:

  • Самостоятелно приложение, което не изисква инсталиране на нищо вътре в клъстера (по-точно Prometheus ще трябва да получи всички показатели, но за това може да се използва и съществуваща инсталация). „Основната“ инсталация се извършва на персонален компютър, работещ под Linux, macOS или Windows.
  • Управление на няколко клъстера (поддържат се стотици клъстери).
  • Визуализация на състоянието на клъстера в реално време.
  • Графики за използване на ресурси и тенденции с история, базирана на вградения Prometheus.
  • Достъп до командния ред на контейнери и на клъстерни възли.
  • Пълна поддръжка за Kubernetes RBAC.

Текуща версия - 3.5.0 от 16 юни 2020 г. Първоначално създадена от Kontena, днес цялата интелектуална собственост е прехвърлена на специална организация Lakeland Labs, наречен „съюз на облачни маниаци и технолози“, който отговаря за „запазването и наличността на софтуера и продуктите с отворен код на Kontena“.

Lens е вторият най-популярен проект в GitHub от категорията GUI за Kubernetes, като „губи“ само самото табло за управление на Kubernets. Всички други решения с отворен код извън категорията CLI* са значително по-ниски по популярност.

* Вижте за K9s в бонусната част на ревюто.

3. Kubernetic

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

Това е патентовано приложение, което се инсталира на персонален компютър (поддържат се Linux, macOS, Windows). Неговите автори обещават пълна подмяна на помощната програма на командния ред, а с нея - няма нужда да запомняте команди и дори десетократно увеличение на скоростта.

Една от интересните характеристики на инструмента е вградената поддръжка за Helm диаграми, а един от недостатъците е липсата на показатели за ефективността на приложението.

Основни характеристики на Kubernetic:

  • Удобно показване на състоянието на клъстера. Един екран за преглед на всички свързани клъстерни обекти и техните зависимости; червен/зелен статус на готовност за всички обекти; режим на преглед на състоянието на клъстера с актуализации на състоянието в реално време.
  • Бутони за бързо действие за изтриване и мащабиране на приложението.
  • Поддръжка за работа с множество клъстери.
  • Лесна работа с пространства от имена.
  • Поддръжка за диаграми на Helm и хранилища на Helm (включително частни). Инсталиране и управление на графики в уеб интерфейса.

Текущата цена на продукта е еднократно плащане от 30 евро за използването му от един човек за произволен брой пространства от имена и клъстери.

4. Kubevious

  • Място;
  • представяне;
  • хранилище (~500 GitHub звезди);
  • Лиценз: Apache 2.0
  • Накратко: „Kubevious прави Kubernetes клъстерите, конфигурацията на приложенията и прегледа на състоянието безопасни и лесни за разбиране.“

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

Идеята на проекта е да се създаде инструмент, предназначен да анализира и отстранява грешки в конфигурации на приложения, разположени в клъстер. Авторите се съсредоточиха основно върху прилагането на тези функции, оставяйки по-общите неща за по-късно.

Основни характеристики и функции на Kubevious:

  • Визуализация на клъстери по начин, ориентиран към приложението: свързаните обекти в интерфейса са групирани, подреждайки се в йерархия.
  • Визуално показване на зависимостите в конфигурациите и каскадните последствия от техните промени.
  • Показване на грешки в конфигурацията на клъстера: злоупотреба с етикети, пропуснати портове и др. (Между другото, ако се интересувате от тази функция, обърнете внимание на Полярната звездаза които ние вече писа.)
  • В допълнение към предходната точка е налично откриване на потенциално опасни контейнери, т.е. имайки твърде много привилегии (атрибути hostPID, hostNetwork, hostIPC, монтиране docker.sock и т.н.).
  • Разширена система за търсене на клъстера (не само по имената на обектите, но и по техните свойства).
  • Инструменти за планиране на капацитета и оптимизиране на ресурсите.
  • Вградена "машина на времето" (възможност да видите предишни промени в конфигурацията на обектите).
  • Управление на RBAC с обобщена взаимосвързана таблица на роли, ролеви обвързвания, сервизни акаунти.
  • Работи само с един клъстер.

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

5. Kubewise

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

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

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

Основни характеристики на Kubewise:

  • Взаимодействие на интерфейса с най-често използваните обекти на Kubernetes: възли, пространства от имена и др.
  • Поддръжка за множество kubeconfig файлове за различни клъстери.
  • Терминал с възможност за задаване на променлива на средата KUBECONFIG.
  • Генерирайте персонализирани kubeconfig файлове за даденото пространство от имена.
  • Разширени функции за сигурност (RBAC, пароли, акаунти за услуги).

Засега проектът има само една версия - версия 1.1.0 от 26 ноември 2019 г. Освен това авторите планираха незабавно да го пуснат като отворен код, но поради вътрешни проблеми (несвързани с технически проблеми) не можаха да направят това. От май 2020 г. авторите работят върху следващото издание и трябва да започнат процеса на отваряне на кода по същото време.

6. OpenShift Console

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

Въпреки факта, че този уеб интерфейс е част от дистрибуцията OpenShift (той е инсталиран там с помощта на специален оператор), автори предвиден възможността да го инсталирате / използвате в нормални (ванилни) инсталации на Kubernetes.

OpenShift Console се разработва дълго време, така че включва много функции. Ще споменем основните от тях:

  • Подход на споделен интерфейс - две "гледни точки" на възможностите, налични в конзолата: за администратори и за разработчици. Режим гледна точка на разработчиците групира обекти във форма, която е по-разбираема за разработчиците (по приложения) и фокусира интерфейса върху решаването на такива типични задачи като внедряване на приложения, проследяване на състоянието на изграждане/разгръщане и дори редактиране на код чрез Eclipse Che.
  • Управление на натоварвания, мрежа, съхранение, права за достъп.
  • Логическо разделяне на работните натоварвания в проекти и приложения. В една от последните версии - v4.3 - се появи специален табло за управление на проекта, който показва обичайните данни (броя и състоянията на внедрявания, подове и т.н.; потребление на ресурси и други показатели) в срез на проект.
  • Актуализирано в реално време показване на състоянието на клъстера, промени (събития), настъпили в него; гледане на дневници.
  • Преглед на данните от мониторинга, базирани на Prometheus, Alertmanager и Grafana.
  • Управление на операторите, представени в операторски център.
  • Управление на компилации, които се изпълняват през Docker (от определено хранилище с Dockerfile), S2I или произволни външни помощни програми.

NB: Не добавихме други към сравнението Дистрибуции на Kubernetes (например много по-малко известните Кубесфера): въпреки факта, че GUI може да бъде много напреднал в тях, той обикновено идва като част от интегрирания стек на голяма система. Въпреки това, ако смятате, че няма достатъчно решения, които да функционират напълно в инсталацията на vanilla K8s, уведомете ни в коментарите.

премия

1. Portainer на Kubernetes в бета

Проект на екипа на Portainer, който разработи популярния едноименен интерфейс за работа с Docker. Тъй като проектът е в ранен етап на развитие (първата и единствена бета версия излезе 16 април 2020 г.), не сме оценили характеристиките му. Въпреки това може да представлява интерес за мнозина: ако става въпрос за вас, следете развитието.

2. IcePanel

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

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

Това младо настолно приложение има за цел да визуализира и управлява ресурсите на 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 предварително дефинирани теми и усъвършенствана система от клавишни комбинации и псевдоними на команди. Техният задълбочен подход не се ограничава до външния вид: функциите на k9s са приятно впечатляващи: управление на ресурсите, показване на състоянието на клъстера, показване на ресурси в йерархично представяне със зависимости, преглед на регистрационни файлове, поддръжка на RBAC, разширяване на възможностите чрез плъгини ... Всичко това се хареса към широката общност на K8s: броят Звездите на GitHub на проекта са почти толкова добри, колкото официалното табло за управление на Kubernetes!

4. Контролни панели за приложения

И в края на прегледа - отделна мини-категория. Той включва два уеб интерфейса, предназначени не за цялостно управление на клъстери на Kubernetes, а за управление на това, което е разположено в тях.

Както знаете, един от най-зрелите и широко разпространени инструменти за внедряване на сложни приложения в Kubernetes е Helm. През периода на неговото съществуване са натрупани много пакети (диаграми на 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 Документи.)

Заключение

GUI за Kubernetes са доста специфична и млада ниша. Въпреки това, той се развива много активно: вече е възможно да се намерят както доста зрели решения, така и много млади, които все още имат какво да растат. Те се грижат за различни приложения, предлагайки функции и външен вид, които да задоволят почти всеки вкус. Надяваме се, че този преглед ще ви помогне да изберете инструмента, който най-добре отговаря на текущите ви нужди.

PS

Благодаря ти квапс за данните на OpenShift Console за таблицата за сравнение!

Прочетете също в нашия блог:

Източник: www.habr.com

Добавяне на нов коментар