Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

K9s nyedhiyakake antarmuka pangguna terminal kanggo sesambungan karo kluster Kubernetes. Tujuan proyek Open Source iki yaiku supaya gampang navigasi, ngawasi, lan ngatur aplikasi ing K8s. K9s terus-terusan ngawasi owah-owahan ing Kubernetes lan menehi printah cepet kanggo nggarap sumber daya sing dipantau.

Proyèk kasebut ditulis ing Go lan wis ana luwih saka setengah taun: komitmen pisanan digawe tanggal 1 Februari 2019. Ing wektu nulis, ana 9000+ lintang ing GitHub lan kira-kira 80 kontributor. Ayo ndeleng apa sing bisa ditindakake k9s?

Instalasi lan miwiti

Iki minangka aplikasi klien (gandhengan karo kluster Kubernetes) sing paling gampang ditindakake minangka gambar Docker:

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

Kanggo sawetara distribusi Linux lan sistem operasi liyane, ana uga sing siap diinstal paket. Umumé, kanggo sistem Linux, sampeyan bisa nginstal file binar:

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

Ora ana syarat tartamtu kanggo kluster K8s dhewe. Miturut review, aplikasi kasebut uga bisa digunakake karo versi lawas saka Kubernetes kayata 1.12.

Aplikasi diluncurake nggunakake konfigurasi standar .kube/config - padha karo carane kubectl.

Pituduh

Kanthi gawan, jendhela mbukak kanthi spasi jeneng standar sing ditemtokake kanggo konteks kasebut. Sing, yen sampeyan nulis kubectl config set-context --current --namespace=test, banjur spasi jeneng bakal mbukak test. (Deleng ing ngisor iki kanggo ngganti konteks/ruangan jeneng.)

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Menyang mode printah wis rampung kanthi mencet ":". Sawisé iku, sampeyan bisa ngontrol operasi k9s nggunakake printah - contone, kanggo ndeleng dhaptar StatefulSets (ing spasi jeneng saiki), sampeyan bisa ngetik :sts.

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Kanggo sawetara sumber daya Kubernetes liyane:

  • :ns - spasi jeneng;
  • :deploy - Panyebaran;
  • :ing - Ingress;
  • :svc - Layanan.

Kanggo nampilake dhaptar lengkap jinis sumber daya kasedhiya kanggo ndeleng, ana printah :aliases.

Sampeyan uga trep kanggo ndeleng dhaptar printah sing kasedhiya dening kombinasi tombol panas ing jendhela saiki: kanggo nindakake iki, mung klik "?".

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Uga ing k9s ana mode telusuran, kanggo pindhah menyang kang cukup kanggo ngetik "/". Kanthi kasebut, telusuran ditindakake ing isi "jendhela" saiki. Ayo ngomong yen sampeyan sadurunge mlebu :ns, sampeyan duwe dhaptar spasi jeneng sing mbukak. Yen ana akeh banget, mula supaya ora nggulung mudhun nganti suwe, cukup kanggo mlebu ing jendela kanthi spasi jeneng. /mynamespace.

Kanggo nelusuri miturut label, sampeyan bisa milih kabeh pod ing ruang jeneng sing dikarepake, banjur ketik, contone, / -l app=whoami. Kita bakal entuk dhaptar pod kanthi label iki:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Panelusuran bisa digunakake ing kabeh jinis jendhela, kalebu log, ndeleng manifests YAML, lan describe kanggo sumber daya - ndeleng ngisor kanggo rincian liyane babagan fitur iki.

Kaya apa aliran navigasi sakabèhé?

Kanthi dhawuh :ctx sampeyan bisa milih konteks:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Kanggo milih papan jeneng, ana prentah sing wis kasebut :ns, banjur sampeyan bisa nggunakake panelusuran kanggo spasi sing dikarepake: /test.

Yen saiki kita milih sumber daya kita kasengsem ing (contone, padha StatefulSet), informasi sing cocog bakal katon kanggo iku: carane akeh pods mlaku karo informasi singkat bab mau.

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Mung polong bisa dadi kapentingan - banjur cukup kanggo mlebu :pod. Ing kasus ConfigMaps (:cm - kanggo dhaptar sumber daya iki), sampeyan bisa milih obyek kapentingan lan klik ing "u", sawise K9s bakal pitutur marang kowe sing khusus nggunakake (CM iki).

Fitur liyane sing migunani kanggo ndeleng sumber daya yaiku "x-ray" (xray view). Mode iki diarani printah :xray RESOURCE lan ... luwih gampang kanggo nuduhake cara kerjane tinimbang nerangake. Iki minangka ilustrasi kanggo StatefulSets:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes
(Saben sumber daya iki bisa diowahi, diganti, digawe describe.)

Lan iki Deployment karo Ingress:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Nggarap sumber daya

Sampeyan bisa entuk informasi babagan saben sumber ing YAML utawa sawijining describe kanthi mencet trabasan keyboard sing cocog ("y" lan "d", mungguh). Mesthi, ana operasi sing luwih dhasar: dhaptar lan trabasan keyboard tansah katon amarga "header" sing trep ing antarmuka (didhelikake kanthi mencet Ctrl + e).

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Nalika nyunting sumber daya apa wae ("e" sawise dipilih), editor teks sing ditetepake ing variabel lingkungan dibukak (export EDITOR=vim).

Lan iki minangka gambaran rinci babagan sumber daya (describe):

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Output iki (utawa output saka ndeleng manifest sumber daya YAML) bisa disimpen nggunakake trabasan keyboard akrab Ctrl + s. Ing ngendi bakal disimpen bakal dingerteni saka pesen K9s:

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

Sampeyan uga bisa mulihake sumber daya saka file serep sing digawe, sawise mbusak label sistem lan anotasi. Kanggo nindakake iki, sampeyan kudu pindhah menyang direktori karo wong-wong mau (:dir /tmp), banjur pilih file sing dikarepake lan aplikasi apply.

Miturut cara, sawayah-wayah sampeyan bisa muter maneh menyang ReplicaSet sadurunge yen ana masalah karo sing saiki. Kanggo nindakake iki, pilih RS sing dikarepake (:rs kanggo dhaptar dheweke):

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

... lan muter maneh karo Ctrl + l. Kita kudu entuk kabar yen kabeh wis apik:

k9s/whoami-5cfbdbb469 successfully rolled back

Lan kanggo skala replika, mung klik "s" (skala) lan pilih nomer sing dikarepake:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Sampeyan bisa nglebokake wadhah apa wae kanthi nggunakake cangkang: kanggo nindakake iki, pindhah menyang polong sing dikarepake, klik "s" (cangkang) lan pilih wadhah kasebut.

Fitur liyane

Mesthine, ndeleng log uga didhukung ("l" kanggo sumber sing dipilih). Lan kanggo nonton log anyar, ora perlu terus-terusan pencet Ketik: cukup kanggo menehi tandha ("m"), banjur mung nglacak pesen anyar.

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Uga ing jendhela sing padha, sampeyan bisa milih sawetara wektu kanggo output log:

  • tombol "1" - kanggo 1 menit;
  • "2" - 5 menit;
  • "3" - 15 menit;
  • "4" - 30 menit;
  • "5" - 1 jam;
  • "0" - kanggo kabeh umur pod.

Mode operasi khusus Pulse (command :pulse) nuduhake informasi umum babagan kluster Kubernetes:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Ing kono sampeyan bisa ndeleng jumlah sumber daya lan statuse (ijo nuduhake sing duwe status Running).

Fitur keren liyane saka K9 diarani Popeye. Iku mriksa kabeh sumber kanggo kritéria tartamtu saka bener lan nampilake asil "rating" karo panjelasan. Contone, sampeyan bisa ndeleng manawa ora cukup conto utawa watesan, lan sawetara wadhah bisa mbukak minangka root ...

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Ana dhukungan dhasar kanggo Helm. Contone, iki carane sampeyan bisa ndeleng rilis sing disebarake ing kluster:

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

pathokan

Malah dibangun menyang K9s hey punika generator mbukak server HTTP prasaja, alternatif kanggo ab luwih dikenal (ApacheBench).

Kanggo ngaktifake, sampeyan kudu ngaktifake port-forward ing pod. Kanggo nindakake iki, pilih pod banjur pencet Shift + f, pindhah menyang submenu port-maju nggunakake alias "pf".

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Sawise milih port lan mencet Ctrl + b, pathokan dhewe bakal diwiwiti. Asil karyane disimpen ing /tmp lan kasedhiya kanggo ndeleng mengko ing K9s.

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes
Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Kanggo ngganti konfigurasi pathokan, sampeyan kudu nggawe file $HOME/.k9s/bench-<my_context>.yml (ditemtokake kanggo saben klompok).

NB: Penting yen ekstensi kabeh file YAML ing direktori .k9s iku persis .yml (.yaml ora bisa mlaku kanthi bener).

Conto konfigurasi:

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

antarmuka

Tampilan kolom kanggo dhaptar sumber daya diowahi kanthi nggawe file $HOME/.k9s/views.yml. Conto isine:

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

Bener, ora cukup kolom kanggo label, sing ana masalah ing project.

Ngurutake miturut kolom ditindakake kanthi trabasan keyboard:

  • Shift + n - miturut jeneng;
  • Shift + o - dening simpul;
  • Shift + i - dening IP;
  • Shift + a - miturut umur wadhah;
  • Shift + t - kanthi jumlah restart;
  • Shift + r - kanthi status kesiapan;
  • Shift + c - dening konsumsi CPU;
  • Shift + m - dening konsumsi memori.

Yen wong ora seneng skema warna standar, K9s malah ndhukung kulit. Conto sing wis siap (7 potongan) kasedhiya kene. Iki minangka conto salah sawijining kulit kasebut (ing angkatan laut):

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Plugins

Pungkasane plugins ngijini sampeyan kanggo nggedhekake kabisan saka K9s. Aku dhewe wis nggunakake mung siji ing karya - kubectl get all -n $namespace.

Iku katon kaya iki. Nggawe file $HOME/.k9s/plugin.yml kanthi isi kaya iki:

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"

Saiki sampeyan bisa pindhah menyang namespace banjur pencet "g" kanggo nglakokake printah sing cocog:

Ringkesan k9s - antarmuka terminal canggih kanggo Kubernetes

Ing antarane plugin ana, contone, integrasi karo kubectl-jq lan sarana kanggo ndeleng log Buritan.

kesimpulan

Kanggo rasaku, K9s dadi trep banget kanggo digarap: sampeyan bisa kanthi cepet nggoleki kabeh sing dibutuhake tanpa nggunakake. kubectl. Aku seneng karo tampilan log lan nyimpen, nyunting sumber daya kanthi cepet, kacepetan kerja umume *, mode Popeye dadi migunani. Sebutan khusus yaiku kemampuan kanggo nggawe plugin lan ngowahi aplikasi supaya cocog karo kabutuhan sampeyan.

* Senajan, karo volume gedhe saka log, Aku uga weruh operasi alon K9s. Ing wektu kuwi, sarana "mangan" 2 inti saka Intel Xeon E312xx lan malah bisa beku.

Apa sing ilang saiki? Rollback cepet menyang versi sadurungé (kita ora ngomong bab RS) tanpa menyang direktori. Kajaba iku, Recovery occurs mung kanggo total sumber: yen sampeyan mbusak anotasi utawa label, sampeyan kudu mbusak lan mulihake kabeh sumber (iki ngendi sampeyan kudu pindhah menyang direktori). Trifle liyane - ora ana tanggal cukup kanggo "serep" sing disimpen kasebut.

PS

Waca uga ing blog kita:

Source: www.habr.com

Add a comment