Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Li-K9s e fana ka sebopeho sa basebelisi ba terminal bakeng sa ho sebelisana le lihlopha tsa Kubernetes. Sepheo sa morero ona oa Open Source ke ho etsa hore ho be bonolo ho tsamaea, ho beha leihlo, le ho laola lits'ebetso ho K8s. K9s e lula e beha leihlo liphetoho ho Kubernetes mme e fana ka litaelo tse potlakileng tsa ho sebetsa ka lisebelisoa tse behiloeng leihlo.

Morero o ngotsoe ho Go mme o bile teng nako e fetang selemo le halofo: boitlamo ba pele bo entsoe ka la 1 Hlakubele 2019. Ka nako ea ho ngola, ho na le linaleli tse 9000+ ho GitHub le batšehetsi ba ka bang 80. Ha re boneng hore na k9s e ka etsa eng?

Ho kenya le ho qala

Ena ke moreki (mabapi le sehlopha sa Kubernetes) sesebelisoa seo ho leng bonolo ho se etsa joalo ka setšoantšo sa Docker:

docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s

Bakeng sa likhatiso tse ling tsa Linux le lits'ebetso tse ling tsa ts'ebetso, ho boetse ho na le tse lokiselitsoeng ho kenya liphutheloana. Ka kakaretso, bakeng sa litsamaiso tsa Linux, o ka kenya faele ea 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

Ha ho na litlhoko tse khethehileng bakeng sa sehlopha sa K8s ka boeona. Ho latela litlhahlobo, sesebelisoa se boetse se sebetsa le mefuta ea khale ea Kubernetes joalo ka 1.12.

Sesebelisoa se qalisoa ho sebelisoa config e tloaelehileng .kube/config - e tšoana le kamoo e sebetsang kateng kubectl.

Navigation

Ka ho sa feleng, fensetere e bula ka sebaka sa mabitso sa kamehla se boletsoeng bakeng sa moelelo oa taba. Ke hore, haeba u ngotse kubectl config set-context --current --namespace=test, ebe sebaka sa mabitso se tla buleha test. (Sheba ka tlase bakeng sa ho fetola maemo / libaka tsa mabitso.)

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

E ea ho mokhoa oa taelo e etsoa ka ho tobetsa ":". Kamora moo, o ka laola ts'ebetso ea k9s o sebelisa litaelo - mohlala, ho sheba lenane la StatefulSets (sebakeng sa mabitso sa hajoale), o ka kenya :sts.

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Bakeng sa lisebelisoa tse ling tsa Kubernetes:

  • :ns - libaka tsa mabitso;
  • :deploy - Deployments;
  • :ing - Ingresses;
  • :svc - Litšebeletso.

Ho hlahisa lenane le felletseng la mefuta ea lisebelisoa tse fumanehang bakeng sa ho boha, ho na le taelo :aliases.

Hape ho bonolo ho sheba lenane la litaelo tse fumanehang ka ho kopanya linotlolo tse chesang ka har'a fensetere ea hona joale: ho etsa sena, tobetsa feela "?".

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Hape ho k9s ho na le mokhoa oa ho batla, ho ea moo ho lekaneng ho kena "/". Ka eona, ho phenyekolla ho etsoa ka har'a "fensetere" ea hajoale. Ha re re haeba u kile ua kena :ns, u na le lethathamo la libaka tsa mabitso tse butsoeng. Haeba ho na le tse ngata haholo tsa tsona, joale e le hore u se ke ua theohela fatše ka nako e telele, ho lekane ho kena ka fensetere ka libaka tsa mabitso. /mynamespace.

Ho batla ka lileibole, o ka khetha li-pods tsohle sebakeng sa mabitso seo u se batlang, ebe u kenya, mohlala, / -l app=whoami. Re tla fumana lethathamo la li-pods tse nang le leibole ena:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Patlisiso e sebetsa lifensetereng tsa mefuta eohle, ho kenyeletsoa li-log, ho shebella lipontšo tsa YAML, le describe bakeng sa lisebelisoa - sheba ka tlase bakeng sa lintlha tse ling mabapi le likarolo tsena.

Kakaretso ea ho tsamaea e shebahala joang?

Ka taelo :ctx u ka khetha moelelo oa taba:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Ho khetha sebaka sa mabitso, ho na le taelo e seng e boletsoe :ns, 'me u ka sebelisa patlo ea sebaka seo u se batlang: /test.

Haeba joale re khetha mohloli oo re o thahasellang (mohlala, StatefulSet e tšoanang), tlhahisoleseding e lumellanang e tla hlaha bakeng sa eona: ke li-pods tse kae tse tsamaeang ka boitsebiso bo khutšoanyane ka tsona.

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Li-pods feela li ka ba le thahasello - joale ho lekane ho kena :pod. Tabeng ea ConfigMaps (:cm - bakeng sa lethathamo la lisebelisoa tsena), o ka khetha ntho eo u e ratang ebe o tobetsa "u", ka mor'a moo K9s e tla u bolella hore na ke mang ea e sebelisang ka ho khetheha (CM ena).

Ntho e 'ngoe e sebetsang bakeng sa lisebelisoa tsa ho shebella ke tsa bona "X-ray" (pono ea Xray). Mokhoa ona o bitsoa ka taelo :xray RESOURCE le ... ho bonolo ho bontša kamoo e sebetsang kateng ho feta ho hlalosa. Mona ke setšoantšo sa StatefulSets:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes
(E 'ngoe le e 'ngoe ea lisebelisoa tsena e ka hlophisoa, ea fetoloa, ea etsoa describe.)

Mona ke Deployment le Ingress:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Ho sebetsa ka lisebelisoa

U ka fumana leseli mabapi le sesebelisoa ka seng ho YAML kapa ea eona describe ka ho tobetsa likhaoletso tsa keyboard tse tsamaellanang ("y" le "d", ka ho latellana). Ehlile, ho na le ts'ebetso ea mantlha le ho feta: lethathamo la bona le likhutšoane tsa keyboard li lula li bonahala ka lebaka la "hlooho" e bonolo ho sehokelo (e patiloeng ka ho tobetsa Ctrl + e).

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Ha u hlophisa mohloli ofe kapa ofe ("e" ka mor'a khetho ea oona), mohlophisi oa mongolo o hlalosoang ka mefuta-futa ea tikoloho oa buloa (export EDITOR=vim).

Mona ke hore na tlhaloso e qaqileng ea sesebelisoa e shebahala joang (describe):

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Sephetho sena (kapa sephetho sa ho shebella ponahalo ea mohloli oa YAML) se ka bolokoa ho sebelisoa sekhechana sa keyboard se tloaelehileng Ctrl + s. Moo e tla bolokeha ho tla tsejoa ho tsoa molaetsa oa K9s:

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

U ka boela ua tsosolosa lisebelisoa ho tsoa ho lifaele tsa "backup" tse entsoeng, ka mor'a ho tlosa li-labels le litlhaloso tsa tsamaiso. Ho etsa sena, o hloka ho ea bukeng le bona (:dir /tmp), ebe u khetha faele eo u e batlang ebe u e sebelisa apply.

Ka tsela, ka nako efe kapa efe o ka khutlela ho ReplicaSet e fetileng haeba ho na le mathata ka ea hajoale. Ho etsa sena, khetha RS e lakatsehang (:rs bakeng sa lenane la bona):

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

... ebe o khutlisetsa morao ka Ctrl + l. Re lokela ho fumana tsebiso ea hore tsohle li tsamaile hantle:

k9s/whoami-5cfbdbb469 successfully rolled back

'Me ho lekanya likopi, tobetsa feela ho "s" (scale) ebe u khetha palo e lakatsehang ea maemo:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

U ka kenya leha e le efe ea lijana ho sebelisa khetla: ho etsa sena, e-ea ho pod e lakatsehang, tobetsa "s" (shell) ebe u khetha setshelo.

Likarolo tse ling

Ha e le hantle, li-logs tsa ho shebella li boetse li tšehetsoa ("l" bakeng sa mohloli o khethiloeng). E le hore u shebe li-log tse ncha, ha ho hlokahale hore u lule u tobetsa Enter: ho lekane ho tšoaea ("m"), ebe u latela melaetsa e mecha feela.

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Hape ka fensetere e ts'oanang, o ka khetha nako ea tlhahiso ea li-log:

  • senotlolo "1" - bakeng sa motsotso o le mong;
  • "2" - metsotso e 5;
  • "3" - metsotso e 15;
  • "4" - metsotso e 30;
  • "5" - 1 hora;
  • "0" - bakeng sa bophelo bohle ba pod.

Mokhoa o khethehileng oa ho sebetsa Pulse (taelo :pulse) e bonts'a lintlha tse akaretsang mabapi le sehlopha sa Kubernetes:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Ho eona u ka bona palo ea lisebelisoa le boemo ba tsona (botala bo bontša ba nang le boemo Running).

Ntho e 'ngoe e pholileng ea K9 e bitsoa Popeye. E hlahloba lisebelisoa tsohle bakeng sa litekanyetso tse itseng tsa ho nepahala 'me e bonts'a "rating" e hlahisoang ka litlhaloso. Mohlala, u ka bona hore ha ho na lisampole kapa meeli e lekaneng, 'me setshelo se seng se ka sebetsa joalo ka motso ...

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Ho na le tšehetso ea mantlha ea Helm. Mohlala, ke kamoo o ka bonang litokollo tse kentsoeng sehlopheng:

:helm all # все
:helm $namespace # в конкретном пространстве имен

seelo

E bile e hahiloe ka har'a li-K9 Hey ke jenereithara e bonolo ea li-server tsa HTTP, e 'ngoe ho feta e tsebahalang haholo ab (ApacheBench).

Ho e nolofalletsa, o hloka ho nolofalletsa port-forward ho pod. Ho etsa sena, khetha pod ebe o tobetsa Shift + f, e-ea ho "port-forward submenu" u sebelisa "pf" alias.

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Kamora ho khetha boema-kepe le ho tobetsa Ctrl + b, benchmark ka boeona e tla qala. Litholoana tsa mosebetsi oa hae li bolokiloe ho /tmp 'me lia fumaneha hore li bonoe hamorao ho K9s.

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes
Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Ho fetola tlhophiso ea benchmark, o hloka ho theha faele $HOME/.k9s/bench-<my_context>.yml (e reretsoeng sehlopha ka seng).

NB: Ho bohlokoa hore katoloso ea lifaele tsohle tsa YAML bukeng .k9s e ne e le hantle .yml (.yaml ha e sebetse hantle).

Mohlala oa tlhophiso:

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

segokanyimmediamentsi sa sebolokigolo

Ponahalo ea likholomo bakeng sa manane a lisebelisoa e fetoloa ka ho theha faele $HOME/.k9s/views.yml. Mohlala oa litaba tsa eona:

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

Ke 'nete, ha ho na kholomo e lekaneng bakeng sa li-labels, tse teng bakeng sa tsona tlhahiso morerong.

Ho hlopha ka likholomo ho etsoa ka likhaoletso tsa keyboard:

  • Shift + n - ka lebitso;
  • Shift + o - ka li-node;
  • Shift + i - ka IP;
  • Shift + a - ka bophelo ba setshelo;
  • Shift + t - ka palo ea ho qala bocha;
  • Shift + r - ka boemo ba ho itokisa;
  • Shift + c - ka tšebeliso ea CPU;
  • Shift + m - ka tšebeliso ea mohopolo.

Haeba motho a sa rate moralo oa mebala oa kamehla, K9s e bile e tšehetsa matlalo. Mehlala e lokiselitsoeng (likotoana tse 7) e teng mona. Mohlala oa le leng la matlalo ana ke ona (sesole sa metsing):

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Li-plugins

Qetellong li-plugins lumella u ho holisa bokgoni ba K9s. Ke sebelisitse e le 'ngoe feela mosebetsing oa ka - kubectl get all -n $namespace.

E shebahala tjena. Etsa faele $HOME/.k9s/plugin.yml ka litaba tse kang tsena:

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"

Joale o ka ea sebakeng sa mabitso ebe o tobetsa "g" ho phethahatsa ka taelo e tšoanang:

Kakaretso ea k9s - sehokelo se tsoetseng pele sa Kubernetes

Har'a li-plugins ho na le, mohlala, ho kopanngoa le kubectl-jq le thuso ea ho shebella li-log. stern.

fihlela qeto e

Bakeng sa tatso ea ka, K9s e bile bonolo haholo ho sebetsa le eona: o ka tloaela ho batla tsohle tseo o li hlokang ntle le ho li sebelisa. kubectl. Ke ne ke khahliloe ke pono ea lits'oants'o le ho boloka ha tsona, ho hlophisoa ha lisebelisoa ka potlako, lebelo la mosebetsi ka kakaretso *, mokhoa oa Popeye o bile molemo. Taba e ikhethang ke bokhoni ba ho theha li-plugins le ho fetola sesebelisoa hore se lumellane le litlhoko tsa hau.

* Le hoja, ka palo e kholo ea likutu, ke ile ka boela ka hlokomela ts'ebetso e liehang ea K9s. Ka nako e joalo, sesebelisoa se "ja" li-cores tse 2 ho tsoa ho Intel Xeon E312xx mme se ne se ka ba sa hoama.

Ke eng e haellang hona joale? Ho khutlisa kapele ho mofuta o fetileng (ha re bue ka RS) ntle le ho ea bukeng. Ho phaella moo, ho hlaphoheloa ho etsahala feela bakeng sa kakaretso mohloli: haeba u hlakola tlhaloso kapa label, u tla tlameha ho hlakola le ho tsosolosa mohloli oohle (ke moo u lokelang ho ea bukeng). Ntho e 'ngoe e nyenyane - ha ho na letsatsi le lekaneng la "backups" tse joalo tse bolokiloeng.

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso