Yfirlit yfir k9s - háþróað flugstöðvarviðmót fyrir Kubernetes
K9s býður upp á notendaviðmót flugstöðvar til að hafa samskipti við Kubernetes klasa. Markmiðið með þessu Open Source verkefni er að gera það auðvelt að sigla, fylgjast með og stjórna forritum í K8s. K9s fylgist stöðugt með breytingum á Kubernetes og býður upp á skjótar skipanir til að vinna með vöktuðum auðlindum.
Verkefnið er skrifað í Go og hefur staðið yfir í meira en eitt og hálft ár: fyrsta skuldbindingin var gerð 1. febrúar 2019. Þegar þetta er skrifað eru 9000+ stjörnur á GitHub og um 80 þátttakendur. Við skulum sjá hvað k9s geta gert?
Uppsetning og gangsetning
Þetta er viðskiptavinur (í tengslum við Kubernetes klasann) forrit sem er auðveldast að keyra sem Docker mynd:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
Fyrir sumar Linux dreifingar og önnur stýrikerfi eru líka tilbúnar til uppsetningar pakka. Almennt, fyrir Linux kerfi, geturðu sett upp tvöfalda skrá:
Það eru engar sérstakar kröfur fyrir K8s klasann sjálfan. Af umsögnum að dæma virkar forritið einnig með eldri útgáfum af Kubernetes eins og 1.12.
Forritið er ræst með því að nota staðlaða stillingu .kube/config - svipað og það gerir kubectl.
Leiðsögn
Sjálfgefið er að gluggi opnast með sjálfgefnu nafnrými sem tilgreint er fyrir samhengið. Það er að segja ef þú skrifaðir kubectl config set-context --current --namespace=test, þá opnast nafnrýmið test. (Sjá hér að neðan til að breyta samhengi/nafnarýmum.)
Fara til stjórnunarhamur er gert með því að ýta á ":". Eftir það geturðu stjórnað rekstri k9s með því að nota skipanir - til dæmis, til að skoða listann yfir StatefulSets (í núverandi nafnrými), geturðu slegið inn :sts.
Fyrir sum önnur Kubernetes tilföng:
:ns — nafnarými;
:deploy — Dreifingar;
:ing — Inngangur;
:svc - Þjónusta.
Til að birta heildarlista yfir auðlindategundir sem hægt er að skoða er skipun :aliases.
Það er líka þægilegt að skoða listann yfir skipanir sem eru tiltækar með flýtilyklum innan núverandi glugga: til að gera þetta, smelltu bara á "?".
Einnig í k9s er til leitarhamur, til að fara þangað sem það er nóg að slá inn "/". Með því er leitað að innihaldi núverandi "glugga". Segjum að þú hafir áður slegið inn :ns, þú ert með opinn lista yfir nafnrými. Ef þeir eru of margir, þá er nóg að slá inn í gluggann með nafnasvæðum til að fletta ekki niður í langan tíma /mynamespace.
Til að leita eftir merkjum geturðu valið alla belg í nafnrýminu sem þú vilt, sláðu síðan inn td. / -l app=whoami. Við munum fá lista yfir belg með þessu merki:
Leitin virkar í alls kyns gluggum, þar á meðal logs, skoða YAML upplýsingaskrá og describe fyrir auðlindir - sjá hér að neðan til að fá frekari upplýsingar um þessa eiginleika.
Hvernig lítur leiðsöguflæðið út í heild?
Með skipuninni :ctx þú getur valið samhengi:
Til að velja nafnrými er skipunin sem þegar hefur verið nefnd :ns, og þá geturðu notað leitina að viðkomandi svæði: /test.
Ef við veljum núna auðlindina sem við höfum áhuga á (til dæmis sama StatefulSet), munu samsvarandi upplýsingar birtast fyrir það: hversu margir belg eru í gangi með stuttum upplýsingum um þá.
Einungis belg geta verið áhugaverð - þá er nóg að slá inn :pod. Ef um er að ræða ConfigMaps (:cm - fyrir listann yfir þessar auðlindir) geturðu valið áhugaverðan hlut og smellt á "u", eftir það mun K9s segja þér hver notar það sérstaklega (þetta CM).
Annar handhægur eiginleiki til að skoða auðlindir er þeirra "röntgengeisli" (röntgenmynd). Þessi háttur er kallaður af skipuninni :xray RESOURCE og ... það er auðveldara að sýna hvernig það virkar en að útskýra. Hér er mynd fyrir StatefulSets:
(Hægt er að breyta, breyta, búa til hverja þessara auðlinda describe.)
Og hér er Dreifing með Ingress:
Vinna með auðlindir
Þú getur fengið upplýsingar um hverja auðlind í YAML eða þess describe með því að ýta á samsvarandi flýtilykla („y“ og „d“ í sömu röð). Auðvitað eru enn fleiri grunnaðgerðir: listi þeirra og flýtilykla eru alltaf sýnilegir þökk sé þægilegum „haus“ í viðmótinu (falinn með því að ýta á Ctrl + e).
Þegar þú breytir hvaða tilföng sem er ("e" eftir val þess) opnast textaritillinn sem er skilgreindur í umhverfisbreytunum (export EDITOR=vim).
Og hér er hvernig nákvæm lýsing á auðlindinni lítur út (describe):
Þetta úttak (eða úttakið við að skoða YAML auðlindaskrána) er hægt að vista með því að nota kunnuglega flýtilykla Ctrl + s. Hvar það verður vistað verður vitað af K9s skilaboðunum:
Þú getur líka endurheimt tilföng úr tilbúnum öryggisafritsskrám, eftir að hafa fjarlægt kerfismerki og athugasemdir. Til að gera þetta þarftu að fara í möppuna með þeim (:dir /tmp), veldu síðan viðeigandi skrá og notaðu apply.
Við the vegur, hvenær sem er geturðu snúið aftur í fyrra ReplicaSet ef það eru vandamál með núverandi. Til að gera þetta skaltu velja viðeigandi RS (:rs fyrir lista þeirra):
... og afturkalla með Ctrl + l. Við ættum að fá tilkynningu um að allt hafi gengið vel:
k9s/whoami-5cfbdbb469 successfully rolled back
Og til að skala eftirlíkingarnar, smelltu bara á "s" (kvarða) og veldu þann fjölda tilvika sem þú vilt:
Þú getur slegið inn hvaða ílát sem er með skelinni: til að gera þetta, farðu í viðkomandi belg, smelltu á "s" (skel) og veldu ílátið.
Aðrir eiginleikar
Auðvitað er einnig stutt við að skoða logs ("l" fyrir valið tilfang). Og til að horfa á nýjar annálar er engin þörf á að ýta stöðugt á Enter: það er nóg að merkja við („m“) og þá bara fylgjast með nýjum skilaboðum.
Einnig í sama glugga geturðu valið tímabil fyrir framleiðslu annála:
lykill "1" - í 1 mínútu;
"2" - 5 mínútur;
"3" - 15 mínútur;
"4" - 30 mínútur;
"5" - 1 klukkustund;
"0" - fyrir allan líftíma belgsins.
Sérstakur notkunarhamur Púls (skipun :pulse) sýnir almennar upplýsingar um Kubernetes klasann:
Í henni er hægt að sjá fjölda auðlinda og stöðu þeirra (grænn sýnir þær sem hafa stöðuna Running).
Annar flottur eiginleiki K9s er kallaður Popeye. Það athugar öll tilföng fyrir tiltekin viðmið um réttmæti og sýnir „einkunn“ sem myndast með útskýringum. Til dæmis geturðu séð að það eru ekki næg sýni eða takmörk, og einhver ílát getur keyrt sem rót ...
Það er grunnstuðningur fyrir Helm. Til dæmis, þetta er hvernig þú getur séð útgáfurnar sem eru notaðar í klasanum:
:helm all # все
:helm $namespace # в конкретном пространстве имен
Kvóti
Jafnvel innbyggður í K9s hey er einfaldur HTTP netþjónn hlaða rafall, valkostur við betur þekkt ab (ApacheBench).
Til að virkja það þarftu að virkja port-forward í belgnum. Til að gera þetta, veldu hólfið og ýttu á Shift + f, farðu í port-forward undirvalmyndina með því að nota "pf" samnefni.
Eftir að gáttin hefur verið valin og ýtt á Ctrl + b byrjar sjálft viðmiðið. Afrakstur vinnu hans er geymdur í /tmp og er hægt að skoða síðar í K9s.
Til að breyta uppsetningu viðmiðunar þarftu að búa til skrá $HOME/.k9s/bench-<my_context>.yml (ákvarðað fyrir hvern klasa).
ATH: Það er mikilvægt að framlenging á öllum YAML skrám í möppu .k9s það var einmitt .yml (.yaml virkar ekki rétt).
Dæmi um stillingar:
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
tengi
Útliti dálka fyrir lista yfir tilföng er breytt með því að búa til skrá $HOME/.k9s/views.yml. Dæmi um innihald þess:
k9s:
views:
v1/pods:
columns:
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
Að vísu er ekki nægur dálkur fyrir merki, sem það er fyrir mál í verkefninu.
Flokkun eftir dálkum fer fram með flýtilykla:
Shift + n - eftir nafni;
Shift + o - eftir hnútum;
Shift + i - eftir IP;
Shift + a - eftir líftíma ílátsins;
Shift + t - með fjölda endurræsinga;
Shift + r - eftir viðbúnaðarstöðu;
Shift + c - eftir CPU neyslu;
Shift + m - eftir minnisnotkun.
Ef einhverjum líkar ekki sjálfgefna litasamsetningin styður K9s jafnvel skinn. Tilbúin dæmi (7 stykki) eru fáanleg hér. Hér er dæmi um eitt af þessum skinnum (í sjóhernum):
Viðbætur
Að lokum er viðbætur leyfa þér að auka getu K9s. Sjálfur hef ég aðeins notað eina þeirra í starfi mínu - kubectl get all -n $namespace.
Þetta lítur svona út. Búðu til skrá $HOME/.k9s/plugin.yml með efni eins og þessu:
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"
Nú geturðu farið í nafnrýmið og ýtt á "g" til að framkvæma með samsvarandi skipun:
Meðal viðbóta eru til dæmis samþættingar við kubectl-jq og tól til að skoða logs strengur.
Ályktun
Fyrir minn smekk reyndist K9s mjög þægilegt að vinna með: þú getur fljótt vanist því að leita að öllu sem þú þarft án þess að nota það. kubectl. Ég var ánægður með útsýni yfir annálana og vistun þeirra, fljótleg breyting á auðlindum, vinnuhraða almennt *, Popeye-stillingin reyndist gagnleg. Sérstaklega er minnst á hæfileikann til að búa til viðbætur og breyta forritinu að þínum þörfum.
* Þótt ég hafi tekið eftir hægum rekstri K9s með mikið magn af stokkum. Á slíkum augnablikum „át“ tólið 2 kjarna úr Intel Xeon E312xx og gæti jafnvel frosið.
Hvað vantar í augnablikinu? Fljótleg afturför í fyrri útgáfu (við erum ekki að tala um RS) án þess að fara í möppuna. Að auki á sér stað bati aðeins fyrir aðeins tilföng: ef þú eyðir athugasemd eða merki, verður þú að eyða og endurheimta allt tilfangið (þetta er þar sem þú þarft að fara í möppuna). Annað smáræði - það er ekki næg dagsetning fyrir slíkar vistaðar "afrit".