Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Шарҳ. тарҷума.: Муаллифи маводи аслӣ Ҳеннинг Ҷейкобс аз Заландо мебошад. Вай интерфейси нави вебро барои кор бо Kubernetes сохт, ки ҳамчун "kubectl барои веб" ҷойгир шудааст. Чаро як лоиҳаи нави Open Source пайдо шуд ва кадом меъёрҳо бо ҳалли мавҷуда ҷавобгӯ набуданд - мақолаи ӯро хонед.

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Дар ин паём, ман интерфейсҳои гуногуни манбаи кушодаи Kubernetes-ро баррасӣ мекунам, талаботҳои худро барои UI универсалӣ баён мекунам ва шарҳ медиҳам, ки чаро ман таҳия кардам Kubernetes WebView — интерфейсе, ки барои осонтар кардани дастгирӣ ва бартараф кардани мушкилот дар як вақт якчанд кластерҳо пешбинӣ шудааст.

Ҳолатҳоро истифода баред

Дар Zalando мо ба шумораи зиёди корбарони Kubernetes (900+) ва кластерҳо (100+) хизмат мерасонем. Якчанд ҳолатҳои маъмули истифода мавҷуданд, ки аз як абзори веби махсус манфиат мегиранд:

  1. муошират бо ҳамкорон барои дастгирӣ;
  2. вокуниш ба ҳодисаҳо ва таҳқиқи сабабҳои онҳо.

таъмин

Дар таҷрибаи ман, алоқаҳои дастгирӣ аксар вақт чунинанд:

— Кӯмак, хидмати мо XYZ дастнорас аст!
— Хангоми баромад кардан чй мебинед kubectl describe ingress ...?

Ё чизи шабеҳ барои CRD:

— Ман бо хадамоти шиносоӣ мушкиле дорам...
— Фармон чй мебарорад? kubectl describe platformcredentialsset ...?

Чунин муошират одатан барои ворид кардани вариантҳои гуногуни фармон ба амал меояд kubectl барои муайян кардани мушкилот. Дар натиҷа, ҳарду ҷониби сӯҳбат маҷбур мешаванд, ки пайваста байни терминал ва веб чат гузаранд ва илова бар ин, онҳо вазъияти дигарро мушоҳида мекунанд.

Аз ин рӯ, ман мехоҳам, ки веби Kubernetes ба инҳо иҷозат диҳад:

  • истифодабарандагон метавонанд мубодилаи пайвандҳо ва ҳамон чизро риоя кунед;
  • кумак мекард аз хатогиҳои инсонӣ дурӣ ҷӯед дар дастгирӣ: масалан, ворид шудан ба кластери нодуруст дар сатри фармон, хатогиҳо дар фармонҳои CLI ва ғайра;
  • имкон медод назари худро эҷод кунед ба ҳамкорон фиристодан, яъне сутунҳои тегҳоро илова кардан, дар як саҳифа намудҳои зиёди захираҳоро нишон додан;
  • Идеалӣ, ин воситаи веб бояд ба шумо имкон диҳад, ки танзим кунед Пайвандҳои "амиқи" ба бахшҳои мушаххаси YAML (масалан, нишон додани параметри нодуруст, ки боиси нокомиҳо мегардад).

Вокуниш ба ҳодисаҳо ва таҳлил

Вокуниш ба ҳодисаҳои инфрасохторӣ огоҳии вазъият, қобилияти арзёбии таъсир ва ҷустуҷӯи намунаҳоро дар кластерҳо талаб мекунад. Баъзе мисолҳои ҳаёти воқеӣ:

  • Хизматрасонии истеҳсолии муҳим мушкилот дорад ва шумо бояд ҳама захираҳои Kubernetes аз рӯи ном дар ҳама кластерҳо пайдо кунедбартараф кардани мушкилот;
  • гиреҳҳо оғоз ба афтод ҳангоми миқёс ва ба шумо лозим аст дар ҳама кластерҳо ҳамаи подкҳоро бо ҳолати "Интизорӣ" пайдо кунедбаҳо додан ба доираи мушкилот;
  • корбарони инфиродӣ дар бораи мушкилот бо DaemonSet дар ҳама кластерҳо гузориш медиҳанд ва бояд фаҳманд Оё мушкилот пурра аст?.

Ҳалли стандартии ман дар ин гуна ҳолатҳо як чиз аст for i in $clusters; do kubectl ...; done. Аён аст, ки асбобе таҳия кардан мумкин аст, ки қобилиятҳои шабеҳро таъмин мекунад.

Интерфейсҳои веби мавҷудаи Kubernetes

Ҷаҳони кушодаи интерфейсҳои веб ба Kubernetes он қадар калон нест*, аз ин рӯ ман кӯшиш кардам, ки маълумоти бештарро бо истифода аз Twitter:

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

* Шарҳи ман дар бораи шумораи маҳдуди веб-интерфейсҳо барои Kubernetes: хидматҳои абрӣ ва фурӯшандагони Kubernetes одатан фронтҳои худро пешниҳод мекунанд, аз ин рӯ бозори "хуб" UI ройгони Kubernetes нисбатан хурд аст.

Тавассути твит ман дар бораи он фаҳмидам K8Dash, Кубернатор и Октант. Биёед ба онҳо ва дигар қарорҳои мавҷудаи кушодаасос назар андозем, биёед бифаҳмем, ки онҳо чӣ гунаанд.

K8Dash

"K8Dash соддатарин роҳи идоракунии кластери Kubernetes аст."

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

K8Dash Ба назар хуб ва зуд ҳис мекунад, аммо барои ҳолатҳои дар боло номбаршуда як қатор нуқсонҳо дорад:

  • Танҳо дар ҳудуди як кластер кор мекунад.
  • Мураттабсозӣ ва филтркунӣ имконпазир аст, аммо истинодҳои доимӣ надоранд.
  • Барои таърифҳои захираҳои фармоишӣ (CRDs) дастгирӣ нест.

Кубернатор

"Кубернатор як интерфейси алтернативӣ барои Kubernetes аст. Баръакси панели сатҳи баланди Kubernetes, он назорати сатҳи паст ва дидани аълоро дар ҳама объектҳои кластер бо қобилияти сохтани объектҳои нав, таҳрир кардани онҳо ва ҳалли низоъҳо таъмин мекунад. Он як барномаи комилан муштарӣ буда (ба монанди kubectl), он ба ғайр аз худи сервери API Kubernetes ягон пуштибониро талаб намекунад ва инчунин қоидаҳои дастрасии кластерро эҳтиром мекунад."

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Ин тавсифи хеле дақиқ аст Кубернатор. Мутаассифона, он баъзе хусусиятҳоро надорад:

  • Танҳо ба як кластер хизмат мерасонад.
  • Ҳолати намоиши рӯйхат вуҷуд надорад (яъне шумо наметавонед ҳамаи подкҳоро бо ҳолати "Интизорӣ" намоиш диҳед).

Панели идоракунии Kubernetes

"Тантаи Kubernetes як интерфейси универсалии веб барои кластерҳои Kubernetes аст. Он ба корбарон имкон медиҳад, ки барномаҳоеро, ки дар кластер кор мекунанд, идора ва бартараф кунанд ва инчунин худи кластерро идора кунанд.”

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Мутаассифона, Панели идоракунии Kubernetes аслан дар дастгирӣ ва вокуниш ба ҳодисаҳои ман кӯмак намекунад, зеро он:

  • истинодҳои доимӣ вуҷуд надоранд, масалан, вақте ки ман захираҳоро филтр мекунам ё тартиби навъро тағир медиҳам;
  • роҳи осони филтр аз рӯи вазъ вуҷуд надорад - масалан, дидани ҳамаи подкӯҳҳо бо ҳолати "Интизорӣ";
  • танҳо як кластер дастгирӣ карда мешавад;
  • CRD-ҳо дастгирӣ намешаванд (ин хусусият дар ҳоли таҳия аст);
  • ҳеҷ сутуни фармоишӣ (масалан сутунҳое, ки аз рӯи намуд нишон дода шудаанд kubectl -L).

Намоиши амалиётии Kubernetes (kube-ops-view)

"Назоратчии панели система барои фазои кластерии K8s."

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

У Намоиши амалиётии Kubernetes Муносибати комилан дигар: ин асбоб танҳо гиреҳҳои кластерӣ ва подкҳоро бо истифода аз WebGL бе ягон ҷузъиёти объекти матнӣ нишон медиҳад. Ин барои шарҳи фаврии саломатии кластер хеле хуб аст (оё паҳлӯҳо меафтанд?)*, аммо он барои ҳолатҳои истифодаи дастгирӣ ва вокуниш ба ҳодисаҳои дар боло тавсифшуда мувофиқ нест.

* Шарҳ. тарҷума.: Ба ин маъно, шумо низ шояд ба плагини мо таваҷҷӯҳ дошта бошед графана-статусмап, ки мо дар бораи он муфассалтар сухан ронд ин мақола.

Гузориши захираҳои Kubernetes (kube-resource-report)

"Дархостҳои манбаи кластерии pod ва Kubernetes-ро ҷамъ кунед, онҳоро бо истеъмоли захираҳо муқоиса кунед ва HTML-и статикиро тавлид кунед."

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Гузориши захираҳои Kubernetes Ҳисоботи статикии HTML дар бораи истифодаи захираҳо ва тақсимоти хароҷот дар байни гурӯҳҳо/барномаҳо дар кластерҳо тавлид мекунад. Ҳисобот барои дастгирӣ ва вокуниш ба ҳодиса то андозае муфид аст, зеро он ба шумо имкон медиҳад, ки кластереро, ки барнома ҷойгир карда шудааст, зуд пайдо кунед.

Шарҳ. тарҷума.: Хидмат ва асбоб инчунин метавонад барои дидани маълумот дар бораи тақсимоти захираҳо ва хароҷоти онҳо аз провайдерҳои абрӣ муфид бошад Кубекост, ки мо онро дида мебароем ба наздикй нашр шуд.

Октант

"Платформаи васеъшавандаи веб барои таҳиягарон барои фароҳам овардани фаҳмиши бештари мураккабии кластерҳои Kubernetes тарҳрезӣ шудааст."

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Октант, ки аз ҷониби VMware сохта шудааст, маҳсулоти навест, ки ман дар бораи он нисбатан ба наздикӣ фаҳмидам. Бо ёрии он, омӯхтани кластер дар мошини маҳаллӣ қулай аст (ҳатто визуализатсия вуҷуд дорад), аммо он танҳо ба андозаи маҳдуд масъалаҳои дастгирӣ ва вокуниш ба ҳодисаҳоро ҳал мекунад. Камбудиҳои Octant:

  • Ҷустуҷӯи кластер нест.
  • Танҳо дар мошини маҳаллӣ кор мекунад (ба кластер ҷойгир намешавад).
  • Объектҳоро ҷудо кардан/филтр кардан мумкин нест (танҳо интихобкунандаи тамғакоғаз дастгирӣ мешавад).
  • Шумо сутунҳои фармоиширо муайян карда наметавонед.
  • Шумо наметавонед объектҳоро аз рӯи фазои ном номбар кунед.

Ман инчунин бо устувории Октант бо кластерҳои Заландо мушкилот доштам: дар баъзе CRDҳо афтода буд.

Муаррифии Kubernetes Web View

"kubectl барои веб".

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)

Пас аз таҳлили имконоти дастраси интерфейси Kubernetes, ман қарор додам, ки интерфейси нав эҷод кунам: Kubernetes WebView. Охир, дар хакикат ба ман факат тамоми кувва лозим аст kubectl дар интернет, аз ҷумла:

  • мавҷудияти ҳама (танҳо барои хондан) амалиётҳое, ки корбарон барои онҳо истифода бурдани kubectlро афзалтар медонанд;
  • ҳама URL-ҳо бояд доимӣ бошанд ва саҳифаро дар шакли аслии худ намояндагӣ кунанд, то ҳамкорон онҳоро мубодила кунанд ва дар дигар абзорҳо истифода баранд;
  • дастгирии ҳама объектҳои Kubernetes, ки ба шумо имкон медиҳад, ки ҳама гуна мушкилотро ҳал кунед;
  • Рӯйхати захираҳо бояд барои кори минбаъда зеркашӣ карда шаванд (дар ҷадвалҳои электронӣ, асбобҳои CLI ба монанди grep) ва нигоҳдорӣ (масалан, барои пас аз марг);
  • дастгирии интихоби захираҳо аз рӯи нишона (монанди kubectl get .. -l);
  • қобилияти эҷоди рӯйхати якҷояи намудҳои гуногуни захираҳо (монанди kubectl get all) барои ба даст овардани тасвири умумии амалиётӣ дар байни ҳамкорон (масалан, ҳангоми вокуниш ба ҳодиса);
  • қобилияти илова кардани истинодҳои амиқи интеллектуалии фармоишӣ ба дигар асбобҳо, аз қабили панелҳои идоракунӣ, сабткунандагон, феҳристи барномаҳо ва ғайра. мусоидат ба ҳалли мушкилот/ҳал кардани хатогиҳо ва вокуниш ба ҳодисаҳо;
  • Пешниҳод бояд то ҳадди имкон содда бошад (HTML-и пок) барои пешгирӣ кардани мушкилоти тасодуфӣ, ба монанди JavaScript яхкардашуда;
  • дастгирии кластерҳои сершумор барои содда кардани ҳамкорӣ ҳангоми машварати фосилавӣ (масалан, танҳо як URL дар хотир нигоҳ доштан);
  • Агар имконпазир бошад, таҳлили вазъият бояд содда карда шавад (масалан, бо истинодҳо барои зеркашии захираҳо барои ҳама кластерҳо/фазоҳои ном);
  • имкониятҳои иловагӣ барои эҷоди истинодҳои чандир ва таъкид иттилооти матнӣ, масалан, то ки шумо метавонед ҳамкоронро ба як бахши мушаххаси тавсифи манбаъ (хат дар YAML) нишон диҳед;
  • қобилияти мутобиқсозӣ ба талаботи муштарии мушаххас, масалан, ба шумо имкон медиҳад, ки қолабҳои махсуси намоишӣ барои CRD-ҳо, намуди ҷадвали шахсии худ ва тағир додани услубҳои CSS эҷод кунед;
  • асбобҳо барои таҳқиқи минбаъда дар сатри фармон (масалан, нишон додани фармонҳои пурра kubectl, барои нусхабардорӣ омода аст);

Ғайр аз вазифаҳое, ки дар Web View Kubernetes ҳал карда мешаванд (ғайриҳадафҳо) монд:

  • абстраксияи объектҳои Kubernetes;
  • идоракунии барномаҳо (масалан, идоракунии ҷойгиркунӣ, диаграммаҳои Helm ва ғайра);
  • амалиёти навиштан (бояд тавассути абзорҳои бехатари CI/CD ва/ё GitOps анҷом дода шавад);
  • интерфейси зебо (JavaScript, мавзӯъҳо ва ғайра);
  • визуализатсия (ниг kube-ops-назар);
  • Таҳлили хароҷот (ниг kube-resource-report).

Чӣ тавр Kubernetes Web View дар дастгирӣ ва вокуниш ба ҳодисаҳо кӯмак мекунад?

таъмин

  • Ҳама пайвандҳо доимӣ мебошанд, ки мубодилаи иттилоотро бо ҳамкорон осонтар мекунад.
  • Шумо метавонед эҷод кунед андешаҳои шумо, масалан, ҳама Ҷойгиркунӣ ва Подҳоро бо нишони мушаххас дар ду кластери мушаххас намоиш диҳед (якчанд номҳои кластер ва намудҳои захираҳоро дар истиноди бо вергул ҷудо кардан мумкин аст).
  • Шумо метавонед ба сатрҳои мушаххас дар файли YAML объект, ки мушкилоти эҳтимолиро дар мушаххасоти объект нишон медиҳад.

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)
Ҷустуҷӯ аз рӯи кластерҳо дар Web View Kubernetes

Вокуниши ҳодиса

  • Ҷустуҷӯи ҷаҳонӣ (ҷустуҷӯи ҷаҳонӣ) ба шумо имкон медиҳад, ки объектҳоро дар ҳама кластерҳо ҷустуҷӯ кунед.
  • Рӯйхати Намоишҳо метавонад ҳама объектҳоро бо ҳолат/сутуни муайян дар ҳама кластерҳо нишон диҳад (масалан, мо бояд ҳамаи подкҳоро бо ҳолати "Интизорӣ" пайдо кунем).
  • Рӯйхати объектҳоро зеркашӣ кардан мумкин аст дар формати аз ҷадвал ҷудошуда (TSV) барои таҳлили баъдӣ.
  • Истинодҳои берунии фармоишӣ Ба шумо имкон медиҳад, ки ба панелҳои дахлдор ва дигар асбобҳо гузаред.

Эълони Web View Kubernetes (ва шарҳи мухтасари дигар интерфейсҳои веб барои Kubernetes)
Web View Kubernetes: рӯйхати поддонҳо бо ҳолати "Интизори" дар ҳама кластерҳо

Агар шумо хоҳед, ки Kubernetes Web View-ро санҷед, ман тавсия медиҳам, ки тафтиш кунед ҳуҷҷатгузорӣ ё тамошо кунед намоиши зинда.

Албатта, интерфейс метавонист беҳтар бошад, аммо ҳоло Kubernetes Web View як абзори "корбарони пешрафта" мебошад, ки дар ҳолати зарурӣ аз идора кардани роҳҳои URL дастӣ худдорӣ намекунанд. Агар шумо ягон шарҳ / иловаҳо / пешниҳодҳо дошта бошед, лутфан тамос гиред бо ман дар Twitter!

Ин мақола таърихи мухтасари заминаест, ки боиси эҷоди Web View Kubernetes гардид. Бештар пайравӣ хоҳанд кард! (Шарҳ. тарҷума.: Онҳо бояд дар интизор шаванд блоги муаллиф.)

PS аз тарҷумон

Инчунин дар блоги мо хонед:

Манбаъ: will.com

Илова Эзоҳ