
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 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/k9sKune mamwe maLinux kugovera uye mamwe masisitimu anoshanda, kune zvakare akagadzirira-kuisa . 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/binIko 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.)

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.
![]()
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 "?".

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:
![]()
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:

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.
![]()
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:

(Imwe neimwe yezviwanikwa izvi inogona kugadziridzwa, kuchinjwa, kuitwa describe.)
Uye heino Deployment neIngress:

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).

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):

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):

... uye kudzoreredza neCtrl + l. Isu tinofanirwa kuwana chiziviso chekuti zvese zvakafamba zvakanaka:
k9s/whoami-5cfbdbb469 successfully rolled backUye kuyera replicas, ingobaya pa "s" (chiyero) uye sarudza nhamba yaunoda yezviitiko:

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.

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:

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 ...

Pane tsigiro yakakosha yeHelm. Semuenzaniso, iyi ndiyo nzira yaunoona kuburitswa kwakaiswa musumbu:
:helm all # все
:helm $namespace # в конкретном пространстве имен
chiero
Kunyange yakavakwa muK9s 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.

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


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 .
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 . Yakagadzirirwa-yakagadzirwa mienzaniso (7 zvidimbu) zviripo . Heino muenzaniso weimwe yematehwe aya (muuto regungwa):

Mapulagi
Pakupedzisira 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:

Pakati pemapulagi pane, semuenzaniso, kubatanidzwa ne kubectl-jq uye chishandiso chekuona matanda. .
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
