
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 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/k9sKwezinye izinikezelo zeLinux kunye nezinye iinkqubo zokusebenza, zikwakhona zilungele ukuhlohla . 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/binAkukho 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.)

Yiya e imo yomyalelo yenziwa ngokucofa ":". Emva koko, unokulawula ukusebenza kwee-k9s usebenzisa imiyalelo-umzekelo, ukujonga uluhlu lwe-StatefulSets (kwisithuba samagama sangoku), ungangena. :sts.
![]()
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 "?".

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

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

(Nganye kwezi zixhobo zinokuhlelwa, zitshintshwe, zenziwe describe.)
Kwaye nantsi ukuhanjiswa nge-Ingress:

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

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

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

... kwaye ubuyisele umva ngeCtrl + l. Kufuneka sifumane isaziso sokuba yonke into ihambe kakuhle:
k9s/whoami-5cfbdbb469 successfully rolled backKwaye ukukala iireplicas, nqakraza nje kwi "s" (isikali) kwaye ukhethe inani elifunekayo lemizekelo:

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.

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:

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

Kukho inkxaso yeHelm esisiseko. Umzekelo, nantsi indlela onokubona ngayo ukhupho lubekwe kwiqela:
:helm all # все
:helm $namespace # в конкретном пространстве имен
Benchmark
Kwakhiwe kwiiK9s 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".

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.


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 .
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 . Imizekelo esele yenziwe (iziqwenga ezisi-7) ziyafumaneka . Nanku umzekelo wenye yezi ulusu (kumkhosi wenqanawa):

Iiplagi
Ekugqibeleni 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:

Phakathi kweeplagi kukho, umzekelo, udibaniso ne kubectl-jq kunye nezinto eziluncedo zokujonga iilog. .
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
