Kubernetes үчүн GUIлерге сереп салуу

Kubernetes үчүн GUIлерге сереп салуу

Система менен толук иштөө үчүн командалык саптын утилиталарын билүү маанилүү: Kubernetes учурда бул kubectl. Башка жагынан алганда, жакшы иштелип чыккан, жакшы ойлонулган GUI аткара алатокадимки милдеттердин көбү жана иштеп жаткан системалар кошумча мүмкүнчүлүктөрдү ачат.

Өткөн жылы котормосун чыгарганбыз желе UI кыскача сереп Kubernetes үчүн, веб-интерфейстин жарыясына арналган Kubernetes WebView. Ошол макаланын автору жана утилитанын өзү, Zalando компаниясынан Хеннинг Джейкобс жаңы өнүмдү "Интернет үчүн кубектл" катары жайгаштырган. Ал техникалык колдоо форматында өз ара аракеттенүү (мисалы, веб-шилтеме менен көйгөйдү тез көрсөтүү) жана инциденттерге жооп берүү, бир эле учурда көптөгөн кластерлерде көйгөйлөрдү издөө үчүн ыңгайлуу мүмкүнчүлүктөрү бар куралды түзгүсү келген. Анын мээси дагы эле иштелип жатат (негизинен автордун өзү тарабынан).

Ар кандай өлчөмдөгү көптөгөн Kubernetes кластерлерин тейлеп, биз кардарларды визуалдык иш куралы менен камсыз кылуу мүмкүнчүлүгүнө кызыкдарбыз. Ылайыктуу интерфейсти тандоодо биз үчүн төмөнкү функциялар негизги болгон:

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

Башка функциялар, мисалы, керектелүүчү ресурстарды көрүү (поддор/контроллер/ат мейкиндиктери боюнча), K8s примитивдерин түзүү/түзөтүү биздин иш процессибизге тиешелүү эмес.

Биз карап чыгууну биздин стандарт катары кабыл алынган классикалык Kubernetes Dashboard менен баштайбыз. Дүйнө бир ордунда турбагандыктан (бул Kubernetesте жаңы GUIлер пайда болуп жатканын билдирет), биз макаланын аягындагы салыштырма таблицада бардыгын жалпылап, анын учурдагы альтернативалары жөнүндө сүйлөшөбүз.

NB: Карап чыгууда биз буга чейин каралган чечимдерди кайталабайбыз акыркы макала, бирок - толуктугу үчүн - андан тиешелүү параметрлер (K8Dash, Octant, Kubernetes Web View) жыйынтыктоочу таблицага киргизилген.

1. Kubernetes башкаруу тактасы

  • Документтер барагы;
  • репозиторий (8000+ GitHub жылдыздары);
  • Лицензия: Apache 2.0;
  • Кыскача айтканда: “Kubernetes кластерлери үчүн универсалдуу веб-интерфейс. Бул колдонуучуларга кластерде иштеген тиркемелерди башкарууга жана көйгөйлөрдү чечүүгө, ошондой эле кластердин өзүн башкарууга мүмкүндүк берет».

Kubernetes үчүн GUIлерге сереп салуу

Бул расмий документтерде Kubernetes авторлору тарабынан камтылган жалпы максаттагы панель (бирок жайгаштырылган эмес демейки). Ал күнүмдүк иштөө жана кластердеги тиркемелерди оңдоо муктаждыктары үчүн арналган. Биз бул жерде аны иштеп чыгуучуларга кластерге керектүү жана жетиштүү мүмкүнчүлүктөрдү берүүгө мүмкүндүк берген толук кандуу жеңил визуалдык курал катары колдонобуз. Анын мүмкүнчүлүктөрү кластерди колдонуу процессинде пайда болгон бардык муктаждыктарын камтыйт (-жылы бул макалада панелдин кээ бир өзгөчөлүктөрүн көрсөттүк). Сиз жонокой эле болжолдой тургандай, бул биздин жогоруда саналган бардык талаптарга жооп берет дегенди билдирет.

Kubernetes Dashboard негизги өзгөчөлүктөрүнүн арасында:

  • Навигация: негизги K8 объекттерин аттар мейкиндиги боюнча көрүңүз.
  • Эгер сизде администратор укуктары бар болсо, панель түйүндөрдү, аттар мейкиндиктерин жана Туруктуу томдорду көрсөтөт. Түйүндөр үчүн эстутум жана процессорду колдонуу, ресурстарды бөлүштүрүү, метрика, статус, окуялар жана башкалар боюнча статистика жеткиликтүү.
  • Аттар мейкиндигинде орнотулган тиркемелерди түрү (Deployment, StatefulSet ж.б.), алардын ортосундагы байланыштар (ReplicaSet, Horizontal Pod Autoscaler), жалпы жана жекелештирилген статистика жана маалымат боюнча көрүңүз.
  • Кызматтарды жана киришти, ошондой эле алардын подколор жана акыркы чекиттер менен байланыштарын көрүңүз.
  • Файл объектилерин жана сактагычтарын көрүү: Туруктуу көлөм жана Туруктуу көлөмгө доомат.
  • ConfigMap жана Сырды көрүү жана түзөтүү.
  • Журналдарды көрүү.
  • Контейнерлердеги буйрук сабына кирүү.

Маанилүү кемчилик (бирок биз үчүн эмес) көп кластердик иштөөнү колдоонун жоктугунда. Долбоор коомчулук тарабынан жигердүү иштелип чыккан жана Kubernetes API'нин жаңы версияларын жана спецификацияларын чыгаруу менен учурдагы функцияларды колдойт: панелдин акыркы версиясы v2.0.1 22-май, 2020-жыл - Kubernetes 1.18 менен шайкештиги текшерилген.

2. Линза

Kubernetes үчүн GUIлерге сереп салуу

Долбоор Kubernetes үчүн толук кандуу интеграцияланган өнүктүрүү чөйрөсү (IDE) катары жайгашкан. Мындан тышкары, ал көптөгөн кластерлер жана аларда иштеген көп сандагы поддондор менен иштөө үчүн оптималдаштырылган (25 миң подставада сыналган).

Линзанын негизги өзгөчөлүктөрү/мүмкүнчүлүктөрү:

  • Кластердин ичинде эч нерсе орнотууну талап кылбаган өз алдынча тиркеме (тагыраак айтканда, бардык көрсөткүчтөрдү алуу үчүн Prometheus талап кылынат, бирок бул үчүн учурдагы орнотууну да колдонсоңуз болот). "Негизги" орнотуу Linux, macOS же Windows менен иштеген персоналдык компьютерде аткарылат.
  • Көп кластердик башкаруу (жүздөгөн кластерлер колдоого алынат).
  • Реалдуу убакытта кластердин абалын визуализациялоо.
  • Прометейге негизделген тарыхы бар ресурстарды колдонуу графиктери жана тенденциялары.
  • Контейнерлердин жана кластер түйүндөрүнүн буйрук сабына кирүү.
  • Kubernetes RBAC үчүн толук колдоо.

Учурдагы чыгарылыш - 3.5.0 16-жылдын 2020-июнунда. Баштапкы версиясы Контенада түзүлгөн жана бүгүнкү күндө бардык интеллектуалдык менчик атайын уюмга өткөрүлүп берилди. Lakend Labs, "Ачык баштапкы программалык камсыздоону жана Kontena өнүмдөрүн сактоо жана жеткиликтүү кылуу" үчүн жооптуу болгон "булуттагы жергиликтүү геэктердин жана технологдордун бирикмеси" деп аталат.

Lens GitHubдагы Kubernets үчүн GUI категориясындагы экинчи эң популярдуу долбоор, Kubernets Dashboard өзүнөн гана артта. CLI* категориясына кирбеген бардык башка ачык булак чечимдери популярдуулугу жагынан кыйла төмөн.

*Сыноонун бонустук бөлүгүндө K9 жөнүндө караңыз.

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

Kubernetes үчүн GUIлерге сереп салуу

Бул жеке компьютерге орнотулган проприетардык тиркеме (Linux, macOS, Windows колдоого алынат). Анын авторлору командалык саптын утилитасын толук алмаштырууну убада кылышат жана аны менен бирге, буйруктарды эстеп калуунун кереги жок, ал тургай иштөө ылдамдыгы он эсеге көбөйөт.

Куралдын кызыктуу өзгөчөлүктөрүнүн бири - Helm диаграммалары үчүн орнотулган колдоо, бирок кемчиликтердин бири - бул колдонмонун иштөө көрсөткүчтөрүнүн жоктугу.

Kuberneticтин негизги өзгөчөлүктөрү:

  • Кластердин абалынын ыңгайлуу дисплейи. Бардык тиешелүү кластер объектилерин жана алардын көз карандылыктарын көрүү үчүн бир экран; бардык объекттер үчүн кызыл/жашыл даяр абалы; реалдуу убакытта статус жаңыртуулары менен кластердин статусун көрүү режими.
  • Колдонмону жок кылуу жана масштабдоо үчүн ыкчам аракет баскычтары.
  • Көп кластердик иштөөнү колдоо.
  • Ат мейкиндиктери менен оңой иштөө.
  • Helm диаграммаларын жана Helm репозиторийлерин колдоо (анын ичинде жеке). Веб интерфейсинде диаграммаларды орнотуу жана башкаруу.

Продукциянын учурдагы баасы - бул бир адам тарабынан каалаган сандагы аттар жана кластерлер үчүн пайдалануу үчүн 30 евро өлчөмүндөгү бир жолку төлөм.

4. Kubevious

  • сайты;
  • көрсөтүү;
  • репозиторий (~500 GitHub жылдыздары);
  • Лицензия: Apache 2.0
  • Кыскача айтканда: "Kubevious Kubernetes кластерлерин, колдонмо конфигурациясын жана колдонмонун статусун коопсуз жана түшүнүктүү кылат."

Kubernetes үчүн GUIлерге сереп салуу

Долбоордун идеясы кластерде орнотулган тиркемелердин конфигурацияларын талдоо жана мүчүлүштүктөрдү оңдоо үчүн арналган куралды түзүү болуп саналат. Авторлор биринчи кезекте бул өзгөчөлүктөрдү ишке ашырууга басым жасап, жалпы нерселерди кийинчерээк калтырышкан.

Kubevious негизги өзгөчөлүктөрү жана функциялары:

  • Кластерди колдонмо борборлоштурулган жол менен элестетиңиз: интерфейстеги өз ара байланышкан объекттер иерархияга топтоштурулган.
  • Конфигурациялардагы көз карандылыктарды жана алардын өзгөрүүлөрүнүн каскаддык кесепеттерин визуалдык түрдө көрсөтүү.
  • Кластердин конфигурациясынын каталарын көрсөтөт: энбелгилердин туура эмес колдонулушу, өткөрүлбөй калган порттор ж.б.у.с. (Баса, бул өзгөчөлүк сизди кызыктырса, көңүл буруңуз Polarisбул жөнүндө биз буга чейин жазылган.)
  • Мурунку пункттан тышкары, потенциалдуу коркунучтуу контейнерлерди аныктоо жеткиликтүү, б.а. өтө көп артыкчылыктарга ээ болуу (атрибуттар hostPID, hostNetwork, hostIPC, монтаждоо docker.sock жана башкалар).
  • Өркүндөтүлгөн кластердик издөө системасы (объект аттары боюнча гана эмес, ошондой эле алардын касиеттери боюнча).
  • Дараметти пландаштыруу жана ресурстарды оптималдаштыруу үчүн куралдар.
  • Камтылган "убакыт машинасы" (объекттердин конфигурациясында мурда болгон өзгөрүүлөрдү көрүү мүмкүнчүлүгү).
  • Roles, RoleBindings, ServiceAccounts'дун кыскача өз ара байланышкан таблицасын колдонуу менен RBACти башкаруу.
  • Бир кластер менен гана иштейт.

Долбоор абдан кыска тарыхка ээ (биринчи релиз 11-жылдын 2020-февралында болгон) жана өнүгүүнүн турукташтыруу же басаңдоо мезгили болгон окшойт. Мурунку версиялар тез-тез чыгарылып турган болсо, анда акыркы версия (v0.5 15-жылдын 2020-апрелинде) өнүгүүнүн баштапкы темпинен артта калды. Бул, кыязы, салым кошуучулардын аздыгына байланыштуу болсо керек: репозиторийдин тарыхында алардын 4ү гана бар жана бардык иш жүзүндөгү иштерди бир адам аткарат.

5. Kubewise

  • Долбоор бети;
  • Лицензия: менчик (Ачык булак болуп калат);
  • Кыскача айтканда: "Kubernetes үчүн жөнөкөй, көп платформалуу кардар."

Kubernetes үчүн GUIлерге сереп салуу

VMware жаңы продуктусу, алгач ички хакатондун бөлүгү катары түзүлгөн (2019-жылдын июнь айында). Жеке компьютерге орнотулган, негизинде иштейт Electron (Linux, macOS жана Windows тарабынан колдоого алынат) жана kubectl v1.14.0 же кийинки версиясын талап кылат.

Kubewise негизги өзгөчөлүктөрү:

  • Эң көп колдонулган Kubernetes объекттери менен интерфейстин өз ара аракеттенүүсү: түйүндөр, аттар мейкиндиктери ж.б.
  • Ар кандай кластерлер үчүн бир нече kubeconfig файлдарын колдоо.
  • Айлана-чөйрө өзгөрмөсүн орнотуу мүмкүнчүлүгү бар терминал KUBECONFIG.
  • Берилген аттар мейкиндиги үчүн ыңгайлаштырылган kubeconfig файлдары түзүлүүдө.
  • Өркүндөтүлгөн коопсуздук функциялары (RBAC, сырсөздөр, кызмат эсептери).

Азырынча долбоордун бир гана релиз - версиясы бар 1.1.0 26-жылдын 2019-ноябрында. Анын үстүнө, авторлор аны дароо Open Source катары чыгарууну пландаштырышкан, бирок ички көйгөйлөрдөн улам (техникалык маселелерге байланыштуу эмес) алар муну жасай алышкан эмес. 2020-жылдын май айына карата авторлор кийинки релиздин үстүндө иштеп жатышат жана ошол эле учурда ачык булак процессин башташы керек.

6. OpenShift консолу

Kubernetes үчүн GUIлерге сереп салуу

Бул веб-интерфейс OpenShift дистрибуциясынын бир бөлүгү экендигине карабастан (ал жерде ал орнотулган атайын оператор), авторлор камсыз кылышкан аны кадимки (ваниль) Kubernetes орнотууларында орнотуу/колдонуу мүмкүнчүлүгү.

OpenShift Console көптөн бери өнүгүп келе жатат, ошондуктан ал көптөгөн функцияларды камтыган. Алардын негизгилерин айта кетели:

  • Интерфейске жалпы мамиле - Консолдо бар мүмкүнчүлүктөрдүн эки "перспективасы": администраторлор жана иштеп чыгуучулар үчүн. Mode Иштеп чыгуучунун көз карашы объекттерди иштеп чыгуучуларга түшүнүктүү формада топтойт (тиркеме боюнча) жана интерфейсти тиркемелерди жайылтуу, куруу/жайгаштыруу статусуна көз салуу, ал тургай Eclipse Che аркылуу кодду түзөтүү сыяктуу типтүү милдеттерди чечүүгө багытталган.
  • Жумуш жүктөмдөрүн, тармакты, сактагычты, кирүү укуктарын башкарыңыз.
  • Долбоор жана колдонмо жүктөмдөрү үчүн логикалык бөлүү. Акыркы релиздердин биринде - v4.3 - пайда атайын Долбоор тактасы, долбоорлордун кесилишинде кадимки маалыматтарды (жайгаштыруулардын, подкасттардын жана башкалардын саны жана абалы; ресурстарды керектөө жана башка көрсөткүчтөрдү) көрсөтүү.
  • Кластердин абалын жана андагы болгон өзгөрүүлөрдү (окуяларды) реалдуу убакыт режиминде жаңыртылган көрсөтүү; журналдарды көрүү.
  • Prometheus, Alertmanager жана Grafana негизинде мониторинг маалыматтарын көрүү.
  • Өкүлчүлүктү башкаруучу операторлор OperatorHub.
  • Docker аркылуу иштеген курулуштарды башкаруу (Dockerfile менен көрсөтүлгөн репозиторийден) S2I же ыктыярдуу тышкы коммуналдык кызматтар.

NB: Салыштырууга башкаларды кошкон жокпуз Kubernetes бөлүштүрүү (мисалы, анча белгилүү эмес Kubesphere): алардагы графикалык интерфейс абдан өнүккөн болушу мүмкүн экендигине карабастан, ал көбүнчө чоң системанын интеграцияланган стекинин бир бөлүгү катары келет. Бирок, эгер сиз K8s Vanilla орнотууда толук иштеген кээ бир чечимдер жок деп ойлосоңуз, комментарийлерде бизге кабарлаңыз.

премия

1. Бета версиясында Kubernetes боюнча портинер

Docker менен иштөө үчүн бирдей аталыштагы популярдуу интерфейсти иштеп чыккан Porttainer командасынын долбоору. Долбоор иштеп чыгуунун алгачкы баскычында болгондуктан (биринчи жана жалгыз бета версиясы чыккан 16-апрель, 2020-жыл), биз анын өзгөчөлүктөрүнө баа берген жокпуз. Бирок, бул көптөрдү кызыктырышы мүмкүн: эгер бул сизге окшош болсо, өнүгүүнү байкаңыз.

2. IcePanel

  • сайты;
  • Лицензия: менчик;
  • Кыскача айтканда: "Visual Kubernetes редактору."

Kubernetes үчүн GUIлерге сереп салуу

Бул жаш рабочий колдонмо жөнөкөй сүйрөп жана түшүрүү интерфейси менен реалдуу убакыт режиминде Kubernetes ресурстарын визуализациялоого жана башкарууга багытталган. Учурда колдоого алынган объекттер: Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap жана Secret. Алар жакында Helm колдоосун кошууга убада беришет. Негизги кемчиликтери код жабык (ал күтүлөт ачуу "кандайдыр бир түрдө") жана Linux колдоосунун жоктугу (азыр Windows жана macOS үчүн гана версиялары бар, бирок бул дагы убакыт маселеси).

3.k9s

  • сайты;
  • белгилөө;
  • репозиторий (~7700 GitHub жылдыздары);
  • Лицензия: Apache 2.0;
  • Кыскача айтканда: "Кластериңизди стилде башкарууга мүмкүндүк берген Kubernetes үчүн консолдук интерфейс."

Kubernetes үчүн GUIлерге сереп салуу

Утилита консолдук GUI сунуштагандыктан, кароонун бонустук бөлүгүнө гана киргизилген. Бирок, авторлор терминалдан эң көп мүмкүнчүлүктөрдү кысып, ыңгайлуу интерфейсти гана эмес, ошондой эле алдын ала аныкталган 6 теманы, ошондой эле командалар үчүн клавиатуранын жарлыктарынын жана лакап аттарынын өнүккөн тутумун сунушташты. Алардын кылдат мамилеси сырткы көрүнүш менен эле чектелбеди: k9дардын мүмкүнчүлүктөрү жагымдуу таасир калтырат: ресурстарды башкаруу, кластердин абалын көрсөтүү, ресурстарды көз карандылык менен иерархиялык көрүнүштө көрсөтүү, журналдарды көрүү, RBACти колдоо, плагиндер аркылуу мүмкүнчүлүктөрдү кеңейтүү... Баары бул кеңири K8 коомчулугуна жаккан: саны GitHub жылдыз долбоору расмий Kubernetes Dashboard сыяктуу дээрлик жакшы!

4. Колдонмолорду башкаруу панелдери

Ал эми кароонун аягында - өзүнчө мини-категория. Ал Kubernetes кластерлерин комплекстүү башкаруу үчүн эмес, аларда орнотулган нерселерди башкаруу үчүн иштелип чыккан эки веб интерфейсти камтыйт.

Белгилүү болгондой, Kubernetesте татаал тиркемелерди жайылтуу үчүн эң жетилген жана кеңири таралган куралдардын бири - Helm. Анын пайда болгон мезгилинин ичинде көптөгөн пакеттер (Helm диаграммалары) оңой жайылтуу үчүн топтолгон. көптөгөн популярдуу колдонмолор. Ошондуктан, диаграммалардын жашоо циклин башкарууга жардам берүү үчүн ылайыктуу визуалдык куралдар пайда болушу абдан логикалык.

4.1. Монокуляр

  • репозиторий (1300+ GitHub жылдыздары);
  • Лицензия: Apache 2.0;
  • Кыскача айтканда: "Бир нече репозиторийлерден Helm диаграммаларын издөө жана табуу үчүн веб-тиркеме. Helm хаб долбоору үчүн негиз катары кызмат кылат."

Kubernetes үчүн GUIлерге сереп салуу

Helm авторлорунун бул иштеп чыгуусу Kubernetesте орнотулган жана берилген тапшырманы аткарып, бир кластердин ичинде иштейт. Бирок, учурда долбоор такыр өнүкпөй жатат. Анын негизги максаты Helm Hub бар экенин колдоо болуп саналат. Башка муктаждыктар үчүн, авторлор Kubeapps (төмөндө караңыз) же Red Hat Automation Broker (OpenShiftтин бир бөлүгү, бирок ошондой эле иштелип чыкпай калган) сунуштайт.

4.2. Kubeapps

  • сайты;
  • көрсөтүү;
  • репозиторий (~2100 GitHub жылдыздары);
  • Лицензия: Apache 2.0
  • Кыскача айтканда: "Сиздин Kubernetes үчүн колдонмонун башкаруу тактасы."

Kubernetes үчүн GUIлерге сереп салуу

Bitnami продуктусу, ал Kubernetes кластеринде орнотулган, бирок жеке репозиторийлер менен иштөөгө багытталган алгачкы багыты менен Monocular менен айырмаланат.

Kubeapps'тин негизги өзгөчөлүктөрү жана функциялары:

  • Репозиторийлерден Helm диаграммаларын көрүү жана орнотуу.
  • Кластерде орнотулган Helm негизиндеги колдонмолорду текшериңиз, жаңыртыңыз жана алып салыңыз.
  • Ыңгайлаштырылган жана жеке диаграмма репозиторийлери менен иштөөнү колдоо (ChartMuseum жана JFrog Artifactory колдойт).
  • Тышкы кызматтарды көрүү жана иштөө - Кызмат Каталогунан жана Кызмат Брокерлеринен.
  • Кызмат каталогун бириктирүү механизмин колдонуу менен орнотулган тиркемелерди жарыялоо.
  • RBAC аркылуу аутентификацияны жана укуктарды бөлүүнү колдоо.

Жыйынтыктоочу таблица

Төмөндө биз салыштырууну жеңилдетүү үчүн учурдагы визуалдык интерфейстердин негизги мүмкүнчүлүктөрүн жалпылоого жана бириктирүүгө аракет кылган жыйынды таблица болуп саналат:

Kubernetes үчүн GUIлерге сереп салуу
(Табылдын онлайн версиясы Google Документтерде жеткиликтүү.)

жыйынтыктоо

Kubernetes үчүн графикалык интерфейстер - бул өзгөчө жана жаш ниш. Бирок, ал абдан жигердүү өнүгүп жатат: сиз азыртадан эле жетилген чечимдерди да, дагы деле өсө турган абдан жаш чечимдерди таба аласыз. Алар дээрлик бардык табитке ылайыктуу функцияларды жана көрүнүштөрдү сунуштап, ар кандай колдонмолорго жооп беришет. Бул карап чыгуу сиздин учурдагы муктаждыктарыңызга эң ылайыктуу куралды тандоого жардам берет деп үмүттөнөбүз.

PS

Рахмат кваптар салыштыруу таблицасы үчүн OpenShift Console маалыматтары үчүн!

Биздин блогдон дагы окуңуз:

Source: www.habr.com

Комментарий кошуу