Overview ye k9s - yepamberi terminal interface yeKubernetes

Overview ye k9s - yepamberi terminal interface yeKubernetes

K9s inopa terminal mushandisi interface yekudyidzana neKubernetes masumbu. Chinangwa cheiyi Open Source purojekiti kuita kuti zvive nyore kufamba, kutarisa, uye kubata maapplication muK8s. K9s inogara ichitarisa shanduko muKubernetes uye inopa nekukurumidza mirairo yekushanda nezviwanikwa zvinotariswa.

Iyo purojekiti yakanyorwa muGo uye yave iripo kweanopfuura gore nehafu: yekutanga kuzvipira yakaitwa muna Kukadzi 1, 2019. Panguva yekunyora, pane 9000+ nyeredzi pa GitHub uye vanenge 80 vatsigiri. Ngatione kuti k9s inogona kuitei?

Kuisa uye kutanga

Uyu mutengi (maererano neKubernetes cluster) application iri nyore kumhanya seDocker mufananidzo:

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

Kune mamwe maLinux kugovera uye mamwe masisitimu anoshanda, kune zvakare akagadzirira-kuisa mapakeji. Kazhinji, yeLinux masisitimu, unogona kuisa binary faira:

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

Iko hakuna chaiyo inodiwa yeK8s cluster pachayo. Tichifunga nezve wongororo, chishandiso chinoshandawo neshanduro dzekare dzeKubernetes senge 1.12.

Iyo application inotangwa uchishandisa yakajairwa config .kube/config - zvakafanana nezvainoita kubectl.

Navigation

Nekumisikidza, hwindo rinovhurika rine default namespace yakatsanangurwa kune iyo mamiriro. Kureva, kana iwe wakanyora kubectl config set-context --current --namespace=test, ipapo nzvimbo yezita ichavhurwa test. (Ona pazasi pekuchinja mamiriro / nzvimbo dzezita.)

Overview ye k9s - yepamberi terminal interface yeKubernetes

Enda ku command mode inoitwa nekudzvanya ":". Mushure meizvozvo, unogona kudzora kushanda kwek9s uchishandisa mirairo - semuenzaniso, kuona iyo rondedzero yeStatefulSets (mune yazvino namespace), unogona kupinda. :sts.

Overview ye k9s - yepamberi terminal interface yeKubernetes

Kune zvimwe zviwanikwa zveKubernetes:

  • :ns - nzvimbo dzezita;
  • :deploy - Deployments;
  • :ing - Ingresses;
  • :svc - mabasa.

Kuti uratidze runyoro rwakakwana rwemhando dzezvishandiso zviripo zvekuona, pane murairo :aliases.

Izvo zvakare zviri nyore kuona rondedzero yemirairo inowanikwa nekupisa kiyi musanganiswa mukati mehwindo razvino: kuita izvi, ingobaya pa "?".

Overview ye k9s - yepamberi terminal interface yeKubernetes

Zvakare mu k9s mune kutsvaga maitiro, kuenda kwairi zvakakwana kupinda "/". Nayo, kutsvaga kunoitwa pane zviri mukati "hwindo" razvino. Ngatitii kana wakambopinda :ns, une runyoro rwemazita akavhurwa. Kana pane zvakawanda zvadzo, saka kuitira kuti urege kupfuurira pasi kwenguva yakareba, zvakakwana kupinda muhwindo nemazita emazita. /mynamespace.

Kutsvaga nemazita, unogona kusarudza ese mapodhi munzvimbo yaunoda mazita, wobva wapinda, semuenzaniso, / -l app=whoami. Tichawana rondedzero yemapods ane label iyi:

Overview ye k9s - yepamberi terminal interface yeKubernetes

Kutsvaga kunoshanda mumhando dzese dzemahwindo, kusanganisira matanda, kuona YAML inoratidzira, uye describe kune zviwanikwa - ona pazasi kuti uwane rumwe ruzivo nezve aya maficha.

Ko kuyerera kwese kwese kunotaridzika sei?

Nemurairo :ctx unogona kusarudza mamiriro:

Overview ye k9s - yepamberi terminal interface yeKubernetes

Kusarudza nzvimbo yezita, pane murairo watotaurwa :ns, uye ipapo unogona kushandisa kutsvaga kwenzvimbo yaunoda: /test.

Kana isu tasarudza ikozvino sosi yatiri kufarira (semuenzaniso, iyo yakafanana StatefulSet), iyo inoenderana ruzivo ichaonekwa kune iyo: mangani mapodhi ari kumhanya aine ruzivo rupfupi pamusoro pavo.

Overview ye k9s - yepamberi terminal interface yeKubernetes

Mapodhi chete anogona kufarira - saka zvakakwana kupinda :pod. Kana iri ConfigMaps (:cm - kune rondedzero yezviwanikwa izvi), unogona kusarudza chinhu chaunofarira uye tinya pa "u", mushure mezvo K9s ichakuudza kuti ndiani anonyatsoishandisa (iyi CM).

Chimwe chinhu chinobatsira chekuona zviwanikwa ndezvavo "X-ray" (Xray maonero). Iyi modhi inodanwa nemurairo :xray RESOURCE uye ... zviri nyore kuratidza kuti zvinoshanda sei pane kutsanangura. Heino mufananidzo weStatefulSets:

Overview ye k9s - yepamberi terminal interface yeKubernetes
(Imwe neimwe yezviwanikwa izvi inogona kugadziridzwa, kuchinjwa, kuitwa describe.)

Uye heino Deployment neIngress:

Overview ye k9s - yepamberi terminal interface yeKubernetes

Kushanda nezviwanikwa

Iwe unogona kuwana ruzivo nezve yega yega sosi muYAML kana yayo describe nekudzvanya anoenderana mapfupi ekhibhodi ("y" uye "d", zvichiteerana). Ehezve, kune zvakatonyanya mashandiro ekutanga: rondedzero yavo uye mapfupi ekhibhodi anogara achionekwa nekuda kwe "musoro" wakanakira mune interface (yakavanzwa nekudzvanya Ctrl + e).

Overview ye k9s - yepamberi terminal interface yeKubernetes

Paunenge uchigadzirisa chero sosi ("e" mushure mekusarudza kwayo), iwo mameseji edhita anotsanangurwa munzvimbo dzakasiyana-siyana anovhurwa (export EDITOR=vim).

Uye hezvino izvo kutsanangurwa kwakadzama kweiyo sosi kunoratidzika (describe):

Overview ye k9s - yepamberi terminal interface yeKubernetes

Izvi zvinobuda (kana kuburitsa kwekuona iyo YAML sosi kuratidza) inogona kuchengetedzwa uchishandisa yakajairika keyboard nzira Ctrl + s. Kwaichachengeterwa ichazivikanwa kubva kune K9s meseji:

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

Iwe unogona zvakare kudzoreredza zviwanikwa kubva kune akagadzirwa mafaera ekuchengetedza, mushure mekubvisa masisitimu mavara uye zvirevo. Kuti uite izvi, unofanirwa kuenda kune dhairekitori navo (:dir /tmp), wobva wasarudza faira raunoda woisa apply.

Nenzira, chero nguva iwe unogona kudzoreredza kune yakapfuura ReplicaSet kana paine matambudziko neazvino. Kuti uite izvi, sarudza yaunoda RS (:rs kune yavo rondedzero):

Overview ye k9s - yepamberi terminal interface yeKubernetes

... uye kudzoreredza neCtrl + l. Isu tinofanirwa kuwana chiziviso chekuti zvese zvakafamba zvakanaka:

k9s/whoami-5cfbdbb469 successfully rolled back

Uye kuyera replicas, ingobaya pa "s" (chiyero) uye sarudza nhamba yaunoda yezviitiko:

Overview ye k9s - yepamberi terminal interface yeKubernetes

Iwe unogona kupinda chero yemidziyo uchishandisa goko: kuti uite izvi, enda kune yaunoda pod, tinya pa "s" (shell) uye sarudza mudziyo.

Zvimwe zvinhu

Ehe, kuona matanda zvakare kunotsigirwa ("l" kune yakasarudzwa sosi). Uye kuti utarise matanda matsva, hapana chikonzero chekugara uchidzvanya Enter: zvakakwana kumaka ("m"), uye wozotevera chete mameseji matsva.

Overview ye k9s - yepamberi terminal interface yeKubernetes

Zvakare muhwindo rimwe chete, unogona kusarudza nguva yenguva yekubuda kwematanda:

  • kiyi "1" - kweminiti 1;
  • "2" - 5 maminitsi;
  • "3" - 15 maminitsi;
  • "4" - 30 maminitsi;
  • "5" - 1 awa;
  • "0" - kwehupenyu hwose hwepodhi.

Yakakosha yekushandisa mode Pulse (command :pulse) inoratidza ruzivo rwakakwana nezve Kubernetes cluster:

Overview ye k9s - yepamberi terminal interface yeKubernetes

Mariri iwe unogona kuona huwandu hwezviwanikwa uye chimiro chavo (girinhi inoratidza avo vane chimiro Running).

Chimwe chinotonhorera chimiro cheK9s chinonzi Popeye. Inotarisa zvese zviwanikwa kune mamwe maitiro ekurongeka uye inoratidza mhedzisiro "rating" ine tsananguro. Semuenzaniso, iwe unogona kuona kuti hapana akakwana samples kana miganhu, uye imwe mudziyo inogona kumhanya semudzi ...

Overview ye k9s - yepamberi terminal interface yeKubernetes

Pane tsigiro yakakosha yeHelm. Semuenzaniso, iyi ndiyo nzira yaunoona kuburitswa kwakaiswa musumbu:

:helm all # всС
:helm $namespace # Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½

chiero

Kunyange yakavakwa muK9s Hey iri nyore HTTP server mutoro jenareta, imwe nzira kune inozivikanwa zvirinani ab (ApacheBench).

Kuti uigonese, unofanirwa kugonesa port-mberi mune pod. Kuti uite izvi, sarudza podhi uye wodzvanya Shift + f, enda kune iyo port-mberi submenu uchishandisa "pf" alias.

Overview ye k9s - yepamberi terminal interface yeKubernetes

Mushure mekusarudza chiteshi uye kudzvanya Ctrl + b, iyo bhenji pachayo ichatanga. Migumisiro yebasa rake inochengetwa mukati /tmp uye anowanikwa kuti aonekwe gare gare muK9s.

Overview ye k9s - yepamberi terminal interface yeKubernetes
Overview ye k9s - yepamberi terminal interface yeKubernetes

Kuti uchinje kugadzirisa kwebhenji, unofanirwa kugadzira faira $HOME/.k9s/bench-<my_context>.yml (yakatemerwa sumbu rega rega).

NB: Izvo zvakakosha kuti kuwedzeredzwa kwemafaira ese YAML mudhairekitori .k9s zvaiva chaizvo .yml (.yaml haina kushanda nemazvo).

Configuration muenzaniso:

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

inowanikwa

Kuonekwa kwemakoramu emazita ezviwanikwa anogadziriswa nekugadzira faira $HOME/.k9s/views.yml. Muenzaniso wezvirimo:

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

Ichokwadi, hapana koramu yakakwana yezvinyorwa, izvo zviripo nyaya muprojekiti.

Kuronga nemakoramu kunoitwa nezvipfupi zve keyboard:

  • Shift + n - nezita;
  • Shift + o - nemanodhi;
  • Shift + i - neIP;
  • Shift + a - nehupenyu hwese mudziyo;
  • Shift + t - nehuwandu hwekutangazve;
  • Shift + r - nemamiriro ekugadzirira;
  • Shift + c - neCPU kushandiswa;
  • Shift + m - nekushandisa ndangariro.

Kana mumwe munhu asingadi iyo default color scheme, K9s inototsigira matehwe. Yakagadzirirwa-yakagadzirwa mienzaniso (7 zvidimbu) zviripo pano. Heino muenzaniso weimwe yematehwe aya (muuto regungwa):

Overview ye k9s - yepamberi terminal interface yeKubernetes

Mapulagi

Pakupedzisira plugins kubvumira kuti uwedzere kugona kweK9s. Ini pachangu ndakashandisa imwe chete yadzo mubasa rangu - kubectl get all -n $namespace.

Zvinoita seizvi. Gadzira faira $HOME/.k9s/plugin.yml nezvirimo sezvizvi:

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"

Iye zvino unogona kuenda kunzvimbo yezita uye wodzvanya "g" kuita nemirairo inoenderana:

Overview ye k9s - yepamberi terminal interface yeKubernetes

Pakati pemapulagi pane, semuenzaniso, kubatanidzwa ne kubectl-jq uye chishandiso chekuona matanda. stern.

mhedziso

Nekuravira kwangu, K9s yakave yakanakira kushanda nayo: unogona kukurumidza kujaira kutsvaga zvese zvaunoda usingazvishandise. kubectl. Ndakafadzwa nekuona kwematanda uye kuchengetedza kwavo, kukurumidza kugadzirisa zviwanikwa, kukurumidza kwebasa mune zvese *, iyo Popeye mode yakave inobatsira. Kunyanya kutaurwa ndiko kugona kugadzira plugins uye kugadzirisa iyo application kuti ikwane zvaunoda.

* Kunyange zvazvo, nehuwandu hwematanda, ndakaonawo kushanda zvishoma nezvishoma kweK9s. Panguva dzakadai, iyo yekushandisa "yakadya" 2 cores kubva kuIntel Xeon E312xx uye inogona kutoomesa.

Chii chiri kushaikwa panguva ino? Kurumidza kudzoreredza kune yakapfuura vhezheni (hatisi kutaura nezveRS) tisina kuenda kune dhairekitori. Mukuwedzera, kupora kunoitika chete chizere resource: kana iwe ukadzima annotation kana label, iwe uchafanirwa kudzima uye kudzoreredza iyo yese sosi (apa ndipo paunoda kuenda kune dhairekitori). Chimwe chidiki - hapana zuva rakakwana re "backups" dzakachengetwa dzakadaro.

PS

Verenga zvakare pablog yedu:

Source: www.habr.com

Voeg