Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

K9s býður upp á notendaviðmót flugstöðvar til að hafa samskipti við Kubernetes klasa. Markmiðið með þessu Open Source verkefni er að gera það auðvelt að sigla, fylgjast með og stjórna forritum í K8s. K9s fylgist stöðugt með breytingum á Kubernetes og býður upp á skjótar skipanir til að vinna með vöktuðum auðlindum.

Verkefnið er skrifað í Go og hefur staðið yfir í meira en eitt og hálft ár: fyrsta skuldbindingin var gerð 1. febrúar 2019. Þegar þetta er skrifað eru 9000+ stjörnur á GitHub og um 80 þátttakendur. Við skulum sjá hvað k9s geta gert?

Uppsetning og gangsetning

Þetta er viðskiptavinur (í tengslum við Kubernetes klasann) forrit sem er auðveldast að keyra sem Docker mynd:

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

Fyrir sumar Linux dreifingar og önnur stýrikerfi eru líka tilbúnar til uppsetningar pakka. Almennt, fyrir Linux kerfi, geturðu sett upp tvöfalda skrá:

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

Það eru engar sérstakar kröfur fyrir K8s klasann sjálfan. Af umsögnum að dæma virkar forritið einnig með eldri útgáfum af Kubernetes eins og 1.12.

Forritið er ræst með því að nota staðlaða stillingu .kube/config - svipað og það gerir kubectl.

Leiðsögn

Sjálfgefið er að gluggi opnast með sjálfgefnu nafnrými sem tilgreint er fyrir samhengið. Það er að segja ef þú skrifaðir kubectl config set-context --current --namespace=test, þá opnast nafnrýmið test. (Sjá hér að neðan til að breyta samhengi/nafnarýmum.)

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Fara til stjórnunarhamur er gert með því að ýta á ":". Eftir það geturðu stjórnað rekstri k9s með því að nota skipanir - til dæmis, til að skoða listann yfir StatefulSets (í núverandi nafnrými), geturðu slegið inn :sts.

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Fyrir sum önnur Kubernetes tilföng:

  • :ns — nafnarými;
  • :deploy — Dreifingar;
  • :ing — Inngangur;
  • :svc - Þjónusta.

Til að birta heildarlista yfir auðlindategundir sem hægt er að skoða er skipun :aliases.

Það er líka þægilegt að skoða listann yfir skipanir sem eru tiltækar með flýtilyklum innan núverandi glugga: til að gera þetta, smelltu bara á "?".

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Einnig í k9s er til leitarhamur, til að fara þangað sem það er nóg að slá inn "/". Með því er leitað að innihaldi núverandi "glugga". Segjum að þú hafir áður slegið inn :ns, þú ert með opinn lista yfir nafnrými. Ef þeir eru of margir, þá er nóg að slá inn í gluggann með nafnasvæðum til að fletta ekki niður í langan tíma /mynamespace.

Til að leita eftir merkjum geturðu valið alla belg í nafnrýminu sem þú vilt, sláðu síðan inn td. / -l app=whoami. Við munum fá lista yfir belg með þessu merki:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Leitin virkar í alls kyns gluggum, þar á meðal logs, skoða YAML upplýsingaskrá og describe fyrir auðlindir - sjá hér að neðan til að fá frekari upplýsingar um þessa eiginleika.

Hvernig lítur leiðsöguflæðið út í heild?

Með skipuninni :ctx þú getur valið samhengi:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Til að velja nafnrými er skipunin sem þegar hefur verið nefnd :ns, og þá geturðu notað leitina að viðkomandi svæði: /test.

Ef við veljum núna auðlindina sem við höfum áhuga á (til dæmis sama StatefulSet), munu samsvarandi upplýsingar birtast fyrir það: hversu margir belg eru í gangi með stuttum upplýsingum um þá.

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Einungis belg geta verið áhugaverð - þá er nóg að slá inn :pod. Ef um er að ræða ConfigMaps (:cm - fyrir listann yfir þessar auðlindir) geturðu valið áhugaverðan hlut og smellt á "u", eftir það mun K9s segja þér hver notar það sérstaklega (þetta CM).

Annar handhægur eiginleiki til að skoða auðlindir er þeirra "röntgengeisli" (röntgenmynd). Þessi háttur er kallaður af skipuninni :xray RESOURCE og ... það er auðveldara að sýna hvernig það virkar en að útskýra. Hér er mynd fyrir StatefulSets:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes
(Hægt er að breyta, breyta, búa til hverja þessara auðlinda describe.)

Og hér er Dreifing með Ingress:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Vinna með auðlindir

Þú getur fengið upplýsingar um hverja auðlind í YAML eða þess describe með því að ýta á samsvarandi flýtilykla („y“ og „d“ í sömu röð). Auðvitað eru enn fleiri grunnaðgerðir: listi þeirra og flýtilykla eru alltaf sýnilegir þökk sé þægilegum „haus“ í viðmótinu (falinn með því að ýta á Ctrl + e).

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Þegar þú breytir hvaða tilföng sem er ("e" eftir val þess) opnast textaritillinn sem er skilgreindur í umhverfisbreytunum (export EDITOR=vim).

Og hér er hvernig nákvæm lýsing á auðlindinni lítur út (describe):

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Þetta úttak (eða úttakið við að skoða YAML auðlindaskrána) er hægt að vista með því að nota kunnuglega flýtilykla Ctrl + s. Hvar það verður vistað verður vitað af K9s skilaboðunum:

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

Þú getur líka endurheimt tilföng úr tilbúnum öryggisafritsskrám, eftir að hafa fjarlægt kerfismerki og athugasemdir. Til að gera þetta þarftu að fara í möppuna með þeim (:dir /tmp), veldu síðan viðeigandi skrá og notaðu apply.

Við the vegur, hvenær sem er geturðu snúið aftur í fyrra ReplicaSet ef það eru vandamál með núverandi. Til að gera þetta skaltu velja viðeigandi RS (:rs fyrir lista þeirra):

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

... og afturkalla með Ctrl + l. Við ættum að fá tilkynningu um að allt hafi gengið vel:

k9s/whoami-5cfbdbb469 successfully rolled back

Og til að skala eftirlíkingarnar, smelltu bara á "s" (kvarða) og veldu þann fjölda tilvika sem þú vilt:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Þú getur slegið inn hvaða ílát sem er með skelinni: til að gera þetta, farðu í viðkomandi belg, smelltu á "s" (skel) og veldu ílátið.

Aðrir eiginleikar

Auðvitað er einnig stutt við að skoða logs ("l" fyrir valið tilfang). Og til að horfa á nýjar annálar er engin þörf á að ýta stöðugt á Enter: það er nóg að merkja við („m“) og þá bara fylgjast með nýjum skilaboðum.

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Einnig í sama glugga geturðu valið tímabil fyrir framleiðslu annála:

  • lykill "1" - í 1 mínútu;
  • "2" - 5 mínútur;
  • "3" - 15 mínútur;
  • "4" - 30 mínútur;
  • "5" - 1 klukkustund;
  • "0" - fyrir allan líftíma belgsins.

Sérstakur notkunarhamur Púls (skipun :pulse) sýnir almennar upplýsingar um Kubernetes klasann:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Í henni er hægt að sjá fjölda auðlinda og stöðu þeirra (grænn sýnir þær sem hafa stöðuna Running).

Annar flottur eiginleiki K9s er kallaður Popeye. Það athugar öll tilföng fyrir tiltekin viðmið um réttmæti og sýnir „einkunn“ sem myndast með útskýringum. Til dæmis geturðu séð að það eru ekki næg sýni eða takmörk, og einhver ílát getur keyrt sem rót ...

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Það er grunnstuðningur fyrir Helm. Til dæmis, þetta er hvernig þú getur séð útgáfurnar sem eru notaðar í klasanum:

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

Kvóti

Jafnvel innbyggður í K9s hey er einfaldur HTTP netþjónn hlaða rafall, valkostur við betur þekkt ab (ApacheBench).

Til að virkja það þarftu að virkja port-forward í belgnum. Til að gera þetta, veldu hólfið og ýttu á Shift + f, farðu í port-forward undirvalmyndina með því að nota "pf" samnefni.

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Eftir að gáttin hefur verið valin og ýtt á Ctrl + b byrjar sjálft viðmiðið. Afrakstur vinnu hans er geymdur í /tmp og er hægt að skoða síðar í K9s.

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes
Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Til að breyta uppsetningu viðmiðunar þarftu að búa til skrá $HOME/.k9s/bench-<my_context>.yml (ákvarðað fyrir hvern klasa).

ATH: Það er mikilvægt að framlenging á öllum YAML skrám í möppu .k9s það var einmitt .yml (.yaml virkar ekki rétt).

Dæmi um stillingar:

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

tengi

Útliti dálka fyrir lista yfir tilföng er breytt með því að búa til skrá $HOME/.k9s/views.yml. Dæmi um innihald þess:

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

Að vísu er ekki nægur dálkur fyrir merki, sem það er fyrir mál í verkefninu.

Flokkun eftir dálkum fer fram með flýtilykla:

  • Shift + n - eftir nafni;
  • Shift + o - eftir hnútum;
  • Shift + i - eftir IP;
  • Shift + a - eftir líftíma ílátsins;
  • Shift + t - með fjölda endurræsinga;
  • Shift + r - eftir viðbúnaðarstöðu;
  • Shift + c - eftir CPU neyslu;
  • Shift + m - eftir minnisnotkun.

Ef einhverjum líkar ekki sjálfgefna litasamsetningin styður K9s jafnvel skinn. Tilbúin dæmi (7 stykki) eru fáanleg hér. Hér er dæmi um eitt af þessum skinnum (í sjóhernum):

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Viðbætur

Að lokum er viðbætur leyfa þér að auka getu K9s. Sjálfur hef ég aðeins notað eina þeirra í starfi mínu - kubectl get all -n $namespace.

Þetta lítur svona út. Búðu til skrá $HOME/.k9s/plugin.yml með efni eins og þessu:

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"

Nú geturðu farið í nafnrýmið og ýtt á "g" til að framkvæma með samsvarandi skipun:

Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes

Meðal viðbóta eru til dæmis samþættingar við kubectl-jq og tól til að skoða logs strengur.

Ályktun

Fyrir minn smekk reyndist K9s mjög þægilegt að vinna með: þú getur fljótt vanist því að leita að öllu sem þú þarft án þess að nota það. kubectl. Ég var ánægður með útsýni yfir annálana og vistun þeirra, fljótleg breyting á auðlindum, vinnuhraða almennt *, Popeye-stillingin reyndist gagnleg. Sérstaklega er minnst á hæfileikann til að búa til viðbætur og breyta forritinu að þínum þörfum.

* Þótt ég hafi tekið eftir hægum rekstri K9s með mikið magn af stokkum. Á slíkum augnablikum „át“ tólið 2 kjarna úr Intel Xeon E312xx og gæti jafnvel frosið.

Hvað vantar í augnablikinu? Fljótleg afturför í fyrri útgáfu (við erum ekki að tala um RS) án þess að fara í möppuna. Að auki á sér stað bati aðeins fyrir aðeins tilföng: ef þú eyðir athugasemd eða merki, verður þú að eyða og endurheimta allt tilfangið (þetta er þar sem þú þarft að fara í möppuna). Annað smáræði - það er ekki næg dagsetning fyrir slíkar vistaðar "afrit".

PS

Lestu líka á blogginu okkar:

Heimild: www.habr.com

Bæta við athugasemd