ProHoster > blog > Utawala > Mapitio ya k9s - interface ya juu ya terminal kwa Kubernetes
Mapitio ya k9s - interface ya juu ya terminal kwa Kubernetes
K9 za hutoa kiolesura cha mtumiaji wa mwisho kwa kuingiliana na makundi ya Kubernetes. Lengo la mradi huu wa Open Source ni kurahisisha kuvinjari, kufuatilia na kudhibiti programu katika K8s. K9s hufuatilia mabadiliko kila mara katika Kubernetes na hutoa amri za haraka za kufanya kazi na rasilimali zinazofuatiliwa.
Mradi huo umeandikwa katika Go na umekuwepo kwa zaidi ya mwaka mmoja na nusu: ahadi ya kwanza ilifanywa mnamo Februari 1, 2019. Wakati wa kuandika, kuna nyota 9000+ kwenye GitHub na wachangiaji wapatao 80. Hebu tuone k9s wanaweza kufanya nini?
Ufungaji na uzinduzi
Huyu ni mteja (kuhusiana na kikundi cha Kubernetes) programu, ambayo ni rahisi kuendesha kama picha ya Docker:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
Kwa usambazaji wa Linux na mifumo mingine ya uendeshaji pia kuna tayari kusakinisha vifurushi. Kwa ujumla, kwa mifumo ya Linux unaweza kusakinisha faili ya binary:
Hakuna mahitaji maalum kwa nguzo ya K8s yenyewe. Kwa kuzingatia hakiki, programu pia inafanya kazi na matoleo ya zamani ya Kubernetes kama vile 1.12.
Programu huanza kutumia usanidi wa kawaida .kube/config - sawa na jinsi inavyofanya kubectl.
ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ
Kwa chaguo-msingi, dirisha hufungua na nafasi ya majina ya kawaida iliyoainishwa kwa muktadha. Hiyo ni, ikiwa uliandika kubectl config set-context --current --namespace=test, kisha nafasi ya majina itafunguka test. (Angalia hapa chini kuhusu kubadilisha miktadha/nafasi za majina.)
Enda kwa hali ya amri inafanywa kwa kubofya ":". Kisha unaweza kudhibiti jinsi k9s inavyofanya kazi kwa kutumia amri - kwa mfano, kutazama orodha ya StatefulSets (katika nafasi ya sasa ya majina) unaweza kuingiza. :sts.
Kwa rasilimali zingine za Kubernetes:
:ns - Nafasi za majina;
:deploy - Usambazaji;
:ing - Ingress;
:svc - Huduma.
Ili kuonyesha orodha kamili ya aina za rasilimali zinazopatikana kwa kutazama, kuna amri :aliases.
Pia ni rahisi kutazama orodha ya amri zinazopatikana kupitia mchanganyiko wa hotkey ndani ya dirisha la sasa: kufanya hivyo, bonyeza tu "?".
Pia katika k9s kuna hali ya utafutaji, kwenda ambayo unahitaji tu kuingiza "/". Inatafuta yaliyomo kwenye "dirisha" ya sasa. Kwa mfano, ikiwa uliingia hapo awali :ns, una orodha ya nafasi za majina zilizofunguliwa. Ikiwa kuna mengi yao, basi ili usitembee chini kwa muda mrefu, ingiza tu kwenye dirisha na nafasi za majina. /mynamespace.
Kutafuta kwa lebo, unaweza kuchagua ganda zote kwenye nafasi ya majina unayotaka, na kisha ingiza, kwa mfano, / -l app=whoami. Tutapata orodha ya maganda yenye lebo hii:
Utafutaji hufanya kazi katika aina zote za madirisha, ikiwa ni pamoja na kumbukumbu, kutazama maonyesho ya YAML na describe kwa nyenzo - tazama hapa chini kwa habari zaidi juu ya uwezo huu.
Je, mtiririko wa jumla wa urambazaji unaonekanaje?
Kutumia amri :ctx unaweza kuchagua muktadha:
Ili kuchagua nafasi ya majina kuna amri iliyotajwa tayari :ns, na kisha unaweza kutumia utaftaji wa nafasi unayotaka: /test.
Ikiwa sasa tutachagua rasilimali tunayopendezwa nayo (kwa mfano, StatefulSet sawa), taarifa inayolingana itatokea kwa ajili yake: ni maganda ngapi yanayoendesha na maelezo mafupi kuwahusu.
Maganda tu yanaweza kuwa ya riba - basi ingiza tu :pod. Kwa upande wa ConfigMaps (:cm - kwa orodha ya rasilimali hizi) unaweza kuchagua kitu cha kupendeza na ubofye "u", baada ya hapo K9s itakuambia ni nani hasa (CM hii) anaitumia.
Kipengele kingine cha urahisi cha kutazama rasilimali ni yao "X-ray" (mtazamo wa XRay). Hali hii inaitwa kwa amri :xray RESOURCE na ... ni rahisi kuonyesha jinsi inavyofanya kazi kuliko kuelezea. Hapa kuna kielelezo cha StatefulSets:
(Kila moja ya rasilimali hizi inaweza kuhaririwa, kubadilishwa, kufanywa describe.)
Na hapa kuna Upelekaji na Ingress:
Kufanya kazi na Rasilimali
Taarifa kuhusu kila rasilimali inaweza kupatikana katika YAML au yake describe kwa kubonyeza mikato ya kibodi inayofaa ("y" na "d" mtawalia). Kuna, bila shaka, shughuli za msingi zaidi: orodha yao na njia za mkato za kibodi daima zinaonekana shukrani kwa "kichwa" cha urahisi kwenye interface (kilichofichwa kwa kushinikiza Ctrl + e).
Wakati wa kuhariri rasilimali yoyote ("e" baada ya kuichagua), kihariri cha maandishi kilifafanuliwa katika anuwai za mazingira (export EDITOR=vim).
Na hii ndio maelezo ya kina ya rasilimali inaonekana kama (describe):
Toleo hili (au matokeo ya kutazama faili ya maelezo ya YAML ya nyenzo) inaweza kuhifadhiwa kwa kutumia njia ya mkato ya kibodi ya Ctrl + s. Ambapo itahifadhiwa itajulikana kutoka kwa ujumbe wa K9s:
Unaweza pia kurejesha rasilimali kutoka kwa faili za chelezo zilizoundwa kwa kuondoa kwanza lebo za mfumo na vidokezo. Ili kufanya hivyo utahitaji kwenda kwenye saraka nao (:dir /tmp), kisha chagua faili unayotaka na uitumie apply.
Kwa njia, wakati wowote unaweza kurudi kwenye ReplicaSet ya awali ikiwa kuna matatizo na ya sasa. Ili kufanya hivyo, unahitaji kuchagua RS inayotaka (:rs kwa orodha yao):
... na kurudisha nyuma kwa kutumia Ctrl + l. Tunapaswa kupokea arifa kwamba kila kitu kilifanikiwa:
k9s/whoami-5cfbdbb469 successfully rolled back
Na kuongeza nakala, bonyeza tu kwenye "s" (wadogo) na uchague nambari inayotakiwa ya nakala:
Unaweza kuingiza chombo chochote kwa kutumia shell: kwa kufanya hivyo, nenda kwenye pod inayotakiwa, bofya kwenye "s" (shell) na uchague chombo.
Vipengele vingine
Bila shaka, kumbukumbu za kutazama pia zinasaidiwa ("l" kwa rasilimali iliyochaguliwa). Na kutazama kumbukumbu mpya, hakuna haja ya kushinikiza mara kwa mara Ingiza: fanya tu alama ("m"), na kisha ufuatilie ujumbe mpya tu.
Pia kwenye dirisha lile lile unaweza kuchagua safu ya saa ya kutoa magogo:
ufunguo "1" - katika dakika 1;
"2" - dakika 5;
"3" - dakika 15;
"4" - dakika 30;
"5" - saa 1;
"0" - kwa maisha yote ya ganda.
Hali maalum ya uendeshaji Pulse (amri :pulse) inaonyesha habari ya jumla kuhusu nguzo ya Kubernetes:
Ndani yake unaweza kuona idadi ya rasilimali na hali zao (zile ambazo zina hali zinaonyeshwa kwa kijani Running).
Kipengele kingine cha kuvutia cha K9s kinaitwa Popeye. Hukagua rasilimali zote kwa vigezo fulani vya usahihi na huonyesha "ukadiriaji" unaotokana na maelezo. Kwa mfano, unaweza kuona kwamba hakuna sampuli au vikomo vya kutosha, na chombo fulani kinaweza kuendeshwa kama mzizi...
Kuna msaada wa msingi wa Helm. Kwa mfano, hivi ndivyo unavyoweza kuona matoleo yaliyotumwa kwa nguzo:
Waliijenga hata katika K9s hey ni jenereta rahisi ya kupakia kwa seva ya HTTP, mbadala wa ab inayojulikana zaidi (ApacheBench).
Ili kuiwezesha, utahitaji kuwezesha usambazaji wa bandari kwenye ganda. Ili kufanya hivyo, chagua ganda na ubonyeze Shift + f, nenda kwenye menyu ndogo ya kupeleka mbele mlango kwa kutumia lakabu "pf".
Baada ya kuchagua bandari na kushinikiza Ctrl + b, benchmark yenyewe itazindua. Matokeo ya kazi yake yamehifadhiwa ndani /tmp na zinapatikana kwa kutazamwa baadaye katika K9s.
Ili kubadilisha usanidi wa benchmark unahitaji kuunda faili $HOME/.k9s/bench-<my_context>.yml (imefafanuliwa kwa kila nguzo).
NB: Ni muhimu kwamba upanuzi wa faili zote za YAML kwenye saraka .k9s ilikuwa hasa .yml (.yaml haifanyi kazi kwa usahihi).
Mwonekano wa safu wima za orodha za rasilimali hurekebishwa kwa kuunda faili $HOME/.k9s/views.yml. Mfano wa yaliyomo:
k9s:
views:
v1/pods:
columns:
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
Kweli, hakuna safu ya kutosha kwa ajili ya maandiko, ambayo kuna suala katika mradi huo.
Kupanga kwa safu wima hufanywa kwa kutumia mikato ya kibodi:
Shift + n - kwa jina;
Shift + o - kwa nodes;
Shift + i - kwa IP;
Shift + a - kwa maisha ya chombo;
Shift + t - kwa idadi ya kuanzisha upya;
Shift + r - kwa hali ya utayari;
Shift + c - kwa matumizi ya CPU;
Shift + m - kwa matumizi ya kumbukumbu.
Ikiwa mtu hapendi mpango wa rangi chaguo-msingi, K9s hata inasaidia ngozi. Mifano iliyopangwa tayari (vipande 7) vinapatikana hapa. Hapa kuna mfano wa moja ya ngozi hizi (katika jeshi la wanamaji):
Programu-jalizi
Mwishowe programu-jalizi hukuruhusu kupanua uwezo wa K9s. Mimi mwenyewe nilitumia moja tu katika kazi yangu - kubectl get all -n $namespace.
Inaonekana hivi. Unda faili $HOME/.k9s/plugin.yml na maudhui haya:
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"
Sasa unaweza kwenda kwenye nafasi ya majina na ubonyeze "g" kutekeleza amri inayolingana:
Miongoni mwa programu-jalizi kuna, kwa mfano, miunganisho na kubectl-jq na matumizi ya kutazama kumbukumbu. mkali.
Hitimisho
Kwa ladha yangu, K9s iligeuka kuwa rahisi sana kutumia: nayo unaweza kuzoea haraka kupata kila kitu unachohitaji bila kutumia. kubectl. Nilifurahishwa na kutazama kumbukumbu na kuzihifadhi, uhariri wa haraka wa rasilimali, kasi ya kazi kwa ujumla *, hali ya Popeye iligeuka kuwa muhimu. Taja maalum inapaswa kufanywa juu ya uwezo wa kuunda programu-jalizi na kubinafsisha programu ili kukidhi mahitaji yako.
* Ingawa, kwa idadi kubwa ya magogo, pia niliona uendeshaji wa polepole wa K9s. Kwa wakati kama huo, matumizi "yalikula" cores 2 za Intel Xeon E312xx na inaweza hata kufungia.
Ni nini kinakosekana kwa sasa? Urejeshaji wa haraka kwa toleo la awali (hatuzungumzii kuhusu RS) bila kwenda kwenye saraka. Kwa kuongeza, marejesho hutokea tu kwa tu rasilimali: ikiwa umefuta maelezo au lebo, utalazimika kufuta na kurejesha rasilimali nzima (hapa ndio utahitaji kwenda kwenye saraka). Kitu kingine kidogo ni kwamba tarehe ya "chelezo" zilizohifadhiwa haipo.