k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

K9s ապահովում է տերմինալ օգտագործողի միջերես Kubernetes կլաստերների հետ փոխազդելու համար: Բաց կոդով այս նախագծի նպատակն է հեշտացնել K8-ներում նավարկելու, վերահսկելու և կառավարելու ծրագրերը: K9s-ը մշտապես վերահսկում է Kubernetes-ի փոփոխությունները և առաջարկում արագ հրամաններ՝ վերահսկվող ռեսուրսների հետ աշխատելու համար:

Նախագիծը գրված է Go-ում և գոյություն ունի ավելի քան մեկուկես տարի. առաջին պարտավորությունը կատարվել է 1 թվականի փետրվարի 2019-ին: Գրելու պահին 9000+ աստղ կա GitHub և մոտ 80 ներդրող։ Տեսնենք, թե ինչ կարող են անել k9-ները:

Տեղադրում և գործարկում

Սա հաճախորդի (Kubernetes կլաստերի հետ կապված) հավելված է, որն ամենահեշտն է գործարկել որպես Docker պատկեր.

docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s

Linux-ի որոշ բաշխումների և այլ օպերացիոն համակարգերի համար կան նաև պատրաստի տեղադրում փաթեթներ. Ընդհանուր առմամբ, Linux համակարգերի համար կարող եք տեղադրել երկուական ֆայլ.

sudo wget -qO- https://github.com/derailed/k9s/releases/download/v0.22.0/k9s_Linux_x86_64.tar.gz | tar zxvf -  -C /tmp/
sudo mv /tmp/k9s /usr/local/bin

Բուն K8s կլաստերի համար հատուկ պահանջներ չկան: Դատելով ակնարկներից՝ հավելվածն աշխատում է նաև Kubernetes-ի ավելի հին տարբերակների հետ, ինչպիսին է 1.12-ը։

Հավելվածը գործարկվում է ստանդարտ կոնֆիգուրացիայի միջոցով .kube/config - նման է, թե ինչպես է դա անում kubectl.

Նավարկություն

Լռելյայնորեն պատուհան է բացվում համատեքստի համար սահմանված լռելյայն անվանատարածքով: Այսինքն, եթե գրել ես kubectl config set-context --current --namespace=test, ապա անվանատարածքը կբացվի test. (Տես ստորև՝ համատեքստերը/անունների տարածքները փոխելու համար):

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Գնալ դեպի հրամանի ռեժիմ կատարվում է «:» սեղմելով: Դրանից հետո դուք կարող եք վերահսկել k9-ների աշխատանքը հրամանների միջոցով, օրինակ՝ StatefulSets-ների ցանկը դիտելու համար (ներկայիս անվանատարածքում), կարող եք մուտքագրել :sts.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Kubernetes-ի որոշ այլ ռեսուրսների համար.

  • :ns - անունների տարածքներ;
  • :deploy - տեղակայումներ;
  • :ing - ներթափանցումներ;
  • :svc - ծառայություններ.

Դիտման համար հասանելի ռեսուրսների տեսակների ամբողջական ցանկը ցուցադրելու համար կա հրաման :aliases.

Հարմար է նաև ընթացիկ պատուհանում դիտել տաք ստեղների համակցություններով հասանելի հրամանների ցանկը. դա անելու համար պարզապես սեղմեք «?»-ի վրա:

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Նաև k9-ներում կա որոնման ռեժիմ, որտեղ գնալու համար բավական է մուտքագրել «/»: Դրանով որոնում է կատարվում ընթացիկ «պատուհանի» բովանդակության վրա։ Ասենք, եթե նախկինում մտել եք :ns, դուք ունեք բաց անվանատարածքների ցանկ: Եթե ​​դրանք չափազանց շատ են, ապա երկար ժամանակ ներքև չոլորելու համար բավական է մուտքագրել պատուհանում անունների տարածքներով. /mynamespace.

Ըստ պիտակների որոնելու համար կարող եք ընտրել բոլոր բլոկները ցանկալի անվանատարածքում, այնուհետև մուտքագրել, օրինակ, / -l app=whoami. Մենք կստանանք այս պիտակով պատյանների ցանկը.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Որոնումն աշխատում է բոլոր տեսակի պատուհաններում, ներառյալ տեղեկամատյանները, դիտելով YAML մանիֆեստները և describe ռեսուրսների համար - տե՛ս ստորև այս հատկանիշների վերաբերյալ լրացուցիչ մանրամասների համար:

Ինչպիսի՞ն է ընդհանուր նավիգացիոն հոսքը:

Հրամանով :ctx կարող եք ընտրել համատեքստ.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Անվանատարածք ընտրելու համար կա արդեն նշված հրամանը :ns, և այնուհետև կարող եք օգտագործել ցանկալի տարածքի որոնումը. /test.

Եթե ​​մենք հիմա ընտրենք մեզ հետաքրքրող ռեսուրսը (օրինակ՝ նույն StatefulSet-ը), ապա դրա համար կհայտնվի համապատասխան տեղեկատվությունը. քանի՞ պատիճ է աշխատում դրանց մասին հակիրճ տեղեկություններով:

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Միայն պատիճները կարող են հետաքրքրել, ապա բավական է մտնել :pod. ConfigMaps-ի դեպքում (:cm - այս ռեսուրսների ցանկի համար դուք կարող եք ընտրել հետաքրքրության օբյեկտը և սեղմել «u»-ի վրա, որից հետո K9-ը ձեզ կասի, թե ով է այն հատուկ օգտագործում (այս CM-ն):

Ռեսուրսները դիտելու մեկ այլ հարմար հատկանիշ նրանցն է «ռենտգեն» (ռենտգեն դիտում). Այս ռեժիմը կոչվում է հրամանով :xray RESOURCE և ... ավելի հեշտ է ցույց տալ, թե ինչպես է դա աշխատում, քան բացատրել: Ահա StatefulSets-ի նկարազարդումը.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար
(Այս ռեսուրսներից յուրաքանչյուրը կարող է խմբագրվել, փոփոխվել, պատրաստվել describe.)

Եվ ահա տեղակայումը Ingress-ով.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Աշխատեք ռեսուրսների հետ

Դուք կարող եք տեղեկատվություն ստանալ YAML-ում կամ դրա յուրաքանչյուր ռեսուրսի մասին describe սեղմելով ստեղնաշարի համապատասխան դյուրանցումները (համապատասխանաբար «y» և «d»): Իհարկե, կան նույնիսկ ավելի հիմնական գործողություններ. դրանց ցուցակը և ստեղնաշարի դյուրանցումները միշտ տեսանելի են ինտերֆեյսի հարմար «վերնագրի» շնորհիվ (թաքնված՝ սեղմելով Ctrl + e):

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Ցանկացած ռեսուրս խմբագրելիս («e» դրա ընտրությունից հետո) բացվում է շրջակա միջավայրի փոփոխականներում սահմանված տեքստային խմբագրիչը (export EDITOR=vim).

Եվ ահա թե ինչ տեսք ունի ռեսուրսի մանրամասն նկարագրությունը (describe):

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Այս ելքը (կամ ռեսուրսի YAML մանիֆեստը դիտելու արդյունքը) կարող է պահպանվել՝ օգտագործելով ծանոթ Ctrl + s ստեղնաշարի դյուրանցումը: Որտեղ այն կպահվի, հայտնի կդառնա K9s հաղորդագրությունից.

Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully!

Դուք կարող եք նաև վերականգնել ռեսուրսները ստեղծված պահուստային ֆայլերից՝ համակարգի պիտակները և ծանոթագրությունները հեռացնելուց հետո: Դա անելու համար դուք պետք է գնաք նրանց հետ գրացուցակ (:dir /tmp), այնուհետև ընտրեք ցանկալի ֆայլը և կիրառեք apply.

Ի դեպ, ցանկացած պահի կարող եք վերադառնալ նախորդ ReplicaSet-ին, եթե ընթացիկի հետ խնդիրներ կան: Դա անելու համար ընտրեք ցանկալի RS (:rs իրենց ցուցակի համար):

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

... և հետ վերադարձնել Ctrl + l-ով: Մենք պետք է ծանուցում ստանանք, որ ամեն ինչ լավ է անցել.

k9s/whoami-5cfbdbb469 successfully rolled back

Եվ կրկնօրինակները մասշտաբավորելու համար պարզապես սեղմեք «s» (սանդղակի) վրա և ընտրեք ցանկալի քանակի օրինակներ.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Կեղևի միջոցով կարող եք մուտքագրել կոնտեյներներից որևէ մեկը. դա անելու համար անցեք ցանկալի պատիճը, սեղմեք «s» (կեղև) և ընտրեք տարան:

Այլ առանձնահատկություններ

Իհարկե, տեղեկամատյանների դիտումը նույնպես աջակցվում է («l» ընտրված ռեսուրսի համար): Իսկ նոր տեղեկամատյանները դիտելու համար կարիք չկա անընդհատ սեղմել Enter. բավական է նշել («m»), այնուհետև հետևել նոր հաղորդագրություններին:

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Նաև նույն պատուհանում կարող եք ընտրել տեղեկամատյանների թողարկման ժամանակային միջակայքը.

  • բանալին «1» - 1 րոպե;
  • «2» - 5 րոպե;
  • «3» - 15 րոպե;
  • «4» - 30 րոպե;
  • «5» - 1 ժամ;
  • «0» - պատիճի ողջ կյանքի ընթացքում:

Հատուկ աշխատանքային ռեժիմ Pulse (հրաման :pulse) ցույց է տալիս ընդհանուր տեղեկություններ Kubernetes կլաստերի մասին.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Դրանում դուք կարող եք տեսնել ռեսուրսների քանակը և դրանց կարգավիճակը (կանաչը ցույց է տալիս կարգավիճակ ունեցողները Running).

K9-ի մեկ այլ հետաքրքիր առանձնահատկություն կոչվում է Popeye. Այն ստուգում է բոլոր ռեսուրսները կոռեկտության որոշակի չափանիշների համար և ցուցադրում է ստացված «վարկանիշը» բացատրություններով։ Օրինակ, դուք կարող եք տեսնել, որ չկան բավարար նմուշներ կամ սահմանափակումներ, և որոշ կոնտեյներ կարող են աշխատել որպես արմատ ...

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Հելմի համար կա հիմնական աջակցություն: Օրինակ, այսպես կարող եք տեսնել կլաստերում տեղակայված թողարկումները.

:helm all # все
:helm $namespace # в конкретном пространстве имен

Հաշվիչ համակարգի արագագործությունը որոշող մեքենայակ. Ծրագիր

Նույնիսկ ներկառուցված K9-ների մեջ հե՜յ պարզ HTTP սերվերի բեռնվածության գեներատոր է, որն այլընտրանք է ավելի հայտնի ab-ին (ApacheBench):

Այն միացնելու համար դուք պետք է միացնեք port-forward-ը պատիճում: Դա անելու համար ընտրեք պատիճը և սեղմեք Shift + f, անցեք port-forward ենթամենյու՝ օգտագործելով «pf» կեղծանունը:

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Նավահանգիստն ընտրելուց և Ctrl + b սեղմելուց հետո հենանիշն ինքնին կսկսվի: Նրա աշխատանքի արդյունքները պահվում են /tmp և հասանելի են K9-ներում ավելի ուշ դիտելու համար:

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար
k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Հենանիշի կոնֆիգուրացիան փոխելու համար անհրաժեշտ է ստեղծել ֆայլ $HOME/.k9s/bench-<my_context>.yml (սահմանված է յուրաքանչյուր կլաստերի համար):

Նշում. Կարևոր է, որ բոլոր YAML ֆայլերի ընդլայնումը գրացուցակում .k9s ճիշտ էր .yml (.yaml ճիշտ չի աշխատում):

Կազմաձևման օրինակ.

benchmarks:
  defaults:
    # Количество потоков
    concurrency: 2
    # Количество запросов
    requests: 1000
  containers:
    # Настройки для контейнера с бенчмарком
    # Контейнер определяется как namespace/pod-name:container-name
    default/nginx:nginx:
      concurrency: 2
      requests: 10000
      http:
        path: /
        method: POST
        body:
          {"foo":"bar"}
        header:
          Accept:
            - text/html
          Content-Type:
            - application/json
 services:
    # Можно проводить бенчмарк на сервисах типа NodePort и LoadBalancer
    # Синтаксис: namespace/service-name
    default/nginx:
      concurrency: 5
      requests: 500
      http:
        method: GET
        path: /auth
      auth:
        user: flant
        password: s3cr3tp455w0rd

ինտերֆեյս

Ռեսուրսների ցուցակների սյունակների տեսքը փոփոխվում է ֆայլ ստեղծելու միջոցով $HOME/.k9s/views.yml. Դրա բովանդակության օրինակ.

k9s:
 views:
   v1/pods:
     columns:
       - AGE
       - NAMESPACE
       - NAME
       - IP
       - NODE
       - STATUS
       - READY
   v1/services:
     columns:
       - AGE
       - NAMESPACE
       - NAME
       - TYPE
       - CLUSTER-IP

Ճիշտ է, պիտակների համար բավարար սյունակ չկա, ինչի համար կա հարցը նախագծում.

Ըստ սյունակների դասակարգումն իրականացվում է ստեղնաշարի դյուրանցումներով.

  • Shift + n - անունով;
  • Shift + o - ըստ հանգույցների;
  • Shift + i - IP-ով;
  • Shift + a - ըստ բեռնարկղի ծառայության ժամկետի;
  • Shift + t - վերագործարկման քանակով;
  • Shift + r - ըստ պատրաստվածության կարգավիճակի;
  • Shift + c - ըստ պրոցեսորի սպառման;
  • Shift + m - ըստ հիշողության սպառման:

Եթե ​​ինչ-որ մեկին դուր չի գալիս լռելյայն գունային սխեման, K9s-ը նույնիսկ աջակցում է երեսվածքները. Առկա են պատրաստի օրինակներ (7 հատ): այստեղ. Ահա այս երեսվածքներից մեկի օրինակը (նավատորմում):

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Plug-ins

Վերջապես, պլագիններ թույլ է տալիս ընդլայնել K9-ների հնարավորությունները: Ես ինքս իմ աշխատանքում օգտագործել եմ դրանցից միայն մեկը. kubectl get all -n $namespace.

Կարծես սա է. Ստեղծեք ֆայլ $HOME/.k9s/plugin.yml այսպիսի բովանդակությամբ.

plugin:
 get-all:
   shortCut: g    
   confirm: false    
   description: get all
   scopes:
   - all
   command: sh
   background: false
   args:
   - -c
   - "kubectl -n $NAMESPACE get all -o wide | less"

Այժմ կարող եք գնալ անվանատարածք և սեղմել «g»՝ համապատասխան հրամանով գործարկելու համար.

k9s-ի ակնարկ՝ առաջադեմ տերմինալային միջերես Kubernetes-ի համար

Փլագինների շարքում կան, օրինակ, ինտեգրումներ kubectl-jq-ի հետ և տեղեկամատյանները դիտելու օգտակար ծրագիր ուժեղ.

Ամփոփում

Իմ ճաշակի համար K9-ները շատ հարմար են աշխատելու համար. առանց օգտագործելու կարող ես արագ ընտելանալ փնտրելու այն ամենը, ինչ անհրաժեշտ է: kubectl. Ինձ գոհացրեց տեղեկամատյանների տեսքը և դրանց խնայողությունը, ռեսուրսների արագ խմբագրումը, ընդհանուր առմամբ աշխատանքի արագությունը *, Popeye ռեժիմը պարզվեց, որ օգտակար է: Հատուկ հիշատակում է պլագիններ ստեղծելու և ձեր կարիքներին համապատասխան հավելվածը փոփոխելու ունակությունը:

* Չնայած տեղեկամատյանների մեծ ծավալով ես նկատեցի նաև K9-ների դանդաղ աշխատանքը։ Նման պահերին կոմունալը «կերավ» 2 միջուկ Intel Xeon E312xx-ից և կարող էր նույնիսկ սառչել։

Ի՞նչն է պակասում այս պահին։ Արագ վերադարձ նախորդ տարբերակին (խոսքը RS-ի մասին չէ)՝ առանց գրացուցակ գնալու։ Բացի այդ, վերականգնումը տեղի է ունենում միայն միայն ռեսուրս. եթե դուք ջնջում եք անոտացիա կամ պիտակ, դուք ստիպված կլինեք ջնջել և վերականգնել ամբողջ ռեսուրսը (այստեղ դուք պետք է գնաք գրացուցակ): Մեկ այլ մանրուք. այդպիսի պահված «պահուստավորման» համար բավարար ամսաթիվ չկա:

PS

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

Source: www.habr.com

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