Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

Նշում. թարգմ.Բնօրինակ նյութի հեղինակը Զալանդոյից Հենինգ Ջեյքոբսն է։ Նա ստեղծել է նոր վեբ ինտերֆեյս Kubernetes-ի հետ աշխատելու համար, որը դիրքավորվել է որպես «kubectl համացանցի համար»: Ինչու հայտնվեց բաց կոդով նոր նախագիծը և ինչ չափանիշներին չէին բավարարում գոյություն ունեցող լուծումները, կարդացեք նրա հոդվածը:

Kubernetes Web View-ի հայտարարություն (և 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 Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

*Իմ բացատրությունը Kubernetes-ի համար սահմանափակ թվով վեբ ինտերֆեյսների համար. ամպային ծառայությունները և Kubernetes վաճառողները սովորաբար առաջարկում են իրենց սեփական ճակատները, ուստի «լավ» անվճար Kubernetes UI-ի շուկան համեմատաբար փոքր է:

Թվիթի միջոցով ես իմացա K8Dash, Կուբերնատոր и Օկտանտ. Եկեք նայենք դրանց և առկա բաց կոդով այլ լուծումներին, փորձենք հասկանալ, թե որոնք են դրանք:

K8Dash

«K8Dash-ը Kubernetes կլաստերը կառավարելու ամենապարզ միջոցն է»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

K8Dash Լավ տեսք ունի և արագ է զգում, բայց ունի մի շարք թերություններ վերը թվարկված օգտագործման դեպքերի համար.

  • Աշխատում է միայն մեկ կլաստերի սահմաններում։
  • Տեսակավորումը և զտումը հնարավոր են, բայց չունեն մշտական ​​հղումներ:
  • Հատուկ ռեսուրսների սահմանումների (CRD) աջակցություն չկա:

Կուբերնատոր

«Kubernator-ը այլընտրանքային միջերես է Kubernetes-ի համար: Ի տարբերություն բարձր մակարդակի Kubernetes Dashboard-ի, այն ապահովում է ցածր մակարդակի կառավարում և հիանալի տեսանելիություն կլաստերի բոլոր օբյեկտների նկատմամբ՝ նորերը ստեղծելու, դրանք խմբագրելու և կոնֆլիկտները լուծելու ունակությամբ: Լինելով ամբողջովին հաճախորդի կողմի հավելված (ինչպես kubectl), այն չի պահանջում որևէ այլ հետին պլան, բացի Kubernetes API սերվերից, ինչպես նաև հարգում է կլաստերի մուտքի կանոնները»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

Սա բավականին ճշգրիտ նկարագրություն է Կուբերնատոր. Ցավոք, այն չունի որոշ առանձնահատկություններ.

  • Ծառայում է միայն մեկ կլաստեր:
  • Ցանկի դիտման ռեժիմ չկա (այսինքն, դուք չեք կարող ցուցադրել բոլոր բլոկները «Սպասող» կարգավիճակով):

Kubernetes վահանակ

«Kubernetes Dashboard-ը համընդհանուր վեբ ինտերֆեյս է Kubernetes կլաստերների համար: Այն թույլ է տալիս օգտվողներին կառավարել և վերացնել կլաստերի մեջ աշխատող հավելվածները, ինչպես նաև կառավարել հենց կլաստերը»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

Ցավոք սրտի, Kubernetes վահանակ իրականում չի օգնում իմ աջակցության և միջադեպերի արձագանքման գործողություններին, քանի որ դա.

  • մշտական ​​հղումներ չկան, օրինակ, երբ ես զտում եմ ռեսուրսները կամ փոխում եմ տեսակավորման կարգը.
  • ըստ կարգավիճակի զտելու հեշտ միջոց չկա, օրինակ՝ տեսեք «Սպասող» կարգավիճակով բոլոր պատյանները.
  • աջակցվում է միայն մեկ կլաստեր;
  • CRD-ները չեն աջակցվում (այս հնարավորությունը մշակման փուլում է);
  • չկան հատուկ սյունակներ (օրինակ՝ ըստ տեսակի պիտակավորված սյունակներ kubectl -L).

Kubernetes գործառնական տեսք (kube-ops-view)

«System Dashboard Observer for K8s Cluster Space»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

У Kubernetes գործառնական տեսք Բոլորովին այլ մոտեցում. այս գործիքը ցույց է տալիս միայն կլաստերային հանգույցներ և պատիճներ՝ օգտագործելով WebGL՝ առանց որևէ տեքստային օբյեկտի մանրամասների: Այն հիանալի է կլաստերի առողջական վիճակի արագ ակնարկի համար (կապակները ընկնում են?)*, բայց այն հարմար չէ վերը նկարագրված աջակցության և միջադեպերի արձագանքման դեպքերի համար:

* Նշում. թարգմ.Այս առումով ձեզ կարող է հետաքրքրել նաև մեր հավելվածը grafana-statusmap, որի մասին մենք ավելի մանրամասն խոսել ենք այս հոդվածը.

Kubernetes ռեսուրսների հաշվետվություն (kube-resource-report)

«Հավաքեք pod և Kubernetes կլաստերի ռեսուրսների հարցումները, համեմատեք դրանք ռեսուրսների սպառման հետ և ստեղծեք ստատիկ HTML»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

Kubernetes ռեսուրսների հաշվետվություն ստեղծում է ստատիկ HTML հաշվետվություններ ռեսուրսների օգտագործման և ծախսերի բաշխման վերաբերյալ թիմերի/հավելվածների միջև կլաստերներում: Զեկույցը որոշ չափով օգտակար է աջակցության և միջադեպերի արձագանքման համար, քանի որ այն թույլ է տալիս արագ գտնել այն կլաստերը, որտեղ տեղակայված է հավելվածը:

Նշում. թարգմ.Ծառայությունը և գործիքը կարող են օգտակար լինել նաև ամպային մատակարարների միջև ռեսուրսների բաշխման և դրանց ծախսերի մասին տեղեկատվությունը դիտելու համար: Կուբեկոստ, որը մենք վերանայում ենք վերջերս հրապարակված.

Օկտանտ

«Ընդլայնվող վեբ հարթակ մշակողների համար, որը նախատեսված է Kubernetes կլաստերների բարդության ավելի մեծ պատկերացում ապահովելու համար»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

Օկտանտ, որը ստեղծվել է VMware-ի կողմից, նոր արտադրանք է, որի մասին ես համեմատաբար վերջերս եմ իմացել: Նրա օգնությամբ հարմար է ուսումնասիրել կլաստերը տեղական մեքենայի վրա (նույնիսկ վիզուալիզացիաներ կան), բայց այն լուծում է աջակցության և միջադեպերի արձագանքման խնդիրները միայն սահմանափակ չափով։ Octant-ի թերությունները.

  • Կլաստերային որոնում չկա:
  • Աշխատում է միայն տեղական մեքենայի վրա (չի տեղակայվում կլաստերի վրա):
  • Հնարավոր չէ տեսակավորել/զտել օբյեկտները (աջակցվում է միայն պիտակների ընտրիչը):
  • Դուք չեք կարող նշել հատուկ սյունակներ:
  • Դուք չեք կարող օբյեկտները թվարկել ըստ անվանատարածքի:

Ես նաև խնդիրներ ունեի Octant-ի կայունության հետ Zalando կլաստերների հետ. որոշ CRD-ների վրա նա ընկնում էր.

Ներկայացնում ենք Kubernetes Web View-ը

«kubectl համացանցի համար»:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)

Kubernetes-ի համար հասանելի ինտերֆեյսի տարբերակները վերլուծելուց հետո ես որոշեցի ստեղծել նորը. Kubernetes WebView. Ի վերջո, իրականում ինձ ուղղակի ողջ ուժն է պետք kubectl համացանցում, մասնավորապես՝

  • բոլոր (միայն կարդալու) գործողությունների առկայությունը, որոնց համար օգտվողները նախընտրում են օգտագործել kubectl;
  • բոլոր URL-ները պետք է լինեն մշտական ​​և ներկայացնեն էջը իր սկզբնական տեսքով, որպեսզի գործընկերները կարողանան դրանք տարածել և օգտագործել այլ գործիքներում.
  • աջակցություն Kubernetes-ի բոլոր օբյեկտներին, ինչը թույլ կտա լուծել ցանկացած տեսակի խնդիր.
  • Ռեսուրսների ցուցակները պետք է ներբեռնելի լինեն հետագա աշխատանքի համար (աղյուսակներում, CLI գործիքներում, ինչպիսիք են grep) և պահեստավորում (օրինակ, հետմահուների համար);
  • աջակցություն՝ ըստ պիտակի ռեսուրսների ընտրության (նման kubectl get .. -l);
  • տարբեր տեսակի ռեսուրսների համակցված ցուցակներ ստեղծելու ունակություն (նման kubectl get all) գործընկերների միջև ընդհանուր գործառնական պատկեր ստանալու համար (օրինակ՝ միջադեպի արձագանքման ժամանակ).
  • հատուկ խելացի խորը հղումներ ավելացնելու ունակություն այլ գործիքների, ինչպիսիք են վահանակները, լոգերը, հավելվածների գրանցամատյանները և այլն: հեշտացնել անսարքությունների վերացումը/լուծել սխալները և արձագանքել միջադեպերին.
  • Frontend-ը պետք է լինի հնարավորինս պարզ (մաքուր HTML), որպեսզի խուսափի պատահական խնդիրներից, ինչպիսիք են սառեցված JavaScript-ը;
  • մի քանի կլաստերների աջակցություն՝ հեռավոր խորհրդատվության ընթացքում փոխգործակցությունը պարզեցնելու համար (օրինակ՝ միայն մեկ URL հիշելու համար);
  • Հնարավորության դեպքում իրավիճակային վերլուծությունը պետք է պարզեցվի (օրինակ՝ բոլոր կլաստերների/անունների տարածքների համար ռեսուրսները ներբեռնելու հղումներով);
  • լրացուցիչ հնարավորություններ՝ ստեղծելու ճկուն հղումներ և ընդգծելու տեքստային տեղեկատվությունը, օրինակ, որպեսզի կարողանաք գործընկերներին ուղղորդել ռեսուրսի նկարագրության որոշակի բաժին (տող YAML-ում);
  • որոշակի հաճախորդի պահանջներին հարմարեցնելու ունակություն, օրինակ՝ թույլ տալով ստեղծել հատուկ ցուցադրման ձևանմուշներ CRD-ների համար, ձեր սեփական սեղանի դիտումները և փոխել CSS ոճերը.
  • հրամանի տողում հետագա ուսումնասիրության գործիքներ (օրինակ՝ ամբողջական հրամանների ցուցադրում kubectl, պատրաստ է պատճենահանման);

Kubernetes Web View-ում լուծված առաջադրանքներից դուրս (ոչ գոլեր) մնաց:

  • Kubernetes օբյեկտների աբստրակցիա;
  • հավելվածների կառավարում (օրինակ՝ տեղակայման կառավարում, Ղեկի գծապատկերներ և այլն);
  • գրելու գործողություններ (պետք է կատարվեն անվտանգ CI/CD և/կամ GitOps գործիքների միջոցով);
  • գեղեցիկ ինտերֆեյս (JavaScript, թեմաներ և այլն);
  • վիզուալիզացիա (տես kube-ops-view);
  • ծախսերի վերլուծություն (տես kube-resource-report).

Ինչպե՞ս է Kubernetes Web View-ն օգնում աջակցության և միջադեպերի արձագանքման հարցում:

Աջակցություն

  • Բոլոր հղումները մշտական ​​են, ինչը հեշտացնում է գործընկերների հետ տեղեկատվության փոխանակումը:
  • Դուք կարող եք ստեղծել ձեր գաղափարները, օրինակ, ցուցադրեք բոլոր տեղակայումները և պոդիները հատուկ պիտակով երկու հատուկ կլաստերներում (կլաստերների մի քանի անուններ և ռեսուրսների տեսակներ կարելի է նշել հղման մեջ՝ բաժանված ստորակետերով):
  • Դուք կարող եք անդրադառնալ հատուկ տողեր YAML ֆայլում օբյեկտ՝ նշելով օբյեկտի ճշգրտման հնարավոր խնդիրները:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)
Որոնեք ըստ կլաստերների Kubernetes Web View-ում

Միջադեպի արձագանք

  • Համաշխարհային որոնում (գլոբալ որոնում) թույլ է տալիս որոնել օբյեկտներ բոլոր կլաստերներում:
  • Ցուցակի դիտումներ կարող է ցուցադրել որոշակի վիճակով/սյունակով բոլոր օբյեկտները բոլոր կլաստերներում (օրինակ, մենք պետք է գտնենք «Սպասող» կարգավիճակով բոլոր պատյանները):
  • Օբյեկտների ցուցակները կարելի է ներբեռնել ներդիրներով առանձնացված արժեքով (TSV) ձևաչափով՝ հետագա վերլուծության համար:
  • Կարգավորելի արտաքին հղումներ Թույլ է տալիս անցնել հարակից վահանակներին և այլ գործիքներին:

Kubernetes Web View-ի հայտարարություն (և Kubernetes-ի այլ վեբ միջերեսների համառոտ ակնարկ)
Kubernetes Web View. բոլոր կլաստերներում «Սպասող» կարգավիճակով պատյանների ցանկ

Եթե ​​ցանկանում եք փորձել Kubernetes Web View-ը, խորհուրդ եմ տալիս ստուգել փաստաթղթեր կամ նայեք կենդանի ցուցադրություն.

Իհարկե, ինտերֆեյսը կարող է ավելի լավ լինել, բայց առայժմ Kubernetes Web View-ը գործիք է «առաջադեմ օգտվողների» համար, ովքեր անհրաժեշտության դեպքում չեն խուսափում URL-ի ուղիները ձեռքով շահարկելուց: Եթե ​​ունեք մեկնաբանություններ/հավելումներ/առաջարկություններ, խնդրում ենք կապ հաստատել ինձ հետ Twitter-ում!

Այս հոդվածը նախապատմության համառոտ պատմություն է, որը հանգեցրեց Kubernetes Web View-ի ստեղծմանը: Ավելի շատ կհետևեն: (Նշում. թարգմ.Նրանց պետք է սպասել հեղինակային բլոգ.)

Հ.Գ. թարգմանիչից

Կարդացեք նաև մեր բլոգում.

Source: www.habr.com

Добавить комментарий