{"id":97736,"date":"2020-10-21T14:42:17","date_gmt":"2020-10-21T12:42:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes"},"modified":"2020-10-21T14:42:17","modified_gmt":"2020-10-21T12:42:17","slug":"obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","title":{"rendered":"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/11274841ee84b0e2c3ac74c9c738faba.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/\">K9s<\/a><\/noindex> pakub terminali kasutajaliidest Kubernetes klastrite haldamiseks. Selle Open Source projekti eesm\u00e4rk on lihtsustada rakenduste navigeerimist K8s keskkonnas, nende j\u00e4lgimist ja haldamist. K9s j\u00e4lgib pidevalt Kubernetes'e muudatusi ja pakub kiireid k\u00e4sklusi j\u00e4lgitavate ressursside haldamiseks.<\/p>\n<p>Projekt on kirjutatud Go keeles ja see on eksisteerinud juba \u00fcle pooleteise aasta: esimene commit tehti 1. veebruaril 2019. Artikli kirjutamise ajal on sellele antud \u00fcle 9000 t\u00e4he <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\">GitHub<\/a><\/noindex> ja ligi 80 kaast\u00f6\u00f6tajat. Vaatame, mida k9s suudab?<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Installeerimine ja k\u00e4ivitamine<\/h2>\n<p>\nSee on kliendi (Kubernetes klastrile) rakendus, mida on k\u00f5ige lihtsam k\u00e4ivitada Docker pildina:<\/p>\n<pre><code class=\"bash\">docker run --rm -it -v $KUBECONFIG:\/$KUBECONFIG: \/root\/.kube\/config quay.io\/derailed\/k9s<\/code><\/pre>\n<p>\nM\u00f5nede Linuxi distributsioonide ja teiste operatsioonis\u00fcsteemide jaoks on samuti valmis installivad <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s#installation\">pakett<\/a><\/noindex>. \u00dcldiselt saab Linuxi s\u00fcsteemidele installida binaarfaili:<\/p>\n<pre><code class=\"bash\">sudo wget -qO- https:\/\/github.com\/derailed\/k9s\/releases\/download\/v0.22.0\/k9s_Linux_x86_64.tar.gz | tar zxvf - -C \/tmp\/\nsudo mv \/tmp\/k9s \/usr\/local\/bin<\/code><\/pre>\n<p>\nSpetsiifilisi n\u00f5udeid klastrile K8s ei ole. Tagasiside p\u00f5hjal t\u00f6\u00f6tab rakendus ka vanade Kubernetes versioonidega, nagu 1.12.<\/p>\n<p>Rakendust k\u00e4ivitada, kasutades standardset konfguratsioonifaili <code>.kube\/config<\/code> \u2014 sarnaselt sellele, kuidas seda teeb <code>kubectl<\/code>.<\/p>\n<h2>Navigeerimine<\/h2>\n<p>\nKoheselt avatakse aken, kus on vaikimisi t\u00e4htsuse nimi, mis on m\u00e4\u00e4ratud konteksti jaoks. Kui olete m\u00e4\u00e4ranud <code>kubectl config set-context --current --namespace=test<\/code>, siis avatakse see nimi <code>test<\/code>. <i>(Kontekstide\/nime ruumide vahetamisest vt allpool.) <\/i><\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/820fcbdd376abc95d67bf202f34c880c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLiikumiseks <b>k\u00e4skude re\u017eiimi<\/b> tuleb vajutada \u00ab:\u00bb. P\u00e4rast seda saate k9s'i t\u00f6\u00f6protsesse hallata k\u00e4skudega \u2014 n\u00e4iteks saab v\u00e4\u00e4rtuse StatefulSets vaatamiseks sisestada <code>:sts<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/840724fc656b22e67519c53983065862.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00f5nede teiste Kubernetes ressursside jaoks:<\/p>\n<ul>\n<li> <code>:ns<\/code> \u2014 Nime ruumid;<\/li>\n<li> <code>:deploy<\/code> \u2014 Rakendused;<\/li>\n<li> <code>:ing<\/code> \u2014 Sisenemised;<\/li>\n<li> <code>:svc<\/code> \u2014 Teenused.<\/li>\n<\/ul>\n<p>\nKuna need on t\u00e4ielik loetelu ressursit\u00fc\u00fcpide vaatamiseks, on k\u00e4sk <code>:aliases<\/code>.<\/p>\n<p>Mugavalt saab vaadata ka k\u00e4skude nimekirja, mis on saadaval kuumade klahvikombinatsioonide raames praeguses aknas: selleks piisab, kui vajutada \u00ab?\u00bb.<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/54d329f9eeda2424f457aef6b977ae63.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK9s'is on samuti <b>otsingure\u017eiim<\/b>, kuhu liikumiseks tuleb lihtsalt sisestada \u00ab\/\u00bb. Sellega otsitakse praeguse \u201eakna\u201d sisu. Oletame, et kui te juba sisestasite <code>:ns<\/code>, avate nimekiri nimevaid ruume. Kui neid on liiga palju, et pikka aega alla kerida, piisab nimekiri aknas sisse kirjutamisest <code>\/mynamespace<\/code>.<\/p>\n<p>Leidude p\u00f5hjal otsimiseks saab valida k\u00f5ik pod'id soovitud nimede ruumis, seej\u00e4rel sisestada n\u00e4iteks <code>\/ -l app=whoami<\/code>. Saame nimekirja pod'idest, millel on see leid:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/88b8e09a5b7819bcf49334bf351b040b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOtsing toimib k\u00f5igis akend t\u00fc\u00fcps, sealhulgas logides, YAML-manifestide vaatamises ja <code>describe<\/code> resursside jaoks \u2014 rohkem nende v\u00f5imaluste kohta vt allpool.<\/p>\n<p>Kuidas n\u00e4eb \u00fcldiselt v\u00e4lja navigeerimise j\u00e4rjestus?<\/p>\n<p>K\u00e4sk <code>:ctx<\/code> v\u00f5imaldab valida konteksti:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/a5e780a3fc98961913c966222e167d51.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNimede ruumi valimiseks on juba varem mainitud k\u00e4sk <code>:ns<\/code>, ja seej\u00e4rel saab kasutada otsingut soovitud nime ruumi jaoks: <code>\/test<\/code>.<\/p>\n<p>Kui n\u00fc\u00fcd valida huvipakkuv ressurss (n\u00e4iteks sama StatefulSet), kuvatakse selle kohta vastav teave: kui palju pod'e on k\u00e4imas ja l\u00fchikesed andmed nende kohta.<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/8e0d8c41b8673b7c29f2605d3ae59503.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5ibolla huvitavad ainult pod'id \u2014 siis piisab, kui sisestada <code>:pod<\/code>. ConfigMap'ide puhul (<code>:cm<\/code> \u2014 nende ressursside nimekiri) saab valida huvipakkuva objekti ja vajutada \"u\", mille j\u00e4rel K9s \u00fctleb, kes konkreetselt seda (seda CM) kasutab.<\/p>\n<p>Veel \u00fcks mugav funktsioon ressursside vaatamiseks on nende <b>\"rentgen\" (XRay view)<\/b>. Selle re\u017eiimi aktiveerib k\u00e4sk <code>:xray RESOURCE<\/code> ja... lihtsam on n\u00e4idata, kuidas see t\u00f6\u00f6tab, kui seletada. Siin on illustreerimine StatefulSets'i jaoks:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/de40ebfe06ca935d2bc36323b3f16f3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(Iga neid ressurssidest saab redigeerida, muuta, teha <code>describe<\/code>.)<\/i><\/p>\n<p>Ja siin on Deployment koos Ingressiga:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/598c1b25b787dcb1cf9660fa730d74c5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>T\u00f6\u00f6tamine ressurssidega<\/h2>\n<p>\nIga ressursi kohta saab teavet YAML-formaadis v\u00f5i selle <code>describe<\/code> vastavate klahvikombinatsioonide vajutamisega (\"y\" ja \"d\" vastavalt). Loomulikult on veel rohkem p\u00f5hitegevusi: nende nimekiri ja klahvikombinatsioonid on alati n\u00e4htavad t\u00e4nu mugavale \"peakirjale\" liideses (peidetakse vajutades Ctrl + e).<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/6bbe4ca07442e1e14a462586d14ef98d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIga ressursi redigeerimisel (\"e\" p\u00e4rast valimist) avatakse tekstiredaktor, mis on m\u00e4\u00e4ratud keskkonnamuutujates (<code>export EDITOR=vim<\/code>).<\/p>\n<p>Nii n\u00e4eb v\u00e4lja ressursi \u00fcksikasjalik kirjeldus (<code>describe<\/code>):<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/05fdb57e3b85d1b81c9bfc6414aca117.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSellist v\u00e4ljundit (v\u00f5i v\u00e4ljundit YAML-manifesti vaatamisest) saab salvestada tuttava klahvikombinatsiooni Ctrl + s kasutades. Kuhu see salvestatakse, selgub K9s teatest:<\/p>\n<pre><code class=\"plaintext\">Log \/tmp\/k9s-screens-root\/kubernetes\/Describe-1601244920104133900.yml salvestatud edukalt!<\/code><\/pre>\n<p>\nLoodud varufailidest saab taastada ressursse, eemaldades eelnevalt s\u00fcsteemi etiketid ja annotatsioonid. Selleks tuleb minna direktoriumi, kus need asuvad (<code>:dir \/tmp<\/code>), seej\u00e4rel valida vajalik fail ja rakendada <code>apply<\/code>.<\/p>\n<p>Muide, igal ajal on v\u00f5imalik tagasi l\u00fc\u00fca ka eelnevale ReplicaSet'ile, kui praegusega on probleeme. Selleks tuleb valida vajalik RS (<code>:rs<\/code> nende nimekirjast):<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/de0ea37d970c51514559288661bdc6f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026ja teostada rollback kombinatsiooniga Ctrl + l. Me peaksime saama teate, et k\u00f5ik l\u00e4ks edukalt:<\/p>\n<pre><code class=\"plaintext\">k9s\/whoami-5cfbdbb469 successfully rolled back<\/code><\/pre>\n<p>\nJa et koopiaid skaleerida, piisab, kui vajutada \u201es\u201d (scale) ja valida vajalik eksemplaride arv:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/145093030db754c9ef85810cbba3ed5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIgas konteineris on v\u00f5imalik shelliga sisse logida: selleks minge soovitud pod'i juurde, vajutage \u201es\u201d (shell) ja valige konteiner.<\/p>\n<h2>Muud v\u00f5imalused<\/h2>\n<p>\nT\u00f5epoolest, toetatakse ka logide vaatamist (\u201el\u201d valitud ressursi jaoks). Ja et vaadata uusi logisid, pole pidevalt vaja vajutada Enter: piisab, kui teha m\u00e4rgistamine (\u201em\u201d), p\u00e4rast mida j\u00e4lgite ainult uusi s\u00f5numeid.<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/05aa9657f744b9e3d09034862e1befe7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSamuti saab samas aknas valida ajavahemiku logide v\u00e4ljastamiseks:<\/p>\n<ul>\n<li> klahv \u201e1\u201d \u2014 1 minuti jooksul;<\/li>\n<li> \u201e2\u201d \u2014 5 minutit;<\/li>\n<li> \u201e3\u201d \u2014 15 minutit;<\/li>\n<li> \u201e4\u201d \u2014 30 minutit;<\/li>\n<li> \u201e5\u201d \u2014 1 tund;<\/li>\n<li> \u00ab0\u00bb \u2014 pod'i kogu eluea jooksul.<\/li>\n<\/ul>\n<p>\nEraldi t\u00f6\u00f6re\u017eiim Pulse (kommando <code>:pulse<\/code>) n\u00e4itab \u00fcldteavet Kubernetes klastrist:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/413d241ad7518f49c523fa59f51702a6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelles saab n\u00e4ha ressursside arvu ja nende olekut (rohelisega kuvatakse need, millel on staatus <code>K\u00e4imas<\/code>).<\/p>\n<p>Veel \u00fcks huvitav K9s funktsioon kannab nime <b>Popeye<\/b>. See kontrollib k\u00f5iki ressursse teatud korrektsuse kriteeriumite j\u00e4rgi ja v\u00e4ljastab saadud \u201ehinnangu\u201d koos selgitustega. N\u00e4iteks v\u00f5ib n\u00e4ha, et puuduvad proovid v\u00f5i piirangud, ja m\u00f5ni konteiner v\u00f5ib k\u00e4ivituda root'ina...<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/a6bc5ea45b5749fb4e1038b82374b3c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nToetatakse ka p\u00f5hitoetust Helm. N\u00e4iteks saab vaadata klastrisse juurutatud vabastusi:<\/p>\n<pre><code class=\"bash\">:helm all # k\u00f5ik\n:helm $namespace # konkreetse nimespetsiifilise jaoks\n<\/code><\/pre>\n<p><\/p>\n<h2>Benchmark<\/h2>\n<p>\nK9s on isegi integreeritud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rakyll\/hey\">hey<\/a><\/noindex> \u2014 see on lihtne HTTP-serverile koormuse generaator, alternatiiv tuntud ab (ApacheBench) suhtes.<\/p>\n<p>Selle k\u00e4ivitamiseks on vajalik port-forward aktiveerimine pod'is. Selleks valime pod'i ja vajutame Shift + f, liikudes port-forward alamvalikusse aliasega \u201epf\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/651f25269c0998c716ab9c0c4b5e0455.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e4rast pordi valimist ja Ctrl + b vajutamist k\u00e4ivitub ise benchmark. Selle t\u00f6\u00f6 tulemused salvestatakse <code>\/tmp<\/code> ja on saadaval edasiseks vaatamiseks K9s-is. <\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/57b2fe1d078e9aca1c6afccd318094da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/3b2bf031e8442e47eb3482187ac5b64d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBenchmarki konfiguratsiooni muutmiseks tuleb luua fail <code>$HOME\/.k9s\/bench-.yml<\/code> (m\u00e4\u00e4ratakse iga klastrile).<\/p>\n<p><i>NB: Oluline on, et k\u00f5ikide YAML-failide laiendid kaustas <code>.k9s<\/code> oleks t\u00e4pselt <code>.yml<\/code> (<code>.yaml<\/code> ei t\u00f6\u00f6ta korrektselt).<\/i><\/p>\n<p>Konfiguratsiooni n\u00e4idis:<\/p>\n<pre><code class=\"bash\">benchmarks:\n  defaults:\n    # V\u00e4\u00e4rtuste arv\n    concurrency: 2\n    # K\u00fcsitavate arv\n    requests: 1000\n  containers:\n    # Seaded b\u00e4nkm\u00e4rgi konteinerile\n    # Konteiner m\u00e4\u00e4ratletakse kui namespace\/pod-name:container-name\n    default\/nginx:nginx:\n      concurrency: 2\n      requests: 10000\n      http:\n        path: \/\n        method: POST\n        body:\n          {\"foo\":\"bar\"}\n        header:\n          Accept:\n            - text\/html\n          Content-Type:\n            - application\/json\n services:\n    # B\u00e4nkm\u00e4rki on v\u00f5imalik l\u00e4bi viia NodePort ja LoadBalancer teenustes\n    # S\u00fcntaks: namespace\/service-name\n    default\/nginx:\n      concurrency: 5\n      requests: 500\n      http:\n        method: GET\n        path: \/auth\n      auth:\n        user: flant\n        password: s3cr3tp455w0rd\n<\/code><\/pre>\n<p><\/p>\n<h2>Liides<\/h2>\n<p>\nRessursside loendi veergude v\u00e4limus muudetakse faili loomisega <code>$HOME\/.k9s\/views.yml<\/code>. N\u00e4ide selle sisust:<\/p>\n<pre><code class=\"plaintext\">k9s:\n views:\n   v1\/pods:\n     columns:\n       - AGE\n       - NAMESPACE\n       - NAME\n       - IP\n       - NODE\n       - STATUS\n       - READY\n   v1\/services:\n     columns:\n       - AGE\n       - NAMESPACE\n       - NAME\n       - TYPE\n       - CLUSTER-IP\n<\/code><\/pre>\n<p>\n<i>T\u00f5si, veergude j\u00e4rgi sildi puudumise kohta on olemas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/issues\/605\">probleem projektis<\/a><\/noindex>.<\/i><\/p>\n<p>Veergude sortimine toimub klaviatuurikombinatsioonide abil:<\/p>\n<ul>\n<li> Shift + n \u2014 nime j\u00e4rgi;<\/li>\n<li> Shift + o \u2014 s\u00f5lmede j\u00e4rgi;<\/li>\n<li> Shift + i \u2014 IP j\u00e4rgi;<\/li>\n<li> Shift + a \u2014 konteineri eluea j\u00e4rgi;<\/li>\n<li> Shift + t \u2014 taask\u00e4ivituste arvu j\u00e4rgi;<\/li>\n<li> Shift + r \u2014 valmisoleku staatuse j\u00e4rgi;<\/li>\n<li> Shift + c \u2014 CPU tarbimise j\u00e4rgi;<\/li>\n<li> Shift + m \u2014 m\u00e4lu tarbimise j\u00e4rgi.<\/li>\n<\/ul>\n<p>\nKuid kui kellelegi ei meeldi vaikimisi v\u00e4rvilahendus, toetab K9s isegi <noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/topics\/skins\/\">nahkasid<\/a><\/noindex>. Valmis n\u00e4idised (7 tk) on saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/tree\/master\/skins\">siin<\/a><\/noindex>. Siin on n\u00e4ide \u00fchest sellisest nahkade <i>(in the navy)<\/i>:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/4a4378f2c2d36eb3985e2b71d733c444.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Pluginad<\/h2>\n<p>\nL\u00f5puks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/tree\/master\/plugins\">pluginad<\/a><\/noindex> laiendada K9s v\u00f5imalusi. Isiklikult olen kasutanud vaid \u00fchte neist \u2014 <code>kubectl get all -n $namespace<\/code>.<\/p>\n<p>See n\u00e4eb v\u00e4lja selline. Loome faili <code>$HOME\/.k9s\/plugin.yml<\/code> sellise sisuga:<\/p>\n<pre><code class=\"bash\">plugin:\n get-all:\n   shortCut: g    \n   confirm: false    \n   description: get all\n   scopes:\n   - all\n   command: sh\n   background: false\n   args:\n   - -c\n   - \"kubectl -n $NAMESPACE get all -o wide | less\"<\/code><\/pre>\n<p>\nN\u00fc\u00fcd saab liikuda nimede ruumi ja vajutada \"g\" vastava k\u00e4su t\u00e4itmiseks:<\/p>\n<p><img decoding=\"async\" alt=\"K9s \u00fclevaade \u2013 t\u00e4iustatud terminali liides Kubernetes\u2019ele\" src=\"\/wp-content\/uploads\/2020\/10\/c79bbf26b6c321a97cedabf22f1699b9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPluginate seas on n\u00e4iteks integreerimised kubectl-jq ja logide vaatamise utiliidiga <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wercker\/stern\">stern<\/a><\/noindex>.<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nMinu arust on K9s t\u00f6\u00f6s v\u00e4ga mugav: harjub \u00fcsna kiiresti k\u00f5ike vajalikku otsima ilma <code>kubectl<\/code>. Meeldis logide vaatamine ja nende salvestamine, ressursside kiire redigeerimine, \u00fcldine t\u00f6\u00f6 kiirus*, osutus kasulikuks Popeye re\u017eiim. Eraldi v\u00e4\u00e4rivad m\u00e4rkimist pluginade loomise v\u00f5imalused ja rakenduse kohandamine vastavalt oma vajadustele.<\/p>\n<p><i>* Kuigi olen suurte logide mahtude puhul m\u00e4rganud K9s aeglast t\u00f6\u00f6d. Sellistel hetkedel kasutas utiliit isegi 2 Intel Xeon E312xx tuuma ja v\u00f5is isegi hanguda.<\/i><\/p>\n<p>Mida hetkel puudub? Kiire tagasip\u00f6\u00f6rdumine eelmisele versioonile (see ei puuduta RS) ilma kaustasse minekuta. Lisaks toimub taastamine ainult <i>kogu<\/i> ressursi jaoks: kui olete eemaldanud annotatsiooni v\u00f5i sildi, tuleb eemaldada ja taastada kogu ressurss (siin tuleb minna kausta). Teine pisiasi - puudub selliste salvestatud \"b\u00e4kkapide\" kuup\u00e4ev.<\/p>\n<h2>P.S.<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/506948\/\">\u00dclevaade Kubernetes'e graafilistest liidestest<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">Kubernetes Web View veebiliidese avalikustamine (ja l\u00fchike \u00fclevaade muudest Kubernetes'i veebiliidestest)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox ja muud k\u00e4surealiidesed Kubernetes'ele<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/524196\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>K9s \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 Kubernetes. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0432 K8s, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438. K9s \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 Kubernetes \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97737,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97736","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 k9s \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-21T12:42:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-21T12:42:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47K9s \u00fclevaade - t\u00e4iustatud terminali liides Kubernetes'e jaoks | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 k9s \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Kubernetes | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-21T12:42:17+00:00","article:modified_time":"2020-10-21T12:42:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97736","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:14:39","updated":"2022-10-03 07:12:05","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/97736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=97736"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/97736\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/97737"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=97736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=97736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=97736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}