Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

K9 afọ na-enye interface onye ọrụ ọnụ maka ịmekọrịta ụyọkọ Kubernetes. Ebumnuche nke ọrụ mepere emepe bụ ime ka ọ dị mfe ịnyagharịa, nyochaa na jikwaa ngwa na K8s. K9s na-enyocha mgbanwe na Kubernetes mgbe niile ma na-enye iwu ngwa ngwa ka ejiri akụrụngwa nyocha rụọ ọrụ.

Edere oru a na Go ma nọrọ ihe karịrị otu afọ na ọkara: emere nke mbụ na February 1, 2019. N'oge edere, enwere kpakpando 9000+ na GitHub na ihe dị ka ndị nkwado 80. Ka anyị hụ ihe k9 nwere ike ime?

Nwụnye na mmalite

Nke a bụ ngwa ahịa (n'ihe metụtara ụyọkọ Kubernetes) nke kachasị mfe iji mee dị ka onyonyo Docker:

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

Maka ụfọdụ nkesa Linux na sistemụ arụmọrụ ndị ọzọ, enwekwara njikere ịwụnye ngwugwu. Na mkpokọta, maka sistemụ Linux, ị nwere ike iwunye faịlụ ọnụọgụ abụọ:

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

Enweghị ihe achọrọ maka ụyọkọ K8 n'onwe ya. N'ikpe ikpe site na nyocha, ngwa a na-arụkwa ọrụ na ụdị Kubernetes ochie dị ka 1.12.

A na-ebido ngwa a site na iji ọkọlọtọ config .kube/config - yiri ka ọ na-eme kubectl.

Навигация

Site na ndabara, windo na-emepe nwere oghere aha ndabara akọwapụtara maka ọnọdụ ahụ. Ya bụ, ọ bụrụ na i dere kubectl config set-context --current --namespace=test, mgbe ahụ, oghere aha ga-emeghe test. (Lee n'okpuru maka ịgbanwe ọnọdụ/oghere aha.)

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Gaa na usoro iwu A na-eme ya site na ịpị ":". Mgbe nke ahụ gasịrị, ị nwere ike ijikwa ọrụ nke k9s site na iji iwu - dịka ọmụmaatụ, ilele ndepụta StatefulSets (na aha aha ugbu a), ị nwere ike ịbanye. :sts.

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Maka ụfọdụ akụrụngwa Kubernetes ndị ọzọ:

  • :ns - oghere aha;
  • :deploy - Nkwanye;
  • :ing - Ndị na-agba ọsọ;
  • :svc - Ọrụ.

Iji gosipụta ndepụta zuru oke nke ụdị akụrụngwa dị maka ikiri, enwere iwu :aliases.

Ọ dịkwa mma ịlele ndepụta iwu dị site na nchịkọta igodo ọkụ dị n'ime windo ugbu a: ime nke a, pịa "?".

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Na k9s enwere ọnọdụ ọchụchọ, ịga na nke zuru ezu ịbanye "/". Na ya, a na-eme nyocha na ọdịnaya nke "window" dị ugbu a. Ka anyị kwuo ma ọ bụrụ na ibanye na mbụ :ns, ị nwere ndepụta oghere aha mepere emepe. Ọ bụrụ na e nwere ọtụtụ n'ime ha, mgbe ahụ ka ị ghara ịpịgharịa ala ruo ogologo oge, ọ ga-ezuru ịbanye na windo na oghere aha. /mynamespace.

Ka ịchọọ site na akara, ị nwere ike họrọ pọd niile na oghere aha achọrọ, wee tinye, dịka ọmụmaatụ, / -l app=whoami. Anyị ga-enweta ndepụta pọd nwere akara a:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Ọchịchọ a na-arụ ọrụ n'ụdị windo niile, gụnyere ndekọ, nlele YAML, na describe maka akụrụngwa - lee n'okpuru maka nkọwa ndị ọzọ gbasara njirimara ndị a.

Kedu ka mgbagharị nsoro ụzọ n'ozuzu dị ka?

Спомощью команды :ctx ị nwere ike họrọ ọnọdụ:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Ka ịhọrọ oghere aha, enwere iwu akpọtụrụla :ns, wee nwee ike iji ọchụchọ maka oghere achọrọ: /test.

Ọ bụrụ na anyị họrọ ugbu a akụrụngwa anyị nwere mmasị na ya (dịka ọmụmaatụ, otu StatefulSet), ozi kwekọrọ ga-apụta maka ya: pọd ole na-agba ọsọ na ozi dị nkenke gbasara ha.

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Naanị pods nwere ike ịmasị - mgbe ahụ ọ ga-ezuru ịbanye :pod. N'ihe banyere ConfigMaps (:cm - maka ndepụta nke ihe ndị a), ị nwere ike họrọ ihe mmasị wee pịa "u", mgbe nke a gasịrị K9 ga-agwa gị onye na-eji ya kpọmkwem (CM a).

Akụkụ ọzọ dị mma maka ịlele akụrụngwa bụ ha "X-ray" (nlele Xray). A na-akpọ ọnọdụ a site n'iwu ahụ :xray RESOURCE na ... ọ dị mfe igosi otú o si arụ ọrụ karịa ịkọwa. Nke a bụ ihe atụ maka StatefulSets:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes
(Enwere ike dezie, gbanwee, mee nke ọ bụla n'ime akụrụngwa ndị a describe.)

Na ebe a bụ ntinye ya na Ingress:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Na-arụ ọrụ na akụrụngwa

Ị nwere ike nweta ozi gbasara akụrụngwa ọ bụla na YAML ma ọ bụ ya describe site na ịpị ụzọ mkpirisi ahụigodo kwekọrọ ("y" na "d", n'otu n'otu). N'ezie, enwere ọrụ ndị ọzọ bụ isi: a na-ahụ ndepụta ha na ụzọ mkpirisi keyboard mgbe niile maka “nkụnye nkụnye eji isi mee” dị mma na interface (ezoro ezo site na ịpị Ctrl + e).

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Mgbe ị na-edezi akụrụngwa ọ bụla ("e" mgbe ahọpụtara ya), a na-emepe onye editọ ederede akọwapụtara na mgbanwe gburugburu ebe obibi (export EDITOR=vim).

Na ebe a bụ nkọwa nkọwa nke akụrụngwa dị ka (describe):

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Enwere ike ịchekwa mmepụta a (ma ọ bụ mmepụta nke ikiri ihe ngosi akụrụngwa YAML) site na iji ụzọ mkpirisi ahụigodo ama ama Ctrl + s. A ga-amata ebe a ga-echekwa ya site na ozi K9:

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

Ị nwekwara ike iweghachi ihe onwunwe site na faịlụ ndabere emepụtara, mgbe ewepụchara akara usoro na nkọwa. Iji mee nke a, ịkwesịrị iji ha gaa na ndekọ aha (:dir /tmp), wee họrọ faịlụ achọrọ wee tinye apply.

Site n'ụzọ, n'oge ọ bụla ị nwere ike ịtụgharịghachi na ReplicaSet gara aga ma ọ bụrụ na enwere nsogbu na nke dị ugbu a. Iji mee nke a, họrọ RS achọrọ (:rs maka ndepụta ha):

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

... ma tụgharịa na Ctrl + l. Anyị kwesịrị ịnweta ọkwa na ihe niile gara nke ọma:

k9s/whoami-5cfbdbb469 successfully rolled back

Na iji tụọ ihe atụgharị, dị nnọọ pịa "s" (ọnụọgụ) wee họrọ ọnụọgụ ikpe achọrọ:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Ị nwere ike tinye igbe ọ bụla site na iji shei: iji mee nke a, gaa na pọd achọrọ, pịa "s" (shell) wee họrọ akpa ahụ.

Atụmatụ ndị ọzọ

N'ezie, a na-akwadokwa ndekọ ndekọ ("l" maka akụrụngwa ahọpụtara). Na iji lelee ndekọ ọhụrụ, ọ dịghị mkpa ka ị pịa Tinye mgbe niile: ọ ga-ezuru akara ("m"), wee soro naanị ozi ọhụrụ.

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Ọzọkwa na otu window, ị nwere ike họrọ oge nso maka mmepụta nke ndekọ:

  • igodo "1" - maka 1 nkeji;
  • "2" - 5 nkeji;
  • "3" - 15 nkeji;
  • "4" - 30 nkeji;
  • "5" - 1 awa;
  • "0" - maka oge ndụ niile nke pọd.

Ụdị ọrụ pụrụ iche Pulse (iwu :pulse) na-egosi ozi izugbe gbasara ụyọkọ Kubernetes:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

N'ime ya ị nwere ike ịhụ ọnụọgụ ego na ọnọdụ ha (akwụkwọ ndụ akwụkwọ ndụ na-egosi ndị nwere ọkwa Running).

A na-akpọ akụkụ ọzọ dị mma nke K9 Popeye. Ọ na-enyocha akụrụngwa niile maka ụfọdụ njirisi ziri ezi wee gosipụta “oke” nsonaazụ ya na nkọwa. Dịka ọmụmaatụ, ị nwere ike ịhụ na ezughị ezu samples ma ọ bụ oke, na ụfọdụ akpa nwere ike ịgba ọsọ dị ka mgbọrọgwụ ...

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Enwere nkwado Helm bụ isi. Dịka ọmụmaatụ, otu a ka ị ga-esi hụ mwepụta ndị etinyegoro na ụyọkọ:

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

benchmark

Ọbụna arụnyere n'ime K9s hey bụ ihe nrụpụta ihe nkesa HTTP dị mfe, ọzọ na ab (ApacheBench) mara amara.

Iji mee ya, ịkwesịrị ịmegharị ọdụ ụgbọ mmiri na pọd. Iji mee nke a, họrọ pọd wee pịa Shift + f, gaa na ọdụ ụgbọ mmiri na-aga n'ihu site na iji utu aha "pf".

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Mgbe ịhọrọ ọdụ ụgbọ mmiri wee pịa Ctrl + b, akara n'onwe ya ga-amalite. A na-echekwa nsonaazụ nke ọrụ ya /tmp ma dị maka nlele emechaa na K9s.

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes
Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Ka ịgbanwee nhazi nke benchmark, ịkwesịrị ịmepụta faịlụ $HOME/.k9s/bench-<my_context>.yml (Ekpebiri maka ụyọkọ ọ bụla).

NB: Ọ dị mkpa na ndọtị nke faịlụ YAML niile na ndekọ .k9s ọ bụ kpọmkwem .yml (.yaml adịghị arụ ọrụ nke ọma).

Ọmụmaatụ nhazi:

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

A na-agbanwe ọdịdị ogidi maka ndepụta akụrụngwa site na ịmepụta faịlụ $HOME/.k9s/views.yml. Ọmụmaatụ nke ọdịnaya ya:

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

N'ezie, enweghi kọlụm zuru oke maka akara, nke e nwere okwu na oru ngo.

A na-eme nhazi site na kọlụm site na ụzọ mkpirisi ahụigodo:

  • Shift + n - aha;
  • Mgbanwe + o - site na ọnụ;
  • Shift + i - site na IP;
  • Shift + a - site na ndụ nke akpa;
  • Shift + t - site na ọnụọgụ mmalite;
  • Shift + r - site na ọnọdụ njikere;
  • Shift + c - site na oriri CPU;
  • Shift + m - site na oriri ebe nchekwa.

Ọ bụrụ na mmadụ enweghị mmasị na atụmatụ agba ndabara, K9 na-akwado ya skins. Ọmụmaatụ emebere (iberibe 7) dị ebe a. Nke a bụ ọmụmaatụ otu n'ime skins ndị a (N'ime ndị agha mmiri):

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

Ngwa mgbakwunye

N’ikpeazụ plugins ekwe ka ị gbasaa ike nke K9. Mụ onwe m ejirila naanị otu n'ime ha rụọ ọrụ m - kubectl get all -n $namespace.

Ọ dị ka nke a. Mepụta faịlụ $HOME/.k9s/plugin.yml nwere ọdịnaya dị ka nke a:

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"

Ugbu a, ị nwere ike ịga na ebe aha wee pịa "g" iji mezuo iwu kwekọrọ:

Nleba anya nke k9s - interface ọnụ ọnụ dị elu maka Kubernetes

N'ime plugins enwere, dịka ọmụmaatụ, njikọta na kubectl-jq yana akụrụngwa maka ịlele ndekọ. stern.

nkwubi

Maka uto m, K9s tụgharịrị dị mma maka ịrụ ọrụ na: ị nwere ike mara gị ngwa ngwa ịchọ ihe niile ịchọrọ na-ejighi ya. kubectl. Enwere m mmasị na echiche nke ndekọ na nchekwa ha, ngwa ngwa na-edezi ihe onwunwe, ọsọ nke ọrụ n'ozuzu *, ọnọdụ Popeye tụgharịrị bara uru. Okwu pụrụ iche bụ ikike ịmepụta plugins na gbanwee ngwa ahụ iji kwado mkpa gị.

* Agbanyeghị, enwere m nnukwu ndekọ ndekọ, achọpụtakwara m ọrụ K9 ji nwayọ nwayọ. N'oge ndị dị otú ahụ, ịba uru "rie" 2 cores si Intel Xeon E312xx na ọbụna ifriizi.

Kedu ihe na-efu ugbu a? Ndeghachi ngwa ngwa na ụdị gara aga (anyị anaghị ekwu maka RS) na-agaghị na ndekọ. Na mgbakwunye, mgbake na-eme naanị maka mkpokọta akụ: ọ bụrụ na ihichapụ nkọwa ma ọ bụ labelụ, ị ga-ehichapụ ma weghachi akụ niile (nke a bụ ebe ịchọrọ ịga na ndekọ). Ihe ọzọ dị mkpa - enweghị ụbọchị zuru oke maka "ndabere" dị otú ahụ echekwara.

PS

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment