Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

K9s inikeza isikhombimsebenzisi esibonakalayo sokusebenzelana namaqoqo e-Kubernetes. Umgomo wale phrojekthi yomthombo ovulekile uwukwenza kube lula ukuzulazula, ukuqapha, nokuphatha izinhlelo zokusebenza kuma-K8s. Ama-K9 ahlala eqapha izinguquko ku-Kubernetes futhi anikeza imiyalo esheshayo yokusebenza ngezinsiza ezigadiwe.

Le phrojekthi ibhalwe ku-Go futhi isineminyaka engaphezu konyaka nesigamu ikhona: isithembiso sokuqala senziwe ngoFebhuwari 1, 2019. Ngesikhathi sokubhala, kunezinkanyezi ezingu-9000+ GitHub kanye nabanikelayo abangaba ngu-80. Ake sibone ukuthi ama-k9 angenzani?

Ukufakwa kanye nokuqalisa

Leli iklayenti (ngokuhlobene nohlelo lwe-Kubernetes cluster) okulula ukulisebenzisa njengesithombe se-Docker:

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

Kokunye ukusatshalaliswa kwe-Linux nezinye izinhlelo zokusebenza, kukhona futhi okulungele ukufakwa amaphakheji. Ngokuvamile, kumasistimu e-Linux, ungafaka ifayela kanambambili:

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

Azikho izidingo eziqondile zeqoqo le-K8s ngokwalo. Uma sibheka ukubuyekezwa, uhlelo lokusebenza lusebenza nezinguqulo ezindala ze-Kubernetes ezifana ne-1.12.

Uhlelo lokusebenza lwethulwa kusetshenziswa ukucushwa okujwayelekile .kube/config - kufana nendlela esebenza ngayo kubectl.

Ukuzula

Ngokuzenzakalelayo, iwindi liyavuleka elinendawo yamagama emisiwe ecaciswe umongo. Okusho ukuthi, uma ubhale kubectl config set-context --current --namespace=test, khona-ke indawo yegama izovuleka test. (Bheka ngezansi ukuze ushintshe izingqikithi/izikhala zamagama.)

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Iya ku imodi yomyalo kwenziwa ngokucindezela ":". Ngemva kwalokho, ungakwazi ukulawula ukusebenza kwe-k9s usebenzisa imiyalo - isibonelo, ukubuka uhlu lwama-StatefulSets (endaweni yamanje yamagama), ungangena. :sts.

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ezinye izinsiza ze-Kubernetes:

  • :ns - izikhala zamagama;
  • :deploy - Ukuthunyelwa;
  • :ing - Ingresses;
  • :svc — Amasevisi.

Ukubonisa uhlu oluphelele lwezinhlobo zezinsiza ezitholakalayo ukuze zibukwe, kunomyalo :aliases.

Kuyasiza futhi ukubuka uhlu lwemiyalo etholakala ngezinhlanganisela zokhiye oshisayo ngaphakathi kwewindi lamanje: ukwenza lokhu, vele uchofoze ku-"?".

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Futhi kuma-k9s kukhona imodi yokusesha, ukuya lapho kwanele ukufaka "/". Ngayo, ukusesha kwenziwa kokuqukethwe "iwindi" lamanje. Ake sithi uma ufake ngaphambilini :ns, unohlu lwezikhala zamagama ezivuliwe. Uma ziningi kakhulu, ngakho-ke ukuze ungapheqi phansi isikhathi eside, kwanele ukungena efasiteleni ngezikhala zamagama. /mynamespace.

Ukusesha ngamalebula, ungakhetha wonke ama-pods endaweni yamagama oyifunayo, bese ufaka, isibonelo, / -l app=whoami. Sizothola uhlu lwamaphodi anale lebula:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Usesho lusebenza kuzo zonke izinhlobo zamawindi, okuhlanganisa amalogi, ukubuka i-YAML manifest, kanye describe ngezinsiza - bona ngezansi ukuze uthole imininingwane eyengeziwe ngalezi zici.

Kubukeka kanjani ukugeleza kokuzulazula kukonke?

Usebenzisa umyalo :ctx ungakhetha umongo:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ukuze ukhethe indawo yegama, kunomyalo osuvele ushiwo :ns, bese ungasebenzisa usesho lwesikhala osifunayo: /test.

Uma manje sikhetha insiza esiyithandayo (ngokwesibonelo, i-StatefulSet efanayo), imininingwane ehambisanayo izovela kuyo: mangaki ama-pods asebenzayo nolwazi olufushane ngawo.

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ama-pods kuphela angase abe nesithakazelo - khona-ke kwanele ukungena :pod. Endabeni ye-ConfigMaps (:cm - ukuze uthole uhlu lwalezi zinsiza), ungakhetha into oyithandayo bese uchofoza ku-"u", ngemva kwalokho ama-K9s azokutshela ukuthi ubani oyisebenzisa ngokuqondile (le CM).

Esinye isici esiwusizo sokubuka izinsiza zabo "i-x-ray" (ukubuka kwe-Xray). Le modi ibizwa ngomyalo :xray RESOURCE futhi ... kulula ukukhombisa ukuthi isebenza kanjani kunokuchaza. Nawu umfanekiso we-StatefulSets:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes
(Ngasinye salezi zinsiza singahlelwa, sishintshwe, senziwe describe.)

Futhi nansi Ukuthunyelwa nge-Ingress:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ukusebenza ngezinsiza

Ungathola ulwazi mayelana nensiza ngayinye ku-YAML noma yayo describe ngokucindezela izinqamuleli zekhibhodi ezihambisanayo (“y” kanye “d”, ngokulandelana). Yiqiniso, kukhona imisebenzi eyisisekelo nakakhulu: izinqamuleli zohlu kanye nekhibhodi zihlala zibonakala ngenxa "yekhanda" elilula kusixhumi esibonakalayo (esifihlwe ngokucindezela u-Ctrl + e).

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Lapho uhlela noma iyiphi insiza ("e" ngemva kokukhethwa kwayo), isihleli sombhalo esichazwe ezindaweni eziguquguqukayo siyavuleka (export EDITOR=vim).

Futhi nansi indlela incazelo enemininingwane yesisetshenziswa ebukeka ngayo (describe):

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Lokhu okukhiphayo (noma okukhiphayo kokubuka i-manifest yensiza ye-YAML) kungalondolozwa kusetshenziswa isinqamuleli sekhibhodi sika-Ctrl + s esijwayelekile. Lapho izogcinwa khona uzokwaziwa ngomlayezo we-K9s:

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

Ungakwazi futhi ukubuyisela izinsiza kumafayela ayisipele adaliwe, ngemva kokukhipha amalebula esistimu nezichasiselo. Ukuze wenze lokhu, udinga ukuya kumhlahlandlela nabo (:dir /tmp), bese ukhetha ifayela olifunayo bese usebenzisa apply.

Nokho, nganoma isiphi isikhathi ungakwazi ukubuyela emuva ku-ReplicaSet yangaphambilini uma kunezinkinga ngaleyamanje. Ukuze wenze lokhu, khetha i-RS oyifunayo (:rs ngohlu lwabo):

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

... bese ubuyisela emuva ngo-Ctrl + l. Kufanele sithole isaziso sokuthi konke kuhambe kahle:

k9s/whoami-5cfbdbb469 successfully rolled back

Futhi ukuze ukale ama-replicas, mane uchofoze ku-"s" (isikali) bese ukhetha inombolo oyifunayo yezimo:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ungafaka noma yiziphi iziqukathi usebenzisa igobolondo: ukwenza lokhu, iya ku-pod oyifunayo, chofoza "s" (igobolondo) bese ukhetha isitsha.

Ezinye izici

Yebo, izingodo zokubuka nazo ziyasekelwa ("l" kunsiza ekhethiwe). Futhi ukuze ubuke izingodo ezintsha, asikho isidingo sokucindezela njalo u-Enter: kwanele ukumaka ("m"), bese ulandelela imilayezo emisha kuphela.

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Futhi kuwindi elifanayo, ungakhetha ibanga lesikhathi lokukhishwa kwamalogi:

  • ukhiye "1" - iminithi elingu-1;
  • "2" - imizuzu emi-5;
  • "3" - imizuzu emi-15;
  • "4" - imizuzu emi-30;
  • "5" - 1 ihora;
  • "0" - kukho konke ukuphila kwe-pod.

Imodi yokusebenza ekhethekile Pulse (command :pulse) ibonisa ulwazi olujwayelekile mayelana neqoqo le-Kubernetes:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Kuyo ungabona inani lezinsiza kanye nesimo sazo (okuluhlaza kubonisa labo abanesimo Running).

Esinye isici esihle sama-K9s sibizwa Popeye. Ihlola zonke izinsiza ukuze ithole imibandela ethile yokunemba futhi ibonise "izilinganiso" eziwumphumela nezincazelo. Isibonelo, ungabona ukuthi azikho izilingo noma imikhawulo eyanele, futhi isiqukathi esithile singasebenza njengempande ...

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Kukhona ukwesekwa okuyisisekelo kwe-Helm. Isibonelo, nansi indlela ongabona ngayo ukukhishwa kusetshenziswe kuqoqo:

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

I-Benchmark

Ngisho eyakhelwe kuma-K9s hey iyi-generator yokulayisha iseva ye-HTTP elula, enye indlela eyaziwa kangcono nge-ab (ApacheBench).

Ukuze uyinike amandla, udinga ukunika amandla ukudlulisela phambili ngembobo ku-pod. Ukuze wenze lokhu, khetha i-pod bese ucindezela u-Shift + f, hamba kumenyu engaphansi ye-port-forward usebenzisa isibizo esithi "pf".

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ngemva kokukhetha imbobo nokucindezela u-Ctrl + b, ibhentshimakhi ngokwayo izoqala. Imiphumela yomsebenzi wakhe igcinwe ngaphakathi /tmp futhi ayatholakala ukuze abukwe kamuva kuma-K9s.

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes
Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ukuze uguqule ukucushwa kwebhentshimakhi, udinga ukudala ifayela $HOME/.k9s/bench-<my_context>.yml (kunqunyelwe iqoqo ngalinye).

QAPHELA: Kubalulekile ukuthi ukunwetshwa kwawo wonke amafayela e-YAML ohlwini lwemibhalo .k9s kwakunjalo impela .yml (.yaml ayisebenzi kahle).

Isibonelo sokumisa:

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

isikhombikubona

Ukubonakala kwamakholomu ohlu lwezinsiza kuguqulwa ngokwakha ifayela $HOME/.k9s/views.yml. Isibonelo sokuqukethwe kwayo:

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

Yiqiniso, ayikho ikholomu eyanele yamalebula, ekhona udaba kuphrojekthi.

Ukuhlunga ngamakholomu kwenziwa ngezinqamuleli zekhibhodi:

  • Shift + n - ngegama;
  • Shift + o - ngamanodi;
  • Shift + i - nge-IP;
  • Shift + a - ngesikhathi sokuphila kwesitsha;
  • Shift + t - ngenani lokuqalisa kabusha;
  • Shift + r - ngesimo sokulungela;
  • Shift + c - ngokusetshenziswa kwe-CPU;
  • Shift + m - ngokusebenzisa inkumbulo.

Uma othile engaluthandi uhlelo lombala oluzenzakalelayo, ama-K9 abuye asekele izikhumba. Izibonelo esezilungiselelwe (izingcezu ezingu-7) ziyatholakala lapha. Nasi isibonelo sesinye salezi zikhumba (emkhumbini):

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Ama-plugin

Ekugcineni ama-plugin ikuvumela ukuthi unwebe amandla e-K9s. Mina ngokwami ​​ngisebenzise eyodwa kuphela yazo emsebenzini wami - kubectl get all -n $namespace.

Kubukeka kanjena. Dala ifayela $HOME/.k9s/plugin.yml ngokuqukethwe okufana nalokhu:

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"

Manje ungaya endaweni yegama bese ucindezela u-"g" ukuze wenze ngomyalo ohambisanayo:

Uhlolojikelele lwama-k9s - isikhombimsebenzisi esithuthukisiwe se-Kubernetes

Phakathi kwama-plugin kukhona, ngokwesibonelo, ukuhlanganiswa ne-kubectl-jq kanye nensizakalo yokubuka izingodo. stern.

isiphetho

Ngokunambitheka kwami, ama-K9 avele alula kakhulu ukusebenza nawo: ungajwayela ngokushesha ukubheka yonke into oyidingayo ngaphandle kokuyisebenzisa. kubectl. Ngajabula ngombono wezingodo kanye nokugcinwa kwazo, ukuhlela okusheshayo kwezinsiza, isivinini somsebenzi ngokujwayelekile *, imodi ye-Popeye yaba usizo. Okukhethekile okushiwo yikhono lokudala ama-plugin futhi uguqule uhlelo lokusebenza ukuze luvumelane nezidingo zakho.

* Nakuba, ngomthamo omkhulu wezingodo, ngiphinde ngabona ukusebenza kancane kwama-K9. Ngalezo zikhathi, insiza "yadla" ama-cores ama-2 avela ku-Intel Xeon E312xx futhi yayingaqhwa.

Yini engekho njengamanje? Ukubuyisela emuva ngokushesha enguqulweni yangaphambilini (asikhulumi nge-RS) ngaphandle kokuya kumkhombandlela. Ngaphezu kwalokho, ukululama kwenzeka kuphela inani insiza: uma ususa isichasiselo noma ilebula, kuzodingeka ukuthi ususe futhi ubuyisele yonke insiza (yilapho udinga ukuya khona kuhla lwemibhalo). Enye i-trifle - ayikho idethi eyanele yalezi "izipele".

PS

Funda futhi kubhulogi yethu:

Source: www.habr.com

Engeza amazwana