Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Awọn K9s pese wiwo olumulo ebute fun ibaraenisepo pẹlu awọn iṣupọ Kubernetes. Ibi-afẹde ti iṣẹ akanṣe Orisun Orisun yii ni lati jẹ ki o rọrun lati lilö kiri, bojuto, ati ṣakoso awọn ohun elo ni awọn K8s. K9s nigbagbogbo ṣe abojuto awọn ayipada ninu Kubernetes ati pese awọn aṣẹ iyara fun ṣiṣẹ pẹlu awọn orisun abojuto.

A kọ iṣẹ akanṣe naa ni Go ati pe o ti wa fun diẹ sii ju ọdun kan ati idaji: adehun akọkọ ti ṣe ni Oṣu Keji ọjọ 1, Ọdun 2019. Ni akoko kikọ, awọn irawọ 9000+ wa lori GitHub ati nipa 80 olùkópa. Jẹ ki a wo kini k9s le ṣe?

Fifi sori ẹrọ ati ifilọlẹ

Eyi jẹ alabara kan (ni ibatan si iṣupọ Kubernetes) ohun elo, eyiti o rọrun julọ lati ṣiṣẹ bi aworan Docker:

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

Fun diẹ ninu awọn pinpin Lainos ati awọn ọna ṣiṣe miiran tun ṣetan lati fi sori ẹrọ awọn idii. Ni gbogbogbo, fun awọn eto Linux o le fi faili alakomeji sii:

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

Ko si awọn ibeere kan pato fun iṣupọ K8s funrararẹ. Ni idajọ nipasẹ awọn atunyẹwo, ohun elo naa tun ṣiṣẹ pẹlu awọn ẹya agbalagba ti Kubernetes bii 1.12.

Awọn ohun elo bẹrẹ lilo awọn boṣewa konfigi .kube/config - iru bi o ti ṣe kubectl.

Lilọ kiri

Nipa aiyipada, window kan yoo ṣii pẹlu aaye orukọ boṣewa ti a sọ fun ọrọ-ọrọ naa. Iyẹn ni, ti o ba kọ kubectl config set-context --current --namespace=test, lẹhinna aaye orukọ yoo ṣii test. (Wo isalẹ nipa yiyipada awọn ọrọ-ọrọ/awọn aaye orukọ.)

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Lọ si pipaṣẹ mode Ti gbe jade nipa tite lori ":". Lẹhinna o le ṣakoso bi k9s ṣe n ṣiṣẹ nipa lilo awọn aṣẹ - fun apẹẹrẹ, lati wo atokọ ti StatefulSets (ni aaye orukọ lọwọlọwọ) o le tẹ sii :sts.

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Fun awọn orisun Kubernetes miiran:

  • :ns - Awọn aaye orukọ;
  • :deploy - Awọn imuṣiṣẹ;
  • :ing - Ibẹrẹ;
  • :svc - Awọn iṣẹ.

Lati ṣafihan atokọ pipe ti awọn iru orisun ti o wa fun wiwo, aṣẹ kan wa :aliases.

O tun rọrun lati wo atokọ ti awọn aṣẹ ti o wa nipasẹ awọn akojọpọ hotkey laarin window lọwọlọwọ: lati ṣe eyi, kan tẹ “?”.

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Bakannaa ni k9s wa ipo wiwa, lati lọ si eyi ti o kan nilo lati tẹ "/". O n wa nipasẹ awọn akoonu ti “window” lọwọlọwọ. Fun apẹẹrẹ, ti o ba ti wọle tẹlẹ :ns, o ni akojọ awọn aaye orukọ ti o ṣii. Ti wọn ba pọ ju, lẹhinna lati ma yi lọ si isalẹ fun igba pipẹ, kan tẹ sinu window pẹlu awọn aaye orukọ /mynamespace.

Lati wa nipasẹ awọn aami, o le yan gbogbo awọn adarọ-ese ni aaye orukọ ti o fẹ, lẹhinna tẹ sii, fun apẹẹrẹ, / -l app=whoami. A yoo gba atokọ ti awọn adarọ-ese pẹlu aami yii:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Wiwa naa n ṣiṣẹ ni gbogbo iru awọn window, pẹlu awọn akọọlẹ, wiwo YAML ati describe fun awọn orisun - wo isalẹ fun alaye diẹ sii lori awọn agbara wọnyi.

Kini ṣiṣan lilọ kiri gbogbogbo dabi?

Lilo pipaṣẹ :ctx o le yan ọrọ-ọrọ:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Lati yan aaye orukọ nibẹ ni aṣẹ ti a mẹnuba tẹlẹ :ns, ati lẹhinna o le lo wiwa fun aaye ti o fẹ: /test.

Ti a ba yan awọn orisun ti a nifẹ si (fun apẹẹrẹ, StatefulSet kanna), alaye ti o baamu yoo han fun: melo ni awọn adarọ-ese ti nṣiṣẹ pẹlu alaye kukuru nipa wọn.

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Awọn adarọ-ese nikan le jẹ iwulo - lẹhinna kan tẹ sii :pod. Ninu ọran ti ConfigMaps (:cm - fun atokọ ti awọn orisun wọnyi) o le yan nkan ti iwulo ki o tẹ “u”, lẹhin eyi K9s yoo sọ fun ọ tani gangan (CM yii) nlo rẹ.

Ẹya irọrun miiran fun wiwo awọn orisun ni wọn "X-ray" (Iwo XRay). Ipo yii ni a pe nipasẹ aṣẹ :xray RESOURCE ati... o rọrun lati ṣafihan bi o ṣe n ṣiṣẹ ju lati ṣalaye. Eyi ni apejuwe fun StatefulSets:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes
(Ọkọọkan awọn orisun wọnyi le ṣe satunkọ, yipada, ṣe describe.)

Ati pe eyi ni Ifiranṣẹ pẹlu Ingress:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Nṣiṣẹ pẹlu Resources

Alaye nipa awọn orisun kọọkan le gba ni YAML tabi rẹ describe nipa titẹ awọn ọna abuja keyboard ti o yẹ (“y” ati “d” lẹsẹsẹ). O wa, nitorinaa, paapaa awọn iṣẹ ipilẹ diẹ sii: atokọ wọn ati awọn ọna abuja keyboard nigbagbogbo han ọpẹ si “akọsori” ti o rọrun ni wiwo (ti o farapamọ nipa titẹ Ctrl + e).

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Nigbati o ba n ṣatunkọ eyikeyi orisun (“e” lẹhin yiyan rẹ), olootu ọrọ ti ṣalaye ni awọn oniyipada ayika (export EDITOR=vim).

Ati pe eyi ni kini apejuwe alaye ti orisun naa dabi (describe):

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Ijade yii (tabi iṣejade ti wiwo ifihan YAML ti orisun kan) le ṣe fipamọ ni lilo ọna abuja keyboard deede Ctrl + s. Ibi ti yoo ti fipamọ ni ao mọ lati ifiranṣẹ K9:

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

O tun le mu pada awọn orisun pada lati awọn faili afẹyinti ti o ṣẹda nipa yiyọ awọn akole eto ati awọn akọsilẹ akọkọ kuro. Lati ṣe eyi iwọ yoo nilo lati lọ si itọsọna pẹlu wọn (:dir /tmp), lẹhinna yan faili ti o fẹ ki o lo apply.

Nipa ọna, nigbakugba o le yi pada si ReplicaSet ti tẹlẹ ti awọn iṣoro ba wa pẹlu eyiti o wa lọwọlọwọ. Lati ṣe eyi, o nilo lati yan RS ti o fẹ (.:rs fun akojọ wọn):

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

ati yiyi pada nipa lilo Konturolu + l. A yẹ ki o gba iwifunni kan pe ohun gbogbo ti ṣaṣeyọri:

k9s/whoami-5cfbdbb469 successfully rolled back

Ati lati ṣe iwọn awọn ẹda, kan tẹ lori “s” (iwọn) ki o yan nọmba ti o nilo fun awọn adakọ:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

O le tẹ eyikeyi ninu awọn apoti ni lilo ikarahun: lati ṣe eyi, lọ si adarọ-ese ti o fẹ, tẹ “s” (ikarahun) ki o yan eiyan naa.

Awọn ẹya ara ẹrọ miiran

Nitoribẹẹ, awọn akọọlẹ wiwo tun ni atilẹyin (“l” fun orisun ti o yan). Ati lati wo awọn akọọlẹ tuntun, ko si iwulo lati tẹ Tẹ sii nigbagbogbo: kan ṣe ami kan (“m”), lẹhinna ṣe atẹle awọn ifiranṣẹ tuntun nikan.

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Paapaa ni window kanna o le yan sakani akoko fun awọn igbasilẹ ti njade:

  • bọtini "1" - ni iṣẹju 1;
  • "2" - iṣẹju 5;
  • "3" - iṣẹju 15;
  • "4" - iṣẹju 30;
  • "5" - 1 wakati;
  • "0" - fun gbogbo aye ti awọn podu.

Ipo iṣẹ pataki Pulse (aṣẹ :pulse) fihan alaye gbogbogbo nipa iṣupọ Kubernetes:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Ninu rẹ o le rii nọmba awọn ohun elo ati ipo wọn (awọn ti o ni ipo ti han ni alawọ ewe Running).

Miiran awon ẹya-ara ti K9s ni a npe ni Popeye. O ṣayẹwo gbogbo awọn orisun fun awọn ibeere ti o tọ ati ṣafihan “iwọnwọn” abajade pẹlu awọn alaye. Fun apẹẹrẹ, o le rii pe ko si awọn ayẹwo tabi awọn opin, ati diẹ ninu awọn eiyan le ṣee ṣiṣẹ bi gbongbo ...

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Atilẹyin Helm ipilẹ wa. Fun apẹẹrẹ, eyi ni bii o ṣe le wo awọn idasilẹ ti a fi ranṣẹ si iṣupọ:

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

Aamiboro

Wọn kọ paapaa sinu awọn K9 hey jẹ olupilẹṣẹ fifuye ti o rọrun fun olupin HTTP, yiyan si ab (ApacheBench) ti a mọ daradara.

Lati jeki o, o yoo nilo lati jeki ibudo-siwaju ninu awọn podu. Lati ṣe eyi, yan adarọ-ese ki o si tẹ Shift + f, lọ si akojọ aṣayan-iwaju ibudo ni lilo inagijẹ “pf”.

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Lẹhin yiyan ibudo ati titẹ Ctrl + b, ala naa yoo ṣe ifilọlẹ. Awọn abajade iṣẹ rẹ ti wa ni ipamọ /tmp ati pe o wa fun wiwo nigbamii ni K9s.

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes
Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Lati yi iṣeto ni ala pada o nilo lati ṣẹda faili kan $HOME/.k9s/bench-<my_context>.yml (telẹ fun kọọkan iṣupọ).

NB: O ṣe pataki pe itẹsiwaju gbogbo awọn faili YAML ninu itọsọna naa .k9s o jẹ gangan .yml (.yaml ko ṣiṣẹ daradara).

Apẹẹrẹ iṣeto:

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

ni wiwo

Irisi awọn ọwọn fun awọn atokọ awọn orisun jẹ atunṣe nipasẹ ṣiṣẹda faili kan $HOME/.k9s/views.yml. Àpẹrẹ àkóónú rẹ̀:

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

Otitọ, ko si iwe ti o to fun awọn aami, eyiti o wa oro ni ise agbese.

Tito lẹsẹsẹ nipasẹ awọn ọwọn ni a ṣe ni lilo awọn ọna abuja keyboard:

  • Shift + n - nipa orukọ;
  • Yi lọ yi bọ + o - nipasẹ awọn apa;
  • Yi lọ yi bọ + i - nipasẹ IP;
  • Yi lọ yi bọ + a - nipasẹ eiyan s'aiye;
  • Shift + t - nipasẹ nọmba awọn atunbẹrẹ;
  • Yi lọ yi bọ + r - nipa afefeayika ipo;
  • Yi lọ yi bọ + c - nipa lilo Sipiyu;
  • Yi lọ yi bọ + m - nipa lilo iranti.

Ti ẹnikan ko ba fẹran eto awọ aiyipada, K9 paapaa ṣe atilẹyin awọn awọ. Awọn apẹẹrẹ ti a ti ṣetan (awọn ege 7) wa nibi. Eyi jẹ apẹẹrẹ ti ọkan ninu awọn awọ ara wọnyi (ninu awọn ọgagun):

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Awọn afikun

Níkẹyìn awọn afikun gba o laaye lati faagun awọn agbara ti K9s. Emi funrarami lo ọkan ninu wọn nikan ni iṣẹ mi - kubectl get all -n $namespace.

O dabi eleyi. Ṣẹda faili kan $HOME/.k9s/plugin.yml pẹlu akoonu bii eyi:

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"

Bayi o le lọ si aaye orukọ ki o tẹ “g” lati ṣiṣẹ aṣẹ ti o baamu:

Akopọ ti k9s - wiwo ebute to ti ni ilọsiwaju fun Kubernetes

Lara awọn afikun wa, fun apẹẹrẹ, awọn iṣọpọ pẹlu kubectl-jq ati ohun elo fun wiwo awọn akọọlẹ Staani.

ipari

Fun itọwo mi, K9s wa ni irọrun pupọ lati lo: pẹlu rẹ o le yara lo lati wa ohun gbogbo ti o nilo laisi lilo kubectl. Inu mi dun pẹlu wiwo awọn akọọlẹ ati fifipamọ wọn, ṣiṣatunṣe iyara ti awọn orisun, iyara iṣẹ ni gbogbogbo *, Ipo Popeye jade lati wulo. Apejuwe pataki yẹ ki o jẹ ti agbara lati ṣẹda awọn afikun ati ṣe akanṣe ohun elo lati baamu awọn iwulo rẹ.

* Botilẹjẹpe, pẹlu iwọn nla ti awọn akọọlẹ, Mo tun ṣe akiyesi iṣẹ ṣiṣe ti K9s lọra. Ni iru awọn akoko bẹẹ, ohun elo “jẹ” awọn ohun kohun 2 ti Intel Xeon E312xx ati paapaa le di.

Kini o padanu ni akoko yii? Yipada ni iyara si ẹya ti tẹlẹ (a ko sọrọ nipa RS) laisi lilọ si itọsọna naa. Ni afikun, atunse waye nikan fun lapapọ awọn oluşewadi: ti o ba paarẹ akọsilẹ tabi aami, iwọ yoo ni lati paarẹ ati mu pada gbogbo awọn orisun (eyi ni ibiti iwọ yoo nilo lati lọ si itọsọna naa). Ohun kekere miiran ni pe ọjọ ti iru awọn “awọn afẹyinti” ti o fipamọ ti nsọnu.

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun