Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Анхаарна уу. орчуулга.: Жинхэнэ материалын зохиогч нь Заландогийн Хеннинг Жэйкобс юм. Тэрээр Kubernetes-тэй ажиллах шинэ вэб интерфэйсийг бүтээсэн бөгөөд энэ нь "web-д зориулсан kubectl" гэсэн байрлалтай. Шинэ Нээлттэй эхийн төсөл яагаад гарч ирсэн, одоо байгаа шийдлүүд нь ямар шалгуурыг хангаагүй вэ - түүний нийтлэлийг уншина уу.

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Энэ нийтлэлд би 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:

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

*Kubernetes-ийн хязгаарлагдмал тооны вэб интерфэйсийн талаарх миний тайлбар: үүлэн үйлчилгээ болон Kubernetes борлуулагчид ихэвчлэн өөрсдийн гэсэн урд талын интерфейсийг санал болгодог тул "сайн" үнэ төлбөргүй Kubernetes UI-ийн зах зээл харьцангуй бага байдаг.

Жиргээгээр дамжуулан би олж мэдсэн K8Dash, Кубернатор и Октант. Тэдгээрийг болон бусад нээлттэй эхийн шийдлүүдийг харцгаая, тэд юу болохыг ойлгохыг хичээцгээе.

K8Dash

"K8Dash бол Kubernetes кластерийг удирдах хамгийн энгийн арга юм."

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

K8Dash Сайхан харагдаж, хурдан мэдрэмж төрүүлдэг боловч дээр дурдсан хэрэглээний хэд хэдэн сул талуудтай:

  • Зөвхөн нэг кластерын хүрээнд ажиллана.
  • Ангилах, шүүх боломжтой боловч байнгын холбоос байхгүй.
  • Custom Resource Definitions (CRDs)-д дэмжлэг байхгүй.

Кубернатор

“Кубернатор бол Kubernetes-ийн өөр UI юм. Дээд түвшний Kubernetes хяналтын самбараас ялгаатай нь энэ нь доод түвшний хяналт, кластер дахь бүх объектыг маш сайн харагдуулж, шинээр үүсгэх, тэдгээрийг засах, зөрчилдөөнийг шийдвэрлэх чадвартай. Энэ нь бүхэлдээ үйлчлүүлэгчийн талын програм (kubectl гэх мэт) тул Kubernetes API серверээс өөр ямар ч backend шаарддаггүй бөгөөд кластерт нэвтрэх дүрмийг хүндэтгэдэг."

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Энэ бол нэлээд үнэн зөв тайлбар юм Кубернатор. Харамсалтай нь энэ нь зарим онцлог шинж чанартай байдаггүй:

  • Зөвхөн нэг кластерт үйлчилдэг.
  • Жагсаалт харах горим байхгүй (жишээ нь, та "Хүлээгдэж буй" төлөвтэй бүх хонхорцог харуулах боломжгүй).

Kubernetes хяналтын самбар

“Kubernetes Dashboard нь Kubernetes кластеруудад зориулсан бүх нийтийн вэб интерфэйс юм. Энэ нь хэрэглэгчдэд кластерт ажиллаж байгаа програмуудыг удирдах, алдааг олж засварлахаас гадна кластерийг өөрөө удирдах боломжийг олгодог."

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Харамсалтай нь, Kubernetes хяналтын самбар Миний дэмжлэг болон ослын хариу арга хэмжээнүүдэд үнэхээр тус болохгүй, учир нь:

  • байнгын холбоос байхгүй, жишээ нь би нөөцийг шүүх эсвэл эрэмбэлэх дарааллыг өөрчлөх үед;
  • статусаар шүүх хялбар арга байхгүй - жишээлбэл, "Хүлээж байна" гэсэн статустай бүх хонхорцог харах;
  • зөвхөн нэг кластерийг дэмждэг;
  • CRD-г дэмждэггүй (энэ функцийг боловсруулж байна);
  • захиалгат багана байхгүй (төрөлөөр шошгологдсон багана гэх мэт kubectl -L).

Kubernetes Operational View (kube-ops-view)

"K8s Cluster Space-д зориулсан системийн хяналтын самбарын ажиглагч."

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

У Kubernetes Operational View Шал өөр арга: энэ хэрэгсэл нь зөвхөн WebGL ашиглан кластерын зангилаа болон подволкуудыг ямар ч текстийн объектын дэлгэрэнгүй мэдээлэлгүйгээр харуулдаг. Энэ нь кластерын эрүүл мэндийн байдлын талаар хурдан тоймлоход тохиромжтой (хос унаж байна уу?)*, гэхдээ дээр дурдсан дэмжлэг болон ослын хариу үйлдлийн ашиглалтын тохиолдлуудад тохиромжгүй.

* Анхаарна уу. орчуулга.: Энэ утгаараа та манай залгаасыг сонирхож магадгүй юм графана-статусмап, энэ талаар бид илүү дэлгэрэнгүй ярьсан энэ нийтлэл.

Kubernetes нөөцийн тайлан (kube-resource-report)

"Pod болон Kubernetes кластерын нөөцийн хүсэлтийг цуглуулж, тэдгээрийг нөөцийн зарцуулалттай харьцуулж, статик HTML үүсгэх."

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Kubernetes нөөцийн тайлан Кластер дахь баг/аппликейшн дээр нөөцийн ашиглалт, зардлын хуваарилалтын статик HTML тайланг үүсгэдэг. Тус тайлан нь тухайн программыг байршуулсан кластерийг хурдан олох боломжийг олгодог тул дэмжлэг үзүүлэх болон ослын хариу арга хэмжээ авахад тустай.

Анхаарна уу. орчуулга.: Үйлчилгээ, хэрэгсэл нь үүлэн үйлчилгээ үзүүлэгчдээс нөөцийн хуваарилалт, тэдгээрийн зардлын талаарх мэдээллийг харахад ашигтай байж болно. Кубекост, бид үүнийг хянана саяхан хэвлэгдсэн.

Октант

"Kubernetes кластеруудын нарийн төвөгтэй байдлын талаар илүү сайн ойлголт өгөх зорилготой хөгжүүлэгчдэд зориулсан өргөтгөх боломжтой вэб платформ."

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Октант, VMware-ийн бүтээсэн, миний харьцангуй саяхан олж мэдсэн шинэ бүтээгдэхүүн юм. Үүний тусламжтайгаар кластерийг локал машин дээр судлах нь тохиромжтой (бүр дүрслэл байдаг), гэхдээ энэ нь дэмжлэг үзүүлэх, ослын хариу арга хэмжээг хязгаарлагдмал хэмжээнд авч үздэг. Октантын сул талууд:

  • Кластер хайлт байхгүй.
  • Зөвхөн дотоод машин дээр ажилладаг (кластерт байршуулдаггүй).
  • Объектуудыг ангилах/шүүх боломжгүй (зөвхөн шошго сонгогчийг дэмждэг).
  • Та захиалгат баганыг зааж өгөх боломжгүй.
  • Та объектуудыг нэрээр нь жагсааж болохгүй.

Би бас Zalando кластертай Octant-ийн тогтвортой байдалд асуудалтай тулгарсан: зарим CRD дээр тэр унаж байсан.

Kubernetes Web View-г танилцуулж байна

"Вэбд зориулсан kubectl".

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)

Kubernetes-ийн боломжтой интерфэйсийн сонголтуудад дүн шинжилгээ хийсний дараа би шинээр үүсгэхээр шийдсэн: Kubernetes WebView. Эцсийн эцэст, үнэндээ надад бүх хүч л хэрэгтэй kubectl вэб дээр, тухайлбал:

  • Хэрэглэгчид kubectl ашиглахыг илүүд үздэг бүх (зөвхөн унших) үйлдлүүдийн бэлэн байдал;
  • бүх URL нь байнгын байх ёстой бөгөөд хуудсыг анхны хэлбэрээр нь төлөөлөх ёстой бөгөөд ингэснээр хамт ажиллагсад нь бусад хэрэгслээр хуваалцаж, ашиглах боломжтой болно;
  • Kubernetes-ийн бүх объектыг дэмжих, энэ нь танд ямар ч төрлийн асуудлыг шийдвэрлэх боломжийг олгоно;
  • нөөцийн жагсаалтыг цаашдын ажилд зориулж татаж авах боломжтой байх ёстой (хүснэгтүүд, CLI хэрэгслүүд гэх мэт grep) болон хадгалах (жишээ нь, нас барсны дараа);
  • нөөцийг шошгогоор сонгоход дэмжлэг үзүүлэх (үүнтэй төстэй kubectl get .. -l);
  • янз бүрийн төрлийн нөөцийн нэгдсэн жагсаалтыг үүсгэх чадвар (үүнтэй төстэй kubectl get all) хамтран ажиллагсдын дунд нийтлэг үйл ажиллагааны дүр зургийг олж авах (жишээлбэл, ослын хариу арга хэмжээ авах үед);
  • хяналтын самбар, бүртгэл хөтлөгч, програмын бүртгэл гэх мэт бусад хэрэгслүүдэд тусгай ухаалаг гүн холбоосыг нэмэх чадвар. алдааг олж засварлах/шийдвэрлэх, тохиолдлын хариу арга хэмжээг хөнгөвчлөх;
  • Хөлдөөсөн JavaScript гэх мэт санамсаргүй асуудлаас зайлсхийхийн тулд урд тал нь аль болох энгийн (цэвэр HTML) байх ёстой;
  • алсын зайнаас зөвлөгөө өгөх үед харилцан үйлчлэлийг хялбаршуулах олон кластерын дэмжлэг (жишээлбэл, зөвхөн нэг URL-г санах);
  • Боломжтой бол нөхцөл байдлын шинжилгээг хялбарчлах хэрэгтэй (жишээ нь, бүх кластер/нэрийн орон зайн нөөцийг татаж авах холбоосууд);
  • уян хатан холбоос үүсгэх, текстийн мэдээллийг тодруулах нэмэлт боломжууд, жишээлбэл, хамт ажиллагсдаа нөөцийн тайлбарын тодорхой хэсэг рүү чиглүүлэх боломжтой (YAML дахь мөр);
  • тодорхой үйлчлүүлэгчийн шаардлагад нийцүүлэн өөрчлөх чадвар, жишээлбэл, CRD-д зориулсан тусгай дэлгэцийн загвар үүсгэх, өөрийн хүснэгтийн харагдах байдал, CSS хэв маягийг өөрчлөх боломж;
  • командын мөрөнд нэмэлт хайгуул хийх хэрэгслүүд (жишээлбэл, бүрэн командуудыг харуулах kubectl, хуулбарлахад бэлэн);

Kubernetes Web View дээр шийдэгдсэн ажлуудаас гадна (зорилгогүй) үлдсэн:

  • Kubernetes объектуудын хийсвэрлэл;
  • хэрэглээний менежмент (жишээлбэл, байршуулалтын удирдлага, Helm диаграм гэх мэт);
  • бичих үйлдлүүд (аюулгүй CI/CD ба/эсвэл GitOps хэрэгслээр хийгдэх ёстой);
  • сайхан интерфэйс (JavaScript, сэдэв гэх мэт);
  • дүрслэл (харна уу kube-ops-view);
  • зардлын шинжилгээ (харна уу kube-resource-report).

Kubernetes Web View нь тусламж болон ослын хариу арга хэмжээнд хэрхэн тусалдаг вэ?

тусламж

  • Бүх холбоосууд байнгын байна, энэ нь хамт ажиллагсадтайгаа мэдээлэл солилцоход хялбар болгодог.
  • Та үүсгэж болно таны санаанууд, жишээлбэл, бүх Байрлуулалт болон Pod-ыг тодорхой шошготой хоёр тусгай кластерт харуулах (хэд хэдэн кластерын нэр болон нөөцийн төрлийг холбоосоор таслалаар тусгаарлаж зааж өгч болно).
  • Та лавлаж болно YAML файл дахь тодорхой мөрүүд объектын тодорхойлолтод гарч болзошгүй асуудлуудыг харуулсан объект.

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)
Kubernetes Web View дээр кластераар хайх

Гэнэтийн хариу арга хэмжээ

  • Глобал хайлт (дэлхий даяар хайлт) бүх кластер дахь объектуудыг хайх боломжийг танд олгоно.
  • Жагсаалт харах бүх кластерт тодорхой төлөв/багана бүхий бүх объектыг харуулах боломжтой (жишээ нь, бид "Хүлээгдэж буй" төлөвтэй бүх pods-ыг олох хэрэгтэй).
  • Объектуудын жагсаалтыг татаж авах боломжтой дараа нь дүн шинжилгээ хийх зорилгоор табаар тусгаарлагдсан утга (TSV) форматаар.
  • Тохируулах боломжтой гадаад холбоосууд Холбогдох хяналтын самбар болон бусад хэрэгсэл рүү шилжих боломжийг танд олгоно.

Kubernetes Web View-ийн зарлал (мөн Kubernetes-ийн бусад вэб UI-ийн товч тойм)
Kubernetes Web View: бүх кластер дахь "Хүлээгдэж буй" төлөвтэй подкуудын жагсаалт

Хэрэв та Kubernetes Web View-г туршиж үзэхийг хүсч байвал шалгахыг зөвлөж байна баримт бичиг эсвэл хар амьд демо.

Мэдээжийн хэрэг, интерфэйс нь илүү сайн байж болох ч одоохондоо Kubernetes Web View нь шаардлагатай бол URL замыг гараар удирдахаас цээрлэдэг "дэвшилтэт хэрэглэгчдэд" зориулсан хэрэгсэл юм. Хэрэв танд ямар нэгэн сэтгэгдэл/нэмэлт/санал байвал холбогдоно уу Twitter дээр надтай хамт!

Энэ нийтлэл нь Kubernetes Web View-ийг бий болгоход хүргэсэн суурь байдлын товч түүх юм. Илүү ихийг дагаж мөрдөх болно! (Анхаарна уу. орчуулга.: Тэднийг хүлээж байх ёстой зохиолчийн блог.)

Орчуулагчаас PS

Мөн манай блог дээрээс уншина уу:

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх