Tirohanga o k9s - he atanga tauranga matatau mo Kubernetes
K9s ka whakarato i tetahi atanga kaiwhakamahi mutunga mo te taunekeneke me nga tautau Kubernetes. Ko te whainga o tenei kaupapa Open Source he ngawari ki te whakatere, ki te aro turuki me te whakahaere i nga tono i roto i nga K8s. Ka aro turuki tonu a K9s i nga huringa i roto i nga Kubernetes me te tuku whakahau tere ki te mahi me nga rauemi kua aro turukihia.
Kua tuhia te kaupapa ki te reo Haere, kua neke atu i te kotahi tau me te haurua: ko te tuunga tuatahi i mahia i te Hui-tanguru 1, 2019. I te wa e tuhi ana, 9000+ nga whetu kei runga GitHub me te tata ki te 80 nga kaikoha. Kia kite tatou he aha te mahi a k9s?
Te whakaurunga me te whakarewatanga
He kiritaki tenei (e pa ana ki te roopu Kubernetes) he maamaa te whakahaere hei ahua Docker:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
Mo etahi tohatoha Linux me etahi atu punaha whakahaere, kua reri ano ki te whakauru putea. I te nuinga o te waa, mo nga punaha Linux, ka taea e koe te whakauru i tetahi konae takirua:
Kaore he whakaritenga motuhake mo te roopu K8s ake. Ma te whakatau i nga arotake, ka mahi ano te tono me nga putanga tawhito o Kubernetes penei i te 1.12.
Ka whakarewahia te tono ma te whakamahi i te whirihora paerewa .kube/config - he rite ki tana mahi kubectl.
Takahanga
Ma te taunoa, ka tuwhera he matapihi me te mokowāingoa taunoa kua tohua mo te horopaki. Arā, mena i tuhi koe kubectl config set-context --current --namespace=test, ka tuwhera te mokowā ingoa test. (Tirohia ki raro mo te huri i nga horopaki/mokowāingoa.)
Haere ki aratau whakahau ka mahia ma te pehi ":". I muri i tera, ka taea e koe te whakahaere i nga mahi o nga k9s ma te whakamahi i nga whakahau - hei tauira, ki te tiro i te rarangi o StatefulSets (i te waahi ingoa o naianei), ka taea e koe te whakauru. :sts.
Mo etahi atu rauemi Kubernetes:
:ns — mokowā ingoa;
:deploy — Nga tukunga;
:ing — Nga whakaurunga;
:svc — Ratonga.
Hei whakaatu i te rarangi katoa o nga momo rauemi e waatea ana hei tiro, he tono :aliases.
He watea hoki ki te tiro i te rarangi o nga whakahau e waatea ana ma nga huinga matua wera i roto i te matapihi o naianei: ki te mahi i tenei, paato noa "?".
Kei roto ano i nga k9s kei reira aratau rapu, ki te haere ki te mea he nui ki te whakauru "/". Ma te reira, ka mahia he rapunga mo nga mea o te "matapihi" o naianei. Me kii mena kua uru koe i mua :ns, kei a koe he rarangi ingoa mokowhiti kua tuwhera. Mena he maha rawa o raatau, na kia kaua e panuku ki raro mo te wa roa, he nui ki te whakauru ki te matapihi me nga ingoa ingoa. /mynamespace.
Ki te rapu ma te tapanga, ka taea e koe te kowhiri i nga putunga katoa i roto i te mokowāingoa e hiahiatia ana, ka uru, hei tauira, / -l app=whoami. Ka whiwhi tatou i te rarangi o nga pene me tenei tapanga:
Ka mahi te rapunga ki nga momo matapihi katoa, tae atu ki nga raarangi, te maataki i nga whakaaturanga YAML, me te describe mo nga rauemi - tirohia i raro mo etahi atu korero mo enei ahuatanga.
He aha te ahua o te rerenga whakatere whanui?
Ma te whakahau :ctx ka taea e koe te kowhiri i tetahi horopaki:
Hei whiriwhiri i tetahi mokowā ingoa, kei reira te whakahau kua whakahuahia :ns, ka taea e koe te whakamahi i te rapu mo te waahi e hiahiatia ana: /test.
Mena ka kowhiria e matou te rauemi e pai ana ki a matou (hei tauira, ko taua StatefulSet), ka puta nga korero e pa ana ki a ia: e hia nga poti e rere ana me nga korero poto mo ratou.
Ko nga peera anake ka pai - katahi ka nui te uru :pod. Mo te ConfigMaps (:cm - mo te rarangi o enei rauemi), ka taea e koe te kowhiri i te mea e pai ana ka paato i te "u", katahi ka korero a K9s ko wai e whakamahi ana (tenei CM).
Ko tetahi atu waahanga pai mo te tiro rauemi ko to raatau "X-ray" (Tirohanga Xray). Ka karangahia tenei aratau e te whakahau :xray RESOURCE a ... he ngawari ake te whakaatu me pehea te mahi i te whakamarama. Anei he whakaahua mo StatefulSets:
(Ka taea e ia o enei rauemi te whakatika, te whakarereke, te hanga describe.)
Anei te Whakamahinga me Ingress:
Te mahi me nga rauemi
Ka taea e koe te tiki korero mo ia rauemi i roto i te YAML me ona describe mā te pēhi i ngā pokatata papapātuhi e hāngai ana (“y” me “d”, tēnā). Ae ra, he maha atu nga mahi taketake: ko o raatau rarangi me nga pokatata papapātuhi ka kitea tonu he mihi ki te "pane" watea i roto i te atanga (huna ma te pehi Ctrl + e).
I te wa e whakatika ana i tetahi rauemi ("e" i muri i tana kowhiringa), ka whakatuwherahia te ētita kuputuhi kua tautuhia ki nga taurangi taiao (export EDITOR=vim).
Anei te ahua o te whakamaarama taipitopito o te rauemi (describe):
Ko tenei putanga (te putanga ranei o te tiro i te whakaaturanga rauemi YAML) ka taea te tiaki ma te whakamahi i te pokatata papapātuhi mohio Ctrl + s. Ko te waahi ka tiakina ka mohiotia mai i te karere K9s:
Ka taea hoki e koe te whakaora rauemi mai i nga konae taapiri i hangaia, i muri i te tango i nga tapanga punaha me nga korero. Ki te mahi i tenei, me haere koe ki te whaiaronga me ratou (:dir /tmp), ka tohua te konae e hiahiatia ana ka tono apply.
Ma te ara, i nga wa katoa ka taea e koe te hoki ki te ReplicaSet o mua mena he raru kei te waa. Hei mahi i tenei, tohua te RS e hiahiatia ana (:rs mo ta ratou rarangi ingoa):
... ka huri whakamuri me Ctrl + l. Me whiwhi whakamohiotanga kua pai nga mea katoa:
k9s/whoami-5cfbdbb469 successfully rolled back
A ki te tauine i nga tauira, paato noa i te "s" (tauine) ka kowhiri i te maha o nga tauira e hiahiatia ana:
Ka taea e koe te whakauru i tetahi o nga ipu ma te whakamahi i te anga: ki te mahi i tenei, haere ki te peera e hiahiatia ana, paatohia te "s" (anga) ka kowhiri i te ipu.
Ētahi atu āhuatanga
Ko te tikanga, kei te tautokohia te tirotiro i nga raarangi ("l" mo te rauemi kua tohua). A, ki te maataki i nga raarangi hou, kaore he take ki te pehi tonu i te Whakauru: he nui ki te tohu ("m"), katahi ka whai i nga karere hou.
I roto ano i te matapihi ano, ka taea e koe te kowhiri i te awhe wa mo te putanga o nga raarangi:
kī "1" - mo te 1 meneti;
"2" - 5 meneti;
"3" - 15 meneti;
"4" - 30 meneti;
"5" - 1 haora;
"0" - mo te ora katoa o te pākākano.
Aratau whakahaere motuhake Pulse (whakahau :pulse) e whakaatu ana i nga korero whanui mo te roopu Kubernetes:
Kei roto ka kite koe i te maha o nga rauemi me o raatau mana (e whakaatu ana te matomato i nga mea kei a raatau te mana Running).
Ko tetahi atu ahuatanga pai o K9s ka kiia Tuhinga. Ka tirotirohia e ia nga rauemi katoa mo etahi paearu tika me te whakaatu i te "whakatauranga" me nga whakamaramatanga. Hei tauira, ka kite koe he iti rawa nga tauira, he rohe ranei, ka rere etahi ipu hei pakiaka ...
He tautoko taketake mo Helm. Hei tauira, penei me pehea e kite ai koe i nga tukunga kua horahia ki te tautau:
:helm all # все
:helm $namespace # в конкретном пространстве имен
Benchmark
Ahakoa i hangaia ki nga K9 hey he kaiwhakaputa kawenga tūmau HTTP ngawari, he rereke ki te ab rongonui ake (ApacheBench).
Kia taea ai, me whakahoe te tauranga-whakamua i roto i te pākākano. Ki te mahi i tenei, tohua te pona ka pehi i te Shift + f, haere ki te tahua-a-mua ma te whakamahi i te ingoa "pf".
I muri i te kowhiri i te tauranga me te pehi Ctrl + b, ka timata te tohu tohu. Ko nga hua o ana mahi ka rongoa ki roto /tmp a kei te waatea mo te maataki i muri mai i nga K9s.
Hei huri i te whirihoranga o te tohu tohu, me hanga e koe he konae $HOME/.k9s/bench-<my_context>.yml (kua whakaritea mo ia tautau).
NB: He mea nui te toronga o nga konae YAML katoa ki roto i te raarangi .k9s i tino rite .yml (.yaml kaore e mahi tika).
Tauira whirihoranga:
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
atanga
Ko te ahua o nga pou mo nga rarangi rauemi ka whakarereketia ma te hanga i tetahi konae $HOME/.k9s/views.yml. He tauira o ona ihirangi:
k9s:
views:
v1/pods:
columns:
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
Ko te whakariterite ma nga pou ka mahia e nga pokatata papapātuhi:
Huri + n - mā te ingoa;
Huri + o - mā ngā kōpuku;
Huri + i - mā te IP;
Huri + a - i te wa e ora ana te ipu;
Huri + t - ma te maha o nga whakaara ano;
Huri + r - mā te tūnga rite;
Huri + c - ma te kohi CPU;
Huri + m - ma te kohi mahara.
Mena kaore tetahi e pai ki te kaupapa tae taunoa, ka tautokohia e K9s hiako. Ko nga tauira kua rite (e 7 nga waahanga) e waatea ana konei. Anei tetahi tauira o tetahi o enei hiako (i roto i te navy):
monomai
Hei whakamutunga monomai tukua koe ki te whakawhānui i te kaha o K9s. Ko ahau ano i whakamahi kotahi anake i roto i aku mahi - kubectl get all -n $namespace.
He penei te ahua. Waihangatia he kōnae $HOME/.k9s/plugin.yml me nga ihirangi penei:
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"
Inaianei ka taea e koe te haere ki te mokowāingoa ka pēhi i te "g" ki te mahi me te whakahau e rite ana:
I roto i nga mono kei reira, hei tauira, te whakauru ki te kubectl-jq me tetahi taputapu mo te tiro i nga raarangi. whetu.
mutunga
Mo taku reka, ko nga K9 i puta he tino watea ki te mahi: ka taea e koe te tere ki te rapu i nga mea katoa e hiahia ana koe me te kore e whakamahi. kubectl. I pai ahau ki te tirohanga o nga rakau me o raatau penapena, tere tere o nga rauemi, te tere o te mahi i roto i te whanui *, ka puta ke te whai hua o te aratau Popeye. Ko te korero motuhake ko te kaha ki te hanga monomai me te whakarereke i te tono kia pai ki o hiahia.
* Ahakoa, me te nui o nga pororakau, i kite ano ahau i te puhoi o te mahi a nga K9. I enei wa, ka "kai" te taputapu e 2 nga matua mai i te Intel Xeon E312xx ka taea hoki te whakatio.
He aha kei te ngaro i tenei wa? Ka hoki tere ki te putanga o mua (kaore matou e korero mo te RS) me te kore e haere ki te raarangi. I tua atu, ka puta te whakaoranga mo anake katoa rauemi: ki te mukua e koe he tuhipoka, tapanga ranei, me muku me te whakahoki ano i te rauemi katoa (koinei me haere koe ki te raarangi). Ko tetahi atu mea iti - kaore he ra rawaka mo nga "purua" kua tiakina.