Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

Ескерту. аударма: Бастапқы материалдың авторы - Заландодан келген Хеннинг Джейкобс. Ол Kubernetes-пен жұмыс істеу үшін жаңа веб-интерфейс жасады, ол «web үшін kubectl» ретінде орналасқан. Неліктен жаңа Open Source жобасы пайда болды және қолданыстағы шешімдер қандай критерийлерге сәйкес келмеді - оның мақаласын оқыңыз.

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:

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

* Kubernetes веб-интерфейстерінің шектеулі саны туралы менің түсіндірмесі: бұлттық қызметтер мен Kubernetes жеткізушілері әдетте өздерінің жеке интерфейстерін ұсынады, сондықтан «жақсы» тегін Kubernetes UI нарығы салыстырмалы түрде аз.

Твит арқылы мен білдім K8Dash, Кубернатор и Октант. Оларды және басқа ашық бастапқы шешімдерді қарастырайық, олардың не екенін түсінуге тырысайық.

K8Dash

«K8Dash - Kubernetes кластерін басқарудың ең қарапайым жолы.»

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

K8Dash Жақсы көрінеді және тез сезінеді, бірақ жоғарыда аталған пайдалану жағдайлары үшін бірқатар кемшіліктері бар:

  • Тек бір кластердің шекараларында жұмыс істейді.
  • Сұрыптау және сүзу мүмкін, бірақ тұрақты сілтемелер жоқ.
  • Пайдаланушы ресурстар анықтамаларына (CRD) қолдау жоқ.

Кубернатор

«Кубернатор - Kubernetes үшін балама UI. Жоғары деңгейлі Kubernetes бақылау тақтасынан айырмашылығы, ол жаңаларын жасау, оларды өңдеу және қайшылықтарды шешу мүмкіндігімен кластердегі барлық нысандарға төмен деңгейлі басқару мен тамаша көрінуді қамтамасыз етеді. Толығымен клиенттік қолданба бола отырып (мысалы, kubectl), ол Kubernetes API серверінің өзінен басқа серверді қажет етпейді, сонымен қатар кластерге кіру ережелерін құрметтейді.

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

Бұл өте дәл сипаттама Кубернатор. Өкінішке орай, оның кейбір ерекшеліктері жоқ:

  • Тек бір кластерге қызмет етеді.
  • Тізімді қарау режимі жоқ (яғни, «Күтуде» күйімен барлық подкасттарды көрсете алмайсыз).

Kubernetes бақылау тақтасы

«Kubernetes бақылау тақтасы — Kubernetes кластерлеріне арналған әмбебап веб-интерфейс. Ол пайдаланушыларға кластерде жұмыс істейтін қолданбаларды басқаруға және ақаулықтарды жоюға, сондай-ақ кластердің өзін басқаруға мүмкіндік береді».

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

Өкінішке орай, Kubernetes бақылау тақтасы Менің қолдау көрсету және оқиғаға жауап беру әрекеттері шынымен көмектеспейді, себебі ол:

  • тұрақты сілтемелер жоқ, мысалы, ресурстарды сүзгілеу немесе сұрыптау ретін өзгерту;
  • күй бойынша сүзудің оңай жолы жоқ - мысалы, «Күтуде» күйі бар барлық подкасттарды қараңыз;
  • тек бір кластерге қолдау көрсетіледі;
  • CRD құрылғыларына қолдау көрсетілмейді (бұл мүмкіндік әзірленуде);
  • реттелетін бағандар жоқ (мысалы, түрі бойынша белгіленген бағандар kubectl -L).

Kubernetes операциялық көрінісі (kube-ops-view)

«K8s кластер кеңістігіне арналған жүйелік бақылау тақтасының бақылаушысы».

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

У Kubernetes операциялық көрінісі Мүлдем басқа тәсіл: бұл құрал тек WebGL көмегімен мәтіндік нысан мәліметтерінсіз кластерлік түйіндер мен түйіндерді көрсетеді. Бұл кластердің денсаулығын жылдам шолу үшін тамаша (бұтақтар түсіп жатыр ма?)*, бірақ ол жоғарыда сипатталған қолдау және оқиғаға жауап беру жағдайларын пайдалану үшін жарамсыз.

* Ескерту. аударма: Осы мағынада сізді біздің плагин қызықтыруы мүмкін графана-күй картасы, ол туралы біз толығырақ айтып өттік Бұл мақала.

Kubernetes ресурстарының есебі (kube-ресурс-есеп)

«Pod және Kubernetes кластерінің ресурс сұрауларын жинаңыз, оларды ресурстарды тұтынумен салыстырыңыз және статикалық HTML жасаңыз.»

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

Kubernetes ресурстарының есебі ресурстарды пайдалану және кластерлердегі топтар/қолданбалар бойынша шығындарды бөлу туралы статикалық HTML есептерін жасайды. Есеп қолдау көрсету және оқиғаға жауап беру үшін біршама пайдалы, себебі ол қолданба орналастырылған кластерді жылдам табуға мүмкіндік береді.

Ескерту. аударма: Қызмет пен құрал бұлттық провайдерлер арасында ресурстарды бөлу және олардың шығындары туралы ақпаратты көру үшін де пайдалы болуы мүмкін. Кубекост, біз оны қарастырамыз жақында жарияланған.

Октант

«Kubernetes кластерлерінің күрделілігін тереңірек түсінуге арналған әзірлеушілерге арналған кеңейтілген веб-платформа».

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

Октант, VMware жасаған, мен салыстырмалы түрде жақында білген жаңа өнім. Оның көмегімен кластерді жергілікті машинада зерттеу ыңғайлы (тіпті визуализациялар да бар), бірақ ол тек шектеулі дәрежеде қолдау және оқиғаға жауап беру мәселелерін шешеді. Октанттың кемшіліктері:

  • Кластерлік іздеу жоқ.
  • Тек жергілікті құрылғыда жұмыс істейді (кластерге қолданылмайды).
  • Нысандарды сұрыптау/сүзгілеу мүмкін емес (тек белгі таңдау құралына қолдау көрсетіледі).
  • Теңшелетін бағандарды көрсете алмайсыз.
  • Сіз нысандарды аттар кеңістігі бойынша тізімдей алмайсыз.

Менде Zalando кластерлерімен Octant тұрақтылығымен проблемалар болды: кейбір CRD-де ол құлап бара жатты.

Kubernetes веб-көрінісін таныстыру

"web үшін kubectl".

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)

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 бағдарламасында шешілген тапсырмалардан басқа (мақсатсыз) қалды:

  • Кубернетес объектілерінің абстракциясы;
  • қолданбаларды басқару (мысалы, орналастыруды басқару, Helm диаграммалары және т.б.);
  • жазу операциялары (қауіпсіз CI/CD және/немесе GitOps құралдары арқылы орындалуы керек);
  • әдемі интерфейс (JavaScript, тақырыптар және т.б.);
  • визуализация (қараңыз kube-ops-view);
  • шығындарды талдау (қараңыз kube-ресурс-есеп).

Kubernetes Web View қолдау көрсетуге және оқиғаға жауап беруге қалай көмектеседі?

қолдау

  • Барлық сілтемелер тұрақты, бұл әріптестермен ақпарат алмасуды жеңілдетеді.
  • Сіз жасай аласыз сіздің идеяларыңыз, мысалы, екі арнайы кластерде белгілі бір белгімен барлық Орналастырулар мен Podтарды көрсетіңіз (бірнеше кластер атаулары мен ресурс түрлерін сілтемеде үтірмен бөлуге болады).
  • сілтеме жасай аласыз YAML файлындағы арнайы жолдар нысан спецификациясындағы ықтимал проблемаларды көрсететін нысан.

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)
Kubernetes Web View ішінде кластерлер бойынша іздеу

Оқиғаға жауап беру

  • Ғаламдық іздеу (жаһандық іздеу) барлық кластерлерде объектілерді іздеуге мүмкіндік береді.
  • Көріністер тізімі барлық кластерлерде белгілі бір күй/баған бар барлық нысандарды көрсете алады (мысалы, «Күтуде» күйі бар барлық подкасттарды табу керек).
  • Нысандардың тізімдерін жүктеп алуға болады кейінірек талдау үшін қойындымен бөлінген мән (TSV) пішімінде.
  • Реттелетін сыртқы сілтемелер қатысты бақылау тақталарына және басқа құралдарға ауысуға мүмкіндік береді.

Kubernetes веб-көрінісінің хабарландыруы (және Kubernetes үшін басқа веб-интерфейстердің қысқаша шолуы)
Kubernetes Web View: барлық кластерлердегі «Күтуде» күйі бар қосқыштар тізімі

Егер сіз Kubernetes Web View қолданбасын қолданғыңыз келсе, мен тексеруді ұсынамын құжаттама немесе қараңыз тірі демо.

Әрине, интерфейс жақсырақ болуы мүмкін еді, бірақ қазір Kubernetes Web View - қажет болған жағдайда URL жолдарын қолмен басқарудан тартынбайтын «озық пайдаланушыларға» арналған құрал. Егер сізде қандай да бір ескертулер/толықтырулар/ұсыныстар болса, хабарласыңыз Twitter-де менімен бірге!

Бұл мақала Kubernetes Web View құруға әкелген фонның қысқаша тарихы. Әрі қарай көбірек болады! (Ескерту. аударма: Оларды күту керек автор блогы.)

PSаудармашыдан

Біздің блогта да оқыңыз:

Ақпарат көзі: www.habr.com

пікір қалдыру