Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

K9s hāʻawi i kahi kikowaena mea hoʻohana no ka launa pū ʻana me nā pūʻulu Kubernetes. ʻO ka pahuhopu o kēia papahana Open Source ʻo ia ka maʻalahi o ka hoʻokele, ka nānā ʻana, a me ka hoʻokele ʻana i nā noi ma K8s. Nānā mau ʻo K9 i nā loli i nā Kubernetes a hāʻawi i nā kauoha wikiwiki e hana me nā kumuwaiwai i nānā ʻia.

Ua kākau ʻia ka papahana ma Go a ua puni ʻo ia no hoʻokahi makahiki a me ka hapa: ua hana ʻia ka hana mua ma Pepeluali 1, 2019. I ka manawa kākau, aia 9000+ mau hōkū ma GitHub a ma kahi o 80 mau mea kōkua. E ʻike kākou i ka hana a k9s?

Hoʻokomo a hoʻomaka

He mea kūʻai aku kēia (e pili ana i ka hui Kubernetes) i maʻalahi loa e holo ma ke ʻano he kiʻi Docker:

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

No kekahi mau māhele Linux a me nā ʻōnaehana hana ʻē aʻe, aia pū kekahi i mākaukau e hoʻokomo nā kīʻaha. Ma ka laulā, no nā ʻōnaehana Linux, hiki iā ʻoe ke hoʻokomo i kahi faila 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

ʻAʻohe koi kikoʻī no ka hui K8s ponoʻī. Ke hoʻoholo nei e nā loiloi, hana pū ka noi me nā mana kahiko o Kubernetes e like me 1.12.

Hoʻomaka ʻia ka noi me ka hoʻohana ʻana i ka config maʻamau .kube/config - e like me kona hana ʻana kubectl.

ʻO nā mea

Ma ka paʻamau, wehe ʻia kahi puka me ka inoa inoa paʻamau i kuhikuhi ʻia no ka pōʻaiapili. ʻO ia hoʻi, inā ʻoe i kākau kubectl config set-context --current --namespace=test, a laila e wehe ʻia ka inoa inoa test. (E nānā ma lalo no ka hoʻololi ʻana i nā pōʻaiapili/namespaces.)

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

E hele ʻano kauoha hana ʻia ma ke kaomi ʻana i ":". Ma hope o kēlā, hiki iā ʻoe ke kāohi i ka hana o k9s me ka hoʻohana ʻana i nā kauoha - no ka laʻana, e nānā i ka papa inoa o StatefulSets (i ka inoa inoa o kēia manawa), hiki iā ʻoe ke komo. :sts.

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

No kekahi mau kumuwaiwai Kubernetes:

  • :ns - nā papa inoa;
  • :deploy - Hoʻolālā;
  • :ing - Hoʻokomo;
  • :svc — lawelawe.

No ka hōʻike ʻana i kahi papa inoa piha o nā ʻano kumuwaiwai i loaʻa no ka nānā ʻana, aia kahi kauoha :aliases.

He mea maʻalahi hoʻi e nānā i ka papa inoa o nā kauoha i loaʻa e nā hui kī wela i loko o ka puka aniani o kēia manawa: e hana i kēia, kaomi wale ma "?".

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Aia nō ma k9s ʻano hulina, e hele i kahi e lawa ai ke komo "/". Me ia, hana ʻia kahi hulina ma nā mea o ka "window" o kēia manawa. E ʻōlelo inā ua komo mua ʻoe :ns, loaʻa iā ʻoe kahi papa inoa o nā papa inoa. Inā nui ka nui o lākou, a laila i ʻole e ʻōwili i lalo no ka manawa lōʻihi, ua lawa ia e komo i ka puka makani me nā inoa inoa. /mynamespace.

No ka huli ʻana ma nā lepili, hiki iā ʻoe ke koho i nā pods a pau i ka inoa inoa i makemake ʻia, a laila komo, no ka laʻana, / -l app=whoami. E loaʻa iā mākou kahi papa inoa o nā pods me kēia lepili:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Hana ʻia ka ʻimi ma nā ʻano puka makani āpau, me nā lāʻau, ke nānā ʻana i nā hōʻike YAML, a describe no nā kumuwaiwai - e ʻike ma lalo no nā kikoʻī hou aku no kēia mau hiʻohiʻona.

He aha ke ʻano o ka holo hoʻokele holoʻokoʻa?

Me ke kauoha :ctx hiki iā ʻoe ke koho i kahi pōʻaiapili:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

No ke koho ʻana i kahi inoa inoa, aia ke kauoha i ʻōlelo ʻia :ns, a laila hiki iā ʻoe ke hoʻohana i ka ʻimi no ka wahi i makemake ʻia: /test.

Inā koho mākou i ke kumu waiwai a mākou e makemake ai (no ka laʻana, ʻo StatefulSet hoʻokahi), e ʻike ʻia ka ʻike e pili ana iā ia: ehia nā pods e holo nei me ka ʻike pōkole e pili ana iā lākou.

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

ʻO nā pods wale nō paha ka hoihoi - a laila lawa ke komo :pod. I ka hihia o ConfigMaps (:cm - no ka papa inoa o kēia mau kumuwaiwai), hiki iā ʻoe ke koho i ka mea hoihoi a kaomi ma ka "u", a laila e haʻi aku ʻo K9s iā ʻoe i ka mea hoʻohana pono iā ia (kēia CM).

ʻO kekahi hiʻohiʻona lima no ka nānā ʻana i nā kumuwaiwai ʻo kā lākou "X-ray" (Nānā Xray). Ua kapa ʻia kēia ʻano e ke kauoha :xray RESOURCE a ... ʻoi aku ka maʻalahi o ka hōʻike ʻana i ka hana ma mua o ka wehewehe. Eia kahi hiʻohiʻona no StatefulSets:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes
(Hiki ke hoʻoponopono, hoʻololi, hana ʻia kēlā me kēia kumuwaiwai describe.)

A eia ka Deployment me Ingress:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Ke hana nei me nā kumuwaiwai

Hiki iā ʻoe ke loaʻa ka ʻike e pili ana i kēlā me kēia kumuwaiwai ma YAML a i ʻole describe ma ke kaomi ʻana i nā pōkole kīpē e pili ana ("y" a me "d", kēlā me kēia). ʻOiaʻiʻo, ʻoi aku ka nui o nā hana maʻamau: ʻike mau ʻia kā lākou papa inoa a me nā ʻaoʻao pōkole e hoʻomaikaʻi i kahi "header" kūpono i ka interface (huna ʻia ma ke kaomi ʻana iā Ctrl + e).

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Ke hoʻoponopono nei i kekahi kumuwaiwai ("e" ma hope o kona koho ʻia ʻana), wehe ʻia ka mea hoʻoponopono kikokikona i wehewehe ʻia i nā ʻano hoʻololi kaiapuni (export EDITOR=vim).

A eia ke ʻano o ka wehewehe kikoʻī o ka punawai (describe):

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Hiki ke mālama ʻia kēia mea hoʻopuka (a i ʻole ka puka o ka nānā ʻana i ka hōʻike YAML o ka punawai) me ka hoʻohana ʻana i ka pōkole keyboard Ctrl + s. Ma kahi e mālama ʻia ai e ʻike ʻia mai ka leka K9s:

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

Hiki iā ʻoe ke hoʻihoʻi i nā kumuwaiwai mai nā faila i hana ʻia, ma hope o ka wehe ʻana i nā lepili ʻōnaehana a me nā annotation. No ka hana ʻana i kēia, pono ʻoe e hele i ka papa kuhikuhi me lākou (:dir /tmp), a laila koho i ka faila i makemake ʻia a hoʻopili apply.

Ma ke ala, i kēlā me kēia manawa hiki iā ʻoe ke hoʻi i ka ReplicaSet mua inā he pilikia me ka mea i kēia manawa. No ka hana ʻana i kēia, koho i ka RS makemake (:rs no kā lākou papa inoa):

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

... a hoʻi hou me Ctrl + l. Pono mākou e loaʻa ka leka hoʻomaopopo ua holo maikaʻi nā mea a pau:

k9s/whoami-5cfbdbb469 successfully rolled back

A e hoʻonui i nā replicas, e kaomi wale i ka "s" (scale) a koho i ka helu o nā manawa i makemake ʻia:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Hiki iā ʻoe ke hoʻokomo i kekahi o nā pahu me ka hoʻohana ʻana i ka pūpū: e hana i kēia, e hele i ka pod i makemake ʻia, kaomi ma "s" (shell) a koho i ka ipu.

Nā hiʻohiʻona ʻē aʻe

ʻOiaʻiʻo, kākoʻo pū ʻia ka nānā ʻana i nā lāʻau ("l" no ka punawai i koho ʻia). A no ka nānā ʻana i nā lāʻau hou, ʻaʻohe pono e kaomi mau i ke Enter: ua lawa ke kaha ("m"), a laila hahai wale i nā memo hou.

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Ma ka puka aniani hoʻokahi, hiki iā ʻoe ke koho i ka palena manawa no ka hoʻopuka ʻana o nā lāʻau:

  • kī "1" - no 1 minuke;
  • "2" - 5 mau minuke;
  • "3" - 15 mau minuke;
  • "4" - 30 mau minuke;
  • "5" - 1 hola;
  • "0" - no ke ola holoʻokoʻa o ka pod.

ʻAno hana kūikawā Pulse (kauoha :pulse) hōʻike i ka ʻike maʻamau e pili ana i ka pūʻulu Kubernetes:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

I loko o laila hiki iā ʻoe ke ʻike i ka helu o nā kumuwaiwai a me ko lākou kūlana (hōʻike ʻia ka ʻōmaʻomaʻo i nā mea i loaʻa ke kūlana Running).

Ua kapa ʻia kekahi hiʻohiʻona maikaʻi o K9s Popeye. Nānā ia i nā kumuwaiwai āpau no kekahi mau pae hoʻohālikelike o ka pololei a hōʻike i ka hopena "helu" me nā wehewehe. No ka laʻana, hiki iā ʻoe ke ʻike ʻaʻole lawa nā laʻana a i ʻole nā ​​palena, a hiki i kekahi pahu ke holo e like me ke aʻa ...

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Aia ke kākoʻo kumu no Helm. No ka laʻana, pehea ʻoe e ʻike ai i nā hoʻokuʻu i kau ʻia ma ka pūʻulu:

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

Benchmark

ʻOiai i kūkulu ʻia i loko o nā K9 Hey he mea hoʻohana hoʻoili ukana HTTP maʻalahi, kahi ʻokoʻa i ka ab i ʻike ʻia (ApacheBench).

I mea e hiki ai iā ia, pono ʻoe e hoʻā i ka port-forward i ka pod. No ka hana ʻana i kēia, koho i ka pod a kaomi Shift + f, e hele i ka submenu port-forward me ka hoʻohana ʻana i ka inoa "pf".

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Ma hope o ke koho ʻana i ke awa a kaomi iā Ctrl + b, e hoʻomaka ka benchmark ponoʻī. Mālama ʻia nā hopena o kāna hana /tmp a loaʻa no ka nānā ʻana ma hope ma K9s.

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes
Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

No ka hoʻololi ʻana i ka hoʻonohonoho ʻana o ka benchmark, pono ʻoe e hana i kahi faila $HOME/.k9s/bench-<my_context>.yml (hoʻoholo ʻia no kēlā me kēia pūʻulu).

NB: He mea nui ka hoʻonui ʻana i nā faila YAML āpau i kahi papa kuhikuhi .k9s pololei loa .yml (.yaml ʻaʻole hana pololei).

Laʻana hoʻonohonoho:

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

mau '

Hoʻololi ʻia ke ʻano o nā kolamu no ka papa inoa o nā kumuwaiwai ma o ka hana ʻana i kahi faila $HOME/.k9s/views.yml. He laʻana o kāna ʻike:

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

ʻOiaʻiʻo, ʻaʻole lawa ka kolamu no nā lepili, no laila pilikia ma ka papahana.

Hoʻopili ʻia e nā kolamu e nā ʻaoʻao pōkole:

  • Shift + n - ma ka inoa;
  • Hoʻololi + o - e nā ʻōhua;
  • Shift + i - na IP;
  • Shift + a - ma ke ola o ka ipu;
  • Shift + t - ma ka helu o ka hoʻomaka hou;
  • Shift + r - ma ke kūlana mākaukau;
  • Shift + c - ma ka hoʻohana ʻana i ka CPU;
  • Shift + m - ma ka hoʻohana ʻana i ka hoʻomanaʻo.

Inā makemake ʻole kekahi i ka hoʻolālā kala paʻamau, kākoʻo ʻo K9s nā ʻili. Loaʻa nā laʻana i hana ʻia (7 ʻāpana). maanei. Eia kekahi laʻana o kekahi o kēia mau ʻili (i ka moana):

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Nā Plugins

I ka hopena nā mea hoʻopili ʻae iā ʻoe e hoʻonui i nā hiki o K9s. Ua hoʻohana wau i hoʻokahi wale nō o lākou i kaʻu hana - kubectl get all -n $namespace.

Ua like me keia. Hana i kahi faila $HOME/.k9s/plugin.yml me nā mea e like me kēia:

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"

I kēia manawa hiki iā ʻoe ke hele i ka inoa inoa a kaomi "g" e hoʻokō me ke kauoha e pili ana:

Ka nānā 'ana o k9s - he mea ho'okele ho'okele holomua no Kubernetes

Aia ma waena o nā plugins, no ka laʻana, hoʻohui me kubectl-jq a me kahi pono no ka nānā ʻana i nā lāʻau. moku.

hopena

No koʻu ʻono, ua lilo nā K9 i mea maʻalahi e hana pū me: hiki iā ʻoe ke maʻa koke i ka ʻimi ʻana i nā mea āpau āu e pono ai me ka hoʻohana ʻole. kubectl. Ua hauʻoli wau i ka ʻike o nā lāʻau a me kā lākou mālama ʻana, hoʻoponopono wikiwiki i nā kumuwaiwai, ka wikiwiki o ka hana ma ka laulā *, ua lilo ka Popeye mode i mea pono. ʻO kahi ʻōlelo kūikawā ka hiki ke hana i nā plugins a hoʻololi i ka noi e kūpono i kāu mau pono.

* ʻOiai, me ka nui o nā lāʻau, ʻike pū wau i ka hana lohi o nā K9. I kēlā mau manawa, "ʻai" ka pono "2 cores mai ka Intel Xeon E312xx a hiki ke hoʻokuʻu.

He aha ka hemahema i kēia manawa? Hoʻihoʻi wikiwiki i ka mana mua (ʻaʻole mākou e kamaʻilio e pili ana iā RS) me ka hele ʻole i ka papa kuhikuhi. Eia hou, hiki ke hoʻihoʻi wale no nui punawai: inā ʻoe e holoi i kahi hōʻike a lepili paha, pono ʻoe e holoi a hoʻihoʻi i ka punawai holoʻokoʻa (ʻo ia kahi e pono ai ʻoe e hele i ka papa kuhikuhi). ʻO kekahi mea ʻē aʻe - ʻaʻole lawa ka lā no kēlā "backups" i mālama ʻia.

PS

E heluhelu pū ma kā mākou blog:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka