Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

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/bin

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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.

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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.

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes
(Ny tsirairay amin'ireo loharano ireo dia azo ovaina, ovaina, atao describe.)

Ary ity ny Deployment miaraka amin'ny Ingress:

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

Miara-miasa amin'ny Resources

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully!

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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.

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

Overview ny k9s - interface tsara terminal ho an'ny 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...

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

Misy fanohanana Helm fototra. Ohatra, izao no fomba ahafahanao mijery ny famoahana napetraka ao amin'ny cluster:

:helm all # всС
:helm $namespace # Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½

Benchmark

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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.

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes
Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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

Ohatra config:

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 tsara

Ny endriky ny tsanganana ho an'ny lisitry ny loharanon-karena dia ovaina amin'ny famoronana rakitra $HOME/.k9s/views.yml. Ohatra amin'ny votoatiny:

k9s:
 views:
   v1/pods:
     columns:
       - AGE
       - NAMESPACE
       - NAME
       - IP
       - NODE
       - STATUS
       - READY
   v1/services:
     columns:
       - AGE
       - NAMESPACE
       - NAME
       - TYPE
       - CLUSTER-IP

Marina fa tsy ampy ny tsanganana ho an'ny etikety, izay misy olana amin'ny tetikasa.

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

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

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:

Overview ny k9s - interface tsara terminal ho an'ny Kubernetes

Anisan'ireo plugins misy, ohatra, ny fampidirana miaraka amin'ny kubectl-jq ary fitaovana iray hijerena logs. hentitra.

famaranana

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.

Sal

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment