Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

K9s inikeza ujongano lomsebenzisi wesiphelo sokusebenzisana neKubernetes amaqela. Injongo yale projekthi yoMthombo oVulekileyo kukwenza kube lula ukuzulazula, ukubeka esweni, nokulawula usetyenziso kwii-K8s. I-K9s ihlala ibeka esweni utshintsho kwi-Kubernetes kwaye inikezela ngemiyalelo ekhawulezayo yokusebenza ngezixhobo ezibekwe esweni.

Iprojekthi ibhalwe kwi-Go kwaye sele ikhona ngaphezu konyaka onesiqingatha: isibophelelo sokuqala senziwe ngoFebruwari 1, 2019. Ngexesha lokubhalwa, kukho i-9000+ yeenkwenkwezi GitHub kunye nabaxhasi abamalunga nama-80. Makhe sibone ukuba iik9s zinokwenza ntoni?

Ukufakela kunye nokuqaliswa

Lo ngumxhasi (ngokunxulumene neqela leKubernetes) isicelo esisebenza ngokulula njengomfanekiso weDocker:

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

Kwezinye izinikezelo zeLinux kunye nezinye iinkqubo zokusebenza, zikwakhona zilungele ukuhlohla iiphakheji. Ngokubanzi, kwiinkqubo zeLinux, ungafaka ifayile yokubini:

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

Akukho zimfuneko zithile zeqela le-K8s ngokwalo. Ukujonga ngophononongo, isicelo sikwasebenza kunye neenguqulelo ezindala zeKubernetes ezinje nge-1.12.

Isicelo siqaliswa kusetyenziswa uqwalaselo oluqhelekileyo .kube/config - iyafana nendlela esenza ngayo kubectl.

Ukuhambahamba

Ngokungagqibekanga, iwindow ivula ngesithuba samagama esingagqibekanga esikhankanyiweyo kumxholo. Oko kukuthi, ukuba ubhale kubectl config set-context --current --namespace=test, emva koko isithuba samagama siya kuvuleka test. (Jonga ngezantsi ukuze utshintshe iimeko/izithuba zamagama.)

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Yiya e imo yomyalelo yenziwa ngokucofa ":". Emva koko, unokulawula ukusebenza kwee-k9s usebenzisa imiyalelo-umzekelo, ukujonga uluhlu lwe-StatefulSets (kwisithuba samagama sangoku), ungangena. :sts.

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Ukufumana ezinye izixhobo zeKubernetes:

  • :ns - izithuba zamagama;
  • :deploy - Ukusasazwa;
  • :ing - Ingresses;
  • :svc - iinkonzo.

Ukubonisa uluhlu olupheleleyo lweentlobo zemithombo ekhoyo yokujongwa, kukho umyalelo :aliases.

Kukwafanelekile ukujonga uluhlu lwemiyalelo ekhoyo ngokudibanisa izitshixo ezishushu ngaphakathi kwefestile yangoku: ukwenza oku, nqakraza nje ku "?".

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Kwakhona kwiik9s kukho indlela yokukhangela, ukuya apho kwanele ukungena "/". Ngayo, uphando lwenziwa kwimixholo ye "window" yangoku. Masithi ukuba ubufakile ngaphambili :ns, unoluhlu lwezithuba zamagama ezivuliweyo. Ukuba zininzi kakhulu, ngoko ukuze ungakroli phantsi ixesha elide, kwanele ukungena kwifestile ngezithuba zamagama. /mynamespace.

Ukukhangela ngeelebhile, ungakhetha zonke iipods kwindawo efunwayo yamagama, emva koko ngenisa, umzekelo, / -l app=whoami. Siza kufumana uluhlu lwee-pods ezinelebula:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Uphendlo lusebenza kuzo zonke iintlobo zeefestile, ukuquka iilog, ukujonga i-YAML ibonakalisa, kunye describe ngezibonelelo - bona ngezantsi ngeenkcukacha ezithe vetshe kwezi mpawu.

Ingaba ijongeka njani indlela yokukhangela xa iyonke?

Ngomyalelo :ctx ungakhetha umxholo:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Ukukhetha isithuba segama, kukho umyalelo osele ukhankanyiwe :ns, kwaye emva koko ungasebenzisa uphendlo lwesithuba esifunekayo: /test.

Ukuba ngoku sikhetha isibonelelo esinomdla kuyo (umzekelo, i-StatefulSet efanayo), ulwazi oluhambelanayo luya kuvela kuyo: zingaphi iipods ezisebenzayo kunye nolwazi olufutshane malunga nabo.

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Iipods kuphela ezinokuba nomdla - ngoko kwanele ukungena :pod. Kwimeko yeConfigMaps (:cm - kuluhlu lwezi zixhobo), ungakhetha into enomdla kwaye ucofe ku "u", emva koko i-K9s iya kukuxelela ukuba ngubani oyisebenzisayo ngokuthe ngqo (le CM).

Olunye uphawu oluluncedo lokujonga izixhobo zabo "x-reyi" (umbono weXray). Le ndlela ibizwa ngokuba ngumyalelo :xray RESOURCE kwaye ... kulula ukubonisa indlela esebenza ngayo kunokucacisa. Nanku umzekeliso weStatefulSets:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes
(Nganye kwezi zixhobo zinokuhlelwa, zitshintshwe, zenziwe describe.)

Kwaye nantsi ukuhanjiswa nge-Ingress:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Ukusebenza ngezibonelelo

Ungafumana ulwazi malunga nesixhobo ngasinye kwi-YAML okanye kuyo describe ngokucinezela iindlela ezimfutshane ezihambelanayo (β€œy” kunye β€œd”, ngokulandelelanayo). Ewe kunjalo, kukho imisebenzi esisiseko ngakumbi: uluhlu lwazo kunye neendlela ezimfutshane zebhodi yezitshixo zihlala zibonakala ngokubulela "kwisihloko" esifanelekileyo kwi-interface (efihliweyo ngokucinezela Ctrl + e).

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Xa uhlela nawuphi na uvimba ("e" emva kokukhethwa kwawo), umhleli wokubhaliweyo ochazwe kwimeko-bume eguquguqukayo uyavulwa.export EDITOR=vim).

Kwaye nantsi indlela inkcazo eneenkcukacha yomthombo ibonakala njani (describe):

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Le mveliso (okanye imveliso yokubonisela imbonakalo yesixhobo ye-YAML) ingagcinwa kusetyenziswa indlela emfutshane yebhodi yezitshixo eqhelekileyo Ctrl + s. Apho iya kugcinwa khona iya kwaziwa kumyalezo we-K9s:

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

Unako kwakhona ukubuyisela izibonelelo kwiifayile ezigciniweyo ezenziweyo, emva kokususa iilebhile zenkqubo kunye nezichasiselo. Ukwenza oku, kufuneka uye kulawulo nabo (:dir /tmp), emva koko ukhethe ifayile oyifunayo kwaye usebenzise apply.

Ngendlela, nangaliphi na ixesha ungabuyela umva kwiReplicaSet yangaphambili ukuba kukho iingxaki ngale yangoku. Ukwenza oku, khetha i-RS efunekayo (:rs kuluhlu lwabo):

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

... kwaye ubuyisele umva ngeCtrl + l. Kufuneka sifumane isaziso sokuba yonke into ihambe kakuhle:

k9s/whoami-5cfbdbb469 successfully rolled back

Kwaye ukukala iireplicas, nqakraza nje kwi "s" (isikali) kwaye ukhethe inani elifunekayo lemizekelo:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Ungangena naziphi na izitya usebenzisa igobolondo: ukwenza oku, yiya kwipod oyifunayo, nqakraza kwi "s" (igobolondo) kwaye ukhethe isitya.

Ezinye iimpawu

Ewe, iilog zokujonga zikwaxhaswa ("l" kumthombo okhethiweyo). Kwaye ukuze ubukele iilogi ezintsha, akukho mfuneko yokucofa rhoqo u-Enter: kwanele ukuphawula ("m"), kwaye emva koko ulandele imiyalezo emitsha kuphela.

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Kwakwifestile enye, ungakhetha uluhlu lwexesha lemveliso yelog:

  • isitshixo "1" - ngomzuzu omnye;
  • "2" - 5 imizuzu;
  • "3" - 15 imizuzu;
  • "4" - 30 imizuzu;
  • "5" - 1 iyure;
  • "0" - kubo bonke ubomi bepod.

Imo yokusebenza ekhethekileyo Pulse (umyalelo :pulse) ibonisa ulwazi jikelele malunga neqela leKubernetes:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Kuyo ungabona inani lezibonelelo kunye nesimo sazo (okuluhlaza kubonisa abo banesimo Running).

Olunye uphawu olupholileyo lwe-K9s lubizwa ngokuba Popeye. Ijonga zonke izibonelelo kwiikhrayitheriya ezithile zokuchaneka kwaye ibonise iziphumo "zokulinganisa" kunye neengcaciso. Umzekelo, uyabona ukuba akukho sampuli zaneleyo okanye imida, kwaye esinye isikhongozeli sinokusebenza njengengcambu ...

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Kukho inkxaso yeHelm esisiseko. Umzekelo, nantsi indlela onokubona ngayo ukhupho lubekwe kwiqela:

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

Benchmark

Kwakhiwe kwiiK9s Hey yinto elula ye-HTTP yokulayisha umncedisi we-generator, enye indlela eyaziwa ngcono kwi-ab (ApacheBench).

Ukuze uyenze, kufuneka uvule izibuko-phambili kwipod. Ukwenza oku, khetha i-pod kwaye ucinezele i-Shift + f, yiya kwi-port-forward submenu usebenzisa i-alias "pf".

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Emva kokukhetha izibuko kunye nokucofa i-Ctrl + b, ibhentshi ngokwayo iya kuqala. Iziphumo zomsebenzi wakhe zigcinwe ngaphakathi /tmp kwaye ziyafumaneka ukuze zijongwe kamva kwii-K9s.

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes
Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Ukutshintsha uqwalaselo lwebenchmark, kufuneka wenze ifayile $HOME/.k9s/bench-<my_context>.yml (imiselwe kwiqela ngalinye).

QAPHELA: Kubalulekile ukuba ukwandiswa kwazo zonke iifayile ze-YAML kuluhlu .k9s yayinjalo kanye .yml (.yaml ayisebenzi kakuhle).

Umzekelo woqwalaselo:

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

ujongano

Inkangeleko yeentsika zoluhlu lwemithombo ilungiswa ngokudala ifayile $HOME/.k9s/views.yml. Umzekelo womxholo wayo:

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

Enyanisweni, akukho kholamu yaneleyo yeelebhile, ekhoyo ukukhutshwa kwiprojekthi.

Ukuhlela ngokwezintlu kwenziwa ngondlela-mfutshane:

  • Shift + n - ngegama;
  • Shift + o - ngamaqhuqhuva;
  • Shift + i - nge-IP;
  • Shift + a - ngexesha lokuphila kwesikhongozeli;
  • Shift + t - ngenani lokuqalisa kwakhona;
  • Shift + r - ngesimo sokulungela;
  • Shift + c - ngokusetyenziswa kwe-CPU;
  • Shift + m - ngokusetyenziswa kwememori.

Ukuba umntu akaluthandi udweliso lombala olungagqibekanga, ii-K9s zikwaxhasa izikhumba. Imizekelo esele yenziwe (iziqwenga ezisi-7) ziyafumaneka apha. Nanku umzekelo wenye yezi ulusu (kumkhosi wenqanawa):

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Iiplagi

Ekugqibeleni iiplagi ikuvumela ukuba wandise ubunakho be K9s. Mna ngokwam ndisebenzise enye kuphela emsebenzini wam - kubectl get all -n $namespace.

Ijongeka ngolu hlobo. Yenza ifayile $HOME/.k9s/plugin.yml ngomxholo onje:

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"

Ngoku ungaya kwindawo yegama kwaye ucinezele "g" ukuphumeza ngomyalelo ohambelanayo:

Isishwankathelo se-k9s - i-terminal interface ye-Kubernetes

Phakathi kweeplagi kukho, umzekelo, udibaniso ne kubectl-jq kunye nezinto eziluncedo zokujonga iilog. emqolo.

isiphelo

Kwincasa yam, ii-K9s ziye zalunga kakhulu ukusebenza nazo: unokukhawuleza ukuqhela ukukhangela yonke into oyifunayo ngaphandle kokuyisebenzisa. kubectl. Ndonwabile ngumbono weelogi kunye nokugcinwa kwazo, ukulungiswa ngokukhawuleza kwezixhobo, isantya somsebenzi ngokubanzi *, imo yePopeye yajika yaba luncedo. Ukukhankanywa okukhethekileyo kukukwazi ukwenza iiplagi kunye nokuguqula isicelo ukuze silingane neemfuno zakho.

* Nangona, ngomthamo omkhulu wezigodo, ndaye ndaqaphela ukusebenza kancinane kweeK9s. Ngezo zihlandlo, into eluncedo "yayidla" ii-cores ezi-2 ukusuka kwi-Intel Xeon E312xx kwaye inokukhenkceza.

Yintoni engekhoyo ngeli xesha? Ukubuyisela umva ngokukhawuleza kuguqulelo lwangaphambili (hayi malunga neRS) ngaphandle kokuya kulawulo. Ukongeza, ukuchacha kwenzeka kuphela lilonke resource: ukuba ucima isichasiselo okanye ilebhile, kuya kufuneka ucime kwaye ubuyisele uvimba wonke (apha kulapho kufuneka uye khona kulawulo). Enye into encinci - akukho mhla waneleyo wale "backups" ezigciniweyo.

PS

Funda nakwibhlog yethu:

umthombo: www.habr.com

Yongeza izimvo