Overview ny k9s - interface tsara terminal ho an'ny Kubernetes
K9s dia manome interface interface ho an'ny mpampiasa terminal hifaneraserana amin'ny cluster Kubernetes. Ny tanjon'ity tetikasa Open Source ity dia ny hanamora ny fandehanana, ny fanaraha-maso ary ny fitantanana ny rindranasa ao amin'ny K8s. K9s dia manara-maso tsy tapaka ny fiovana ao amin'ny Kubernetes ary manome baiko haingana amin'ny fiasana amin'ny loharanon-kevitra arahana.
Nosoratana tao amin'ny Go ny tetikasa ary efa nisy nandritra ny herintaona sy tapany mahery: ny 1 Febroary 2019 no nanaovana ny fanoloran-tena voalohany. Amin'ny fotoana anoratana dia misy kintana 9000+ eo GitHub ary mpandray anjara 80 eo ho eo. Andeha hojerentsika izay azon'ny k9s atao?
Fametrahana sy fandefasana
Ity dia fampiharana mpanjifa (mifandray amin'ny cluster Kubernetes), izay mora indrindra amin'ny alΓ lan'ny sary Docker:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
Ho an'ny fizarana Linux sasany sy ny rafitra miasa hafa dia misy ihany koa ny vonona-apetraka entana. Amin'ny ankapobeny, ho an'ny rafitra Linux dia azonao atao ny mametraka ny rakitra binary:
Tsy misy fepetra manokana ho an'ny kluster K8s mihitsy. Raha tsaraina amin'ny tsikera, ny fampiharana dia miasa miaraka amin'ny dikan-teny taloha an'ny Kubernetes toy ny 1.12.
Ny fampiharana dia manomboka mampiasa ny config mahazatra .kube/config - mitovy amin'ny fomba fanaony kubectl.
Fikarohana
Amin'ny alΓ lan'ny default, misy varavarankely misokatra miaraka amin'ny espace namespace voatondro ho an'ny contexte. Izany hoe raha nanoratra ianao kubectl config set-context --current --namespace=test, dia hisokatra ny namespace test. (Jereo eto ambany momba ny fanovana contexte/namespaces.)
Mandeha fomba baiko atao amin'ny fipihana ny ":". Azonao atao ny mifehy ny fomba fiasan'ny k9s amin'ny alΓ lan'ny baiko - ohatra, raha hijery ny lisitry ny StatefulSets (ao amin'ny toerana misy anarana ankehitriny) azonao ampidirina. :sts.
Ho an'ny loharano hafa Kubernetes:
:ns - Espace anarana;
:deploy - Fametrahana;
:ing - Ingress;
:svc - Serivisy.
Mba hampisehoana lisitra feno ny karazana loharano azo jerena dia misy baiko :aliases.
Tsara ihany koa ny mijery ny lisitr'ireo baiko azo alaina amin'ny alΓ lan'ny fampifangaroana hotkey ao anatin'ny varavarankely ankehitriny: mba hanaovana izany, tsindrio fotsiny ny "?".
Ao amin'ny k9s koa misy fomba fitadiavana, hankany izay mila miditra fotsiny ianao "/". Izy io dia mikaroka ao anatin'ny "varavarankely" ankehitriny. Ohatra, raha niditra teo aloha ianao :ns, manana lisitry ny toerana misy anarana misokatra ianao. Raha be loatra izy ireo, dia mba tsy hivezivezy ela be dia midira ao amin'ny varavarankely miaraka amin'ny namespaces. /mynamespace.
Raha hikaroka amin'ny etikety dia azonao atao ny misafidy ny pods rehetra ao amin'ny toerana misy anarana tianao, ary ampidiro, ohatra, / -l app=whoami. Hahazo lisitr'ireo pods miaraka amin'ity marika ity izahay:
Ny fikarohana dia miasa amin'ny karazana varavarankely rehetra, ao anatin'izany ny logs, ny fijerena ny YAML manifests ary describe ho an'ny loharanon-karena - jereo eto ambany raha mila fanazavana fanampiny momba ireo fahaiza-manao ireo.
Manao ahoana ny fandehan'ny fitetezana ankapobeny?
Miaraka amin'ny baiko :ctx azonao atao ny misafidy ny contexte:
Mba hisafidianana namespace dia misy ny baiko efa voalaza :ns, ary azonao atao ny mampiasa ny fikarohana ny toerana tianao: /test.
Raha misafidy ny loharano mahaliana antsika isika (ohatra, ilay StatefulSet ihany), dia hiseho ho azy ny fampahalalana mifandraika aminy: firy ny pods mandeha miaraka amin'ny fampahalalana fohy momba azy ireo.
Ny pods ihany no mety hahaliana - dia midira fotsiny :pod. Raha ny ConfigMaps (:cm - ho an'ny lisitr'ireo loharano ireo) dia azonao atao ny misafidy ny zavatra mahaliana ary tsindrio ny "u", ary avy eo ny K9s dia hilaza aminao hoe iza marina (ity CM ity) no mampiasa azy.
Ny endri-javatra hafa mety amin'ny fijerena loharano dia ny azy ireo "X-ray" (jereo XRay). Ity fomba ity dia antsoina amin'ny baiko :xray RESOURCE ary... mora kokoa ny mampiseho ny fomba fiasany noho ny manazava. Ity misy fanoharana momba ny StatefulSets:
Ny fampahalalana momba ny loharano tsirairay dia azo alaina amin'ny YAML na ny azy describe amin'ny fanindriana ny hitsin-dΓ lana mifanaraka amin'izany (βyβ sy βdβ tsirairay avy). Misy, mazava ho azy, ny asa fototra bebe kokoa: ny lisitra sy ny hitsin-dΓ lana amin'ny fitendry dia hita foana noho ny "header" mety amin'ny interface (miafina amin'ny fanindriana Ctrl + e).
Rehefa manitsy loharano (βeβ aorian'ny fisafidianana azy), ny tonian-dahatsoratra dia voafaritra ao amin'ny fari-piainan'ny tontolo iainana (export EDITOR=vim).
Ary toy izao ny famaritana amin'ny antsipiriany momba ny loharano (describe):
Ity vokatra ity (na ny vokatra amin'ny fijerena ny fanehoana YAML amin'ny loharano iray) dia azo tehirizina amin'ny alΓ lan'ny fitendry mahazatra Ctrl + s. Ny toerana hotehirizana azy dia ho fantatra amin'ny hafatra K9s:
Azonao atao ihany koa ny mamerina ny loharanon-karena avy amin'ireo rakitra backup noforonina amin'ny alΓ lan'ny fanesorana ny etikety sy ny fanamarihana voalohany. Mba hanaovana izany dia mila mandeha any amin'ny lahatahiry miaraka amin'izy ireo ianao (:dir /tmp), dia fidio ny rakitra tianao ary ampiharo apply.
Raha ny tokony ho izy, amin'ny fotoana rehetra dia afaka miverina any amin'ny ReplicaSet teo aloha ianao raha misy olana amin'ny ankehitriny. Mba hanaovana izany dia mila misafidy ny RS tianao ianao (:rs ho an'ny lisitr'izy ireo):
... ary miverina amin'ny fampiasana Ctrl + l. Tokony hahazo fampandrenesana isika fa nahomby ny zava-drehetra:
k9s/whoami-5cfbdbb469 successfully rolled back
Ary raha te hanitatra ny kopia, tsindrio fotsiny ny "s" (scale) ary safidio ny isan'ny kopia ilaina:
Azonao atao ny mampiditra ny iray amin'ireo kaontenera mampiasa ny akorandriaka: mba hanaovana izany, mandehana any amin'ny pod tianao, tsindrio ny "s" (akorandriaka) ary safidio ny fitoeran-javatra.
endri-javatra hafa
Mazava ho azy fa tohanana ihany koa ny fijerena diary (βlβ ho an'ny loharano voafantina). Ary raha hijery logs vaovao dia tsy ilaina ny manindry foana ny Enter: asio marika fotsiny ("m"), ary avy eo manara-maso hafatra vaovao ihany.
Ao amin'io varavarankely io ihany koa dia azonao atao ny misafidy ny fe-potoana hamoahana logs:
fanalahidy "1" - ao anatin'ny 1 minitra;
"2" - 5 minitra;
"3" - 15 minitra;
"4" - 30 minitra;
"5" - 1 ora;
"0" - mandritra ny androm-piainan'ny pod.
Fomba fiasa manokana Pulse (command :pulse) dia mampiseho fampahalalana ankapobeny momba ny cluster Kubernetes:
Ao anatin'izany no ahitanao ny isan'ny loharanon-karena sy ny toerany (ireo manana sata dia aseho amin'ny maitso Running).
Ny endri-javatra mahaliana iray hafa amin'ny K9s dia antsoina Popeye. Izy io dia manamarina ny loharanon-karena rehetra ho an'ny fepetra marina sasany ary mampiseho ny "naoty" vokatr'izany miaraka amin'ny fanazavana. Ohatra, hitanao fa tsy ampy ny santionany na fetra, ary misy kaontenera azo atao ho root...
Misy fanohanana Helm fototra. Ohatra, izao no fomba ahafahanao mijery ny famoahana napetraka ao amin'ny cluster:
Namboarin'izy ireo ho K9 mihitsy aza Hey dia mpamoaka entana tsotra ho an'ny mpizara HTTP, solon'ny ab malaza kokoa (ApacheBench).
Mba hahafahan'izy io dia mila mamela ny port-forward amin'ny pod ianao. Mba hanaovana izany, mifidiana pod ary tsindrio Shift + f, mandehana any amin'ny submenu port-forward mampiasa ny alias "pf".
Rehefa avy nisafidy ny seranan-tsambo ary manindry Ctrl + b, dia hanomboka ny benchmark. Tehirizina ao ny vokatry ny asany /tmp ary azo jerena any aoriana any amin'ny K9s.
Mba hanovana ny fikandrana benchmark dia mila mamorona rakitra ianao $HOME/.k9s/bench-<my_context>.yml (faritra ho an'ny cluster tsirairay).
NB: Zava-dehibe ny fanitarana ny rakitra YAML rehetra ao amin'ny lahatahiry .k9s marina tokoa izany .yml (.yaml tsy mandeha tsara).
Ny fanasokajiana amin'ny tsanganana dia atao amin'ny alΓ lan'ny hitsin-dΓ lana fitendry:
Shift + n - amin'ny anarana;
Shift + o - amin'ny nodes;
Shift + i - amin'ny IP;
Shift + a - amin'ny androm-piainany;
Shift + t - amin'ny isan'ny restart;
Shift + r - amin'ny sata fahavononana;
Shift + c - amin'ny fampiasana CPU;
Shift + m - amin'ny fampiasana fahatsiarovana.
Raha misy olona tsy tia ny rafitra loko default, dia manohana mihitsy aza ny K9s siny hoditra. Misy ohatra efa vita (7 sekely). eto. Ity misy ohatra iray amin'ireo hoditra ireo (amin'ny navy):
Plugins
Farany, plugins mamela anao hanitatra ny fahaizan'ny K9s. Ny tenako dia tsy nampiasa afa-tsy ny iray tamin'izy ireo tamin'ny asako - kubectl get all -n $namespace.
Toa izao. Mamorona rakitra $HOME/.k9s/plugin.yml miaraka amin'ny atiny toy izao:
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"
Ankehitriny ianao dia afaka mandeha any amin'ny namespace ary manindry ny "g" mba hanatanterahana ny baiko mifanaraka amin'izany:
Ho an'ny tsiroko, ny K9s dia tena mora ampiasaina: miaraka amin'izany dia afaka zatra haingana amin'ny fitadiavana izay rehetra ilainao ianao nefa tsy mampiasa. kubectl. Faly aho tamin'ny fijerena logs sy ny famonjena azy ireo, ny fanovana haingana ny loharanon-karena, ny hafainganam-pandehan'ny asa amin'ny ankapobeny*, ny fomba Popeye dia hita fa ilaina. Tokony hotononina manokana ny fahaizana mamorona plugins sy manamboatra ny fampiharana mifanaraka amin'ny filanao.
* Na izany aza, miaraka amin'ny habetsaky ny lozisialy, dia nahatsikaritra ny fiasan'ny K9 miadana ihany koa aho. Amin'ny fotoana toy izany, ny fitaovana dia "nihinana" 2 cores an'ny Intel Xeon E312xx ary mety hivaingana mihitsy aza.
Inona no tsy ampy amin'izao fotoana izao? Famerenana haingana amin'ny dikan-teny teo aloha (tsy miresaka RS isika) raha tsy mandeha any amin'ny lahatahiry. Fanampin'izany, ny famerenana amin'ny laoniny ihany no mitranga ihany loharano: raha nofafanao ny fanamarihana na marika iray dia tsy maintsy mamafa sy mamerina ny loharano manontolo ianao (eo no tokony handehananao any amin'ny lahatahiry). Zavatra kely iray hafa dia tsy hita ny datin'ny "backups" voatahiry.