Ħarsa ġenerali lejn k9s - interface terminali avvanzat għal Kubernetes
K9s jipprovdi interface għall-utent terminali għall-interazzjoni ma 'clusters ta' Kubernetes. L-għan ta 'dan il-proġett Open Source huwa li jagħmilha faċli biex wieħed jinnaviga, jimmonitorja, u jimmaniġġja l-applikazzjonijiet fil-K8s. K9s jimmonitorja kontinwament il-bidliet f'Kubernetes u joffri kmandi ta' malajr biex jaħdem b'riżorsi mmonitorjati.
Il-proġett huwa miktub f’Go u ilu aktar minn sena u nofs: l-ewwel impenn sar fl-1 ta’ Frar, 2019. Fiż-żmien tal-kitba, hemm 9000+ stilla fuq GitHub u madwar 80 kontributur. Ejja naraw x'jistgħu jagħmlu k9s?
Installazzjoni u tnedija
Din hija applikazzjoni klijent (b'relazzjoni mal-cluster Kubernetes) li hija l-aktar faċli biex titħaddem bħala immaġni Docker:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
Għal xi distribuzzjonijiet Linux u sistemi operattivi oħra, hemm ukoll lesti biex jiġu installati pakketti. B'mod ġenerali, għal sistemi Linux, tista 'tinstalla fajl binarju:
M'hemm l-ebda rekwiżiti speċifiċi għall-cluster K8s innifsu. Meta wieħed jiġġudika mir-reviżjonijiet, l-applikazzjoni taħdem ukoll ma 'verżjonijiet eqdem ta' Kubernetes bħal 1.12.
L-applikazzjoni hija mnedija bl-użu tal-konfigurazzjoni standard .kube/config - simili għal kif tagħmel kubectl.
Навигация
B'mod awtomatiku, tinfetaħ tieqa bl-ispazju tal-isem default speċifikat għall-kuntest. Jiġifieri jekk ktibt kubectl config set-context --current --namespace=test, imbagħad jinfetaħ l-ispazju tal-isem test. (Ara hawn taħt għal kuntesti/ispazji tal-ismijiet li jinbidlu.)
Mur fuq mod ta' kmand isir billi tagħfas ":". Wara dan, tista 'tikkontrolla l-operat ta' k9s billi tuża kmandi - pereżempju, biex tara l-lista ta 'StatefulSets (fl-ispazju tal-isem attwali), tista' tidħol :sts.
Għal xi riżorsi oħra ta' Kubernetes:
:ns — spazji tal-ismijiet;
:deploy — Skjeramenti;
:ing — Dħul;
:svc — Servizzi.
Biex turi lista sħiħa ta 'tipi ta' riżorsi disponibbli għall-wiri, hemm kmand :aliases.
Huwa wkoll konvenjenti li tara l-lista ta 'kmandi disponibbli b'kombinazzjonijiet ta' hot key fit-tieqa attwali: biex tagħmel dan, ikklikkja fuq "?".
Ukoll fil-k9s hemm mod ta' tfittxija, biex tmur għaliha huwa biżżejjed li tidħol "/". Magħha, titwettaq tfittxija fuq il-kontenut tat-"tieqa" attwali. Ejja ngħidu jekk dħaltx qabel :ns, għandek lista ta' namespaces miftuħa. Jekk hemm wisq minnhom, allura biex ma tiskrollx 'l isfel għal żmien twil, huwa biżżejjed li tidħol fit-tieqa bi namespaces /mynamespace.
Biex tfittex bit-tikketti, tista 'tagħżel il-miżwed kollha fl-ispazju tal-isem mixtieq, imbagħad daħħal, pereżempju, / -l app=whoami. Aħna se tikseb lista ta 'miżwed b'din it-tikketta:
It-tfittxija taħdem fit-tipi kollha ta 'twieqi, inklużi zkuk, wiri ta' manifesti YAML, u describe għar-riżorsi - ara hawn taħt għal aktar dettalji dwar dawn il-karatteristiċi.
Kif jidher il-fluss ġenerali tan-navigazzjoni?
Bl-użu tal-kmand :ctx tista' tagħżel kuntest:
Biex tagħżel namespace, hemm il-kmand diġà msemmi :ns, u mbagħad tista' tuża t-tfittxija għall-ispazju mixtieq: /test.
Jekk issa nagħżlu r-riżorsa li aħna interessati fiha (per eżempju, l-istess StatefulSet), l-informazzjoni korrispondenti tidher għaliha: kemm imżiewed qed jaħdmu b'informazzjoni qasira dwarhom.
Il-miżwed biss jistgħu jkunu ta 'interess - allura huwa biżżejjed li tidħol :pod. Fil-każ ta' ConfigMaps (:cm - għal-lista ta 'dawn ir-riżorsi), tista' tagħżel l-oġġett ta 'interess u tikklikkja fuq "u", wara li K9s jgħidlek min jużah speċifikament (din is-CM).
Karatteristika oħra utli għall-wiri tar-riżorsi hija tagħhom "x-ray" (dehra tar-raġġi X). Din il-modalità tissejjaħ mill-kmand :xray RESOURCE u ... huwa aktar faċli li turi kif taħdem milli tispjega. Hawnhekk hawn illustrazzjoni għal StatefulSets:
(Kull wieħed minn dawn ir-riżorsi jista 'jiġi editjat, mibdul, magħmul describe.)
U hawn huwa l-Iskjerament b'Ingress:
Ħidma bir-riżorsi
Tista' tikseb informazzjoni dwar kull riżorsa f'YAML jew tagħha describe billi tagħfas is-shortcuts tat-tastiera korrispondenti (“y” u “d”, rispettivament). Naturalment, hemm operazzjonijiet saħansitra aktar bażiċi: il-lista tagħhom u s-shortcuts tat-tastiera huma dejjem viżibbli grazzi għal "header" konvenjenti fl-interface (moħbija billi tagħfas Ctrl + e).
Meta teditja kwalunkwe riżors ("e" wara l-għażla tagħha), jinfetaħ l-editur tat-test definit fil-varjabbli tal-ambjent (export EDITOR=vim).
U hawnhekk hija kif tidher id-deskrizzjoni dettaljata tar-riżors (describe):
Dan l-output (jew l-output tal-wiri tal-manifest tar-riżorsi YAML) jista 'jiġi ssejvjat bl-użu tas-shortcut tat-tastiera familjari Ctrl + s. Fejn se jiġi ffrankat se jkun magħruf mill-messaġġ K9s:
Tista 'wkoll tirrestawra r-riżorsi mill-fajls ta' backup maħluqa, wara li tneħħi t-tikketti u l-annotazzjonijiet tas-sistema. Biex tagħmel dan, trid tmur fid-direttorju magħhom (:dir /tmp), imbagħad agħżel il-fajl mixtieq u applika apply.
Mill-mod, fi kwalunkwe ħin tista 'tmur lura għar-ReplicaSet preċedenti jekk ikun hemm problemi ma' dak attwali. Biex tagħmel dan, agħżel l-RS mixtieqa (:rs għal-lista tagħhom):
... u rollback bi Ctrl + l. Għandna nirċievu notifika li kollox mar tajjeb:
k9s/whoami-5cfbdbb469 successfully rolled back
U biex tiskala r-repliki, ikklikkja fuq il-"s" (skala) u agħżel in-numru mixtieq ta' każijiet:
Tista 'tidħol f'kull wieħed mill-kontenituri billi tuża l-qoxra: biex tagħmel dan, mur fil-powd mixtieq, ikklikkja fuq "s" (qoxra) u agħżel il-kontenitur.
Karatteristiċi oħra
Naturalment, il-wiri ta 'zkuk huwa wkoll appoġġjat ("l" għar-riżors magħżul). U sabiex tara zkuk ġodda, m'hemmx bżonn li kontinwament tagħfas Enter: huwa biżżejjed li timmarka ("m"), u mbagħad issegwi biss messaġġi ġodda.
Ukoll fl-istess tieqa, tista 'tagħżel il-medda ta' ħin għall-output ta 'zkuk:
ċavetta "1" - għal minuta 1;
"2" - 5 minuti;
"3" - 15 minuti;
"4" - 30 minuti;
"5" - 1 siegħa;
"0" - għall-ħajja kollha tal-pod.
Mod ta' tħaddim speċjali Pulse (kmand :pulse) turi informazzjoni ġenerali dwar il-cluster Kubernetes:
Fiha tista 'tara n-numru ta' riżorsi u l-istatus tagħhom (aħdar juri dawk li għandhom l-istatus Running).
Karatteristika oħra friska ta 'K9s tissejjaħ Popeye. Jiċċekkja r-riżorsi kollha għal ċerti kriterji ta 'korrettezza u juri l-"klassifikazzjoni" li tirriżulta bi spjegazzjonijiet. Per eżempju, tista 'tara li m'hemmx biżżejjed kampjuni jew limiti, u xi kontenitur jista' jaħdem bħala għerq ...
Hemm appoġġ bażiku għal Helm. Per eżempju, dan huwa kif tista 'tara r-rilaxxi skjerati fil-cluster:
:helm all # все
:helm $namespace # в конкретном пространстве имен
Kriterju
Anke mibnija fil-K9s hey huwa ġeneratur sempliċi tat-tagħbija tas-server HTTP, alternattiva għall-ab magħruf aħjar (ApacheBench).
Biex tkun tista', trid tattiva l-port-forward fil-pod. Biex tagħmel dan, agħżel il-pod u agħfas Shift + f, mur fis-submenu port-forward billi tuża l-alias "pf".
Wara li tagħżel il-port u tagħfas Ctrl + b, il-benchmark innifsu jibda. Ir-riżultati tax-xogħol tiegħu huma maħżuna fil /tmp u huma disponibbli għall-wiri aktar tard fil-K9s.
Biex tibdel il-konfigurazzjoni tal-benchmark, għandek bżonn toħloq fajl $HOME/.k9s/bench-<my_context>.yml (determinat għal kull cluster).
NB: Huwa importanti li l-estensjoni tal-fajls YAML kollha f'direttorju .k9s kien eżattament .yml (.yaml ma taħdimx sew).
Eżempju ta' konfigurazzjoni:
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
Interface
Id-dehra tal-kolonni għal-listi ta' riżorsi hija modifikata billi jinħoloq fajl $HOME/.k9s/views.yml. Eżempju tal-kontenut tiegħu:
k9s:
views:
v1/pods:
columns:
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
Veru, m'hemmx biżżejjed kolonna għat-tikketti, li għalihom hemm kwistjoni fil-proġett.
L-għażla skont il-kolonni titwettaq permezz ta' shortcuts tat-tastiera:
Shift + n - bl-isem;
Shift + o - minn nodi;
Shift + i - mill-IP;
Shift + a - mill-ħajja tal-kontenitur;
Shift + t - bin-numru ta 'startjar mill-ġdid;
Shift + r - mill-istatus ta 'prontezza;
Shift + c - mill-konsum tas-CPU;
Shift + m - mill-konsum tal-memorja.
Jekk xi ħadd ma jħobbx l-iskema tal-kulur default, K9s anke jappoġġja ġlud. Eżempji lesti (7 biċċiet) huma disponibbli hawn. Hawn eżempju ta 'waħda minn dawn il-ġlud (fil-flotta):
Plugins
Fl-aħħarnett, il- plugins jippermettulek tespandi l-kapaċitajiet tal-K9s. Jien stess użajt waħda minnhom biss fix-xogħol tiegħi - kubectl get all -n $namespace.
Jidher bħal dan. Oħloq fajl $HOME/.k9s/plugin.yml b'kontenut bħal dan:
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"
Issa tista 'tmur fl-ispazju tal-isem u agħfas "g" biex tesegwixxi bil-kmand korrispondenti:
Fost il-plugins hemm, pereżempju, integrazzjoni ma 'kubectl-jq u utilità biex tara zkuk poppa.
Konklużjoni
Għat-togħma tiegħi, K9s irriżultaw li kienu konvenjenti ħafna biex taħdem magħhom: tista 'malajr tidra tfittex dak kollu li għandek bżonn mingħajr ma tużah. kubectl. Kont kuntent bil-fehma tar-zkuk u l-iffrankar tagħhom, l-editjar rapidu tar-riżorsi, il-veloċità tax-xogħol b'mod ġenerali *, il-mod Popeye irriżulta li kien utli. Aċċenn speċjali hija l-abbiltà li toħloq plugins u timmodifika l-applikazzjoni biex taqbel mal-bżonnijiet tiegħek.
* Għalkemm, b'volum kbir ta 'zkuk, innotajt ukoll it-tħaddim bil-mod tal-K9s. F'mumenti bħal dawn, l-utilità "tiekol" 2 cores mill-Intel Xeon E312xx u tista 'saħansitra tiffriża.
X'inhu nieqes bħalissa? Qlib malajr għall-verżjoni preċedenti (m'aħniex nitkellmu dwar RS) mingħajr ma mmorru fid-direttorju. Barra minn hekk, l-irkupru jseħħ biss għal biss riżorsa: jekk tħassar annotazzjoni jew tikketta, ikollok tħassar u tirrestawra r-riżors kollu (dan huwa fejn trid tmur fid-direttorju). Trifle ieħor - m'hemmx biżżejjed data għal tali "backups" salvati.