Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

K9s tarjoaa päätelaitteen käyttöliittymän vuorovaikutukseen Kubernetes-klusterien kanssa. Tämän avoimen lähdekoodin projektin tavoitteena on helpottaa sovellusten navigointia, valvontaa ja hallintaa K8s:ssa. K9s seuraa jatkuvasti muutoksia Kubernetesissa ja tarjoaa nopeita komentoja valvottujen resurssien kanssa työskentelemiseen.

Projekti on kirjoitettu Go-kielellä ja se on ollut käynnissä yli puolitoista vuotta: ensimmäinen sitoumus tehtiin 1. Kirjoitushetkellä päällä on yli 2019 tähteä GitHub ja noin 80 kirjoittajaa. Katsotaan mitä k9s voi tehdä?

Asennus ja käynnistys

Tämä on asiakassovellus (Kubernetes-klusterin suhteen), joka on helpoin ajaa Docker-kuvana:

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

Joillekin Linux-jakeluille ja muille käyttöjärjestelmille on myös asennusvalmiita paketit. Yleensä Linux-järjestelmissä voit asentaa binaaritiedoston:

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

Itse K8s-klusterille ei ole erityisiä vaatimuksia. Arvostelujen perusteella sovellus toimii myös Kubernetesin vanhempien versioiden, kuten 1.12:n, kanssa.

Sovellus käynnistetään vakiokonfiguraatiolla .kube/config - samalla tavalla kuin se tekee kubectl.

Suunnistus

Oletusarvoisesti avautuu ikkuna, jossa on kontekstille määritetty oletusnimiavaruus. Siis jos kirjoitit kubectl config set-context --current --namespace=test, nimiavaruus avautuu test. (Katso alta kontekstien/nimiavaruuksien muuttaminen.)

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Mene komentotila tehdään painamalla ":". Sen jälkeen voit ohjata k9s:n toimintaa komennoilla - esimerkiksi nähdäksesi StatefulSets-luettelon (nykyisessä nimiavaruudessa), voit kirjoittaa :sts.

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Jotkin muut Kubernetes-resurssit:

  • :ns — nimiavaruudet;
  • :deploy — käyttöönotot;
  • :ing — Sisäänpääsy;
  • :svc – palvelut.

Täydellisen luettelon katseltavissa olevista resurssityypeistä saat näkyviin komennon :aliases.

On myös kätevää tarkastella luetteloa pikanäppäinyhdistelmillä käytettävissä olevista komennoista nykyisessä ikkunassa: tehdäksesi tämän, napsauta vain "?".

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Myös k9s:ssä on hakutila, johon pääset syöttämään "/". Sen avulla suoritetaan haku nykyisen "ikkunan" sisällöstä. Oletetaan, jos olet aiemmin syöttänyt :ns, sinulla on luettelo nimiavaruuksista auki. Jos niitä on liikaa, riittää, että syötät ikkunaan nimiavaruuksilla, jotta et vierittäisi alas pitkään /mynamespace.

Voit etsiä nimiöillä valitsemalla kaikki podit halutusta nimiavaruudesta ja kirjoittamalla sitten esim. / -l app=whoami. Saamme luettelon paloista, joissa on tämä etiketti:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Haku toimii kaikenlaisissa ikkunoissa, mukaan lukien lokit, YAML-luetteloiden katselu ja describe resurssit - katso alta lisätietoja näistä ominaisuuksista.

Miltä navigoinnin kokonaiskulku näyttää?

Komennolla :ctx voit valita kontekstin:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Nimiavaruuden valitsemiseksi on jo mainittu komento :ns, ja sitten voit käyttää haluamasi tilan hakua: /test.

Jos nyt valitaan meitä kiinnostava resurssi (esimerkiksi sama StatefulSet), sille ilmestyy vastaavat tiedot: kuinka monta podia on käynnissä ja niistä löytyy lyhyttä tietoa.

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Vain palot voivat kiinnostaa - silloin riittää sisäänpääsy :pod. ConfigMapsin tapauksessa (:cm - näiden resurssien luetteloa varten, voit valita kiinnostavan kohteen ja napsauttaa "u", jonka jälkeen K9s kertoo, kuka sitä erityisesti käyttää (tämä CM).

Toinen kätevä ominaisuus resurssien katseluun on niiden "röntgenkuva" (röntgennäkymä). Tätä tilaa kutsutaan komennolla :xray RESOURCE ja ... on helpompi näyttää kuinka se toimii kuin selittää. Tässä on esimerkki StatefulSetsistä:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille
(Jokaista näistä resursseista voidaan muokata, muuttaa, tehdä describe.)

Ja tässä on käyttöönotto Ingressin kanssa:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Työskentely resurssien kanssa

Voit saada tietoa jokaisesta YAML:n tai sen resurssista describe painamalla vastaavia pikanäppäimiä ("y" ja "d" vastaavasti). Tietysti on vielä enemmän perustoimintoja: niiden luettelo ja pikanäppäimet ovat aina näkyvissä käyttöliittymän kätevän "otsikon" ansiosta (piilotettu painamalla Ctrl + e).

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Mitä tahansa resurssia (valinnan jälkeen "e") muokattaessa avautuu ympäristömuuttujissa määritetty tekstieditori (export EDITOR=vim).

Ja tältä näyttää resurssin yksityiskohtainen kuvaus (describe):

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Tämä tulos (tai resurssin YAML-luettelon katselutulos) voidaan tallentaa tutulla Ctrl + s -pikanäppäimellä. Mihin se tallennetaan, selviää K9s-viestistä:

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

Voit myös palauttaa resurssit luoduista varmuuskopiotiedostoista, kun olet poistanut järjestelmätunnisteet ja huomautukset. Tätä varten sinun on mentävä heidän kanssaan hakemistoon (:dir /tmp), valitse sitten haluamasi tiedosto ja käytä apply.

Muuten, voit milloin tahansa palata edelliseen ReplicaSet-tilaan, jos nykyisessä ReplicaSetissä on ongelmia. Voit tehdä tämän valitsemalla haluamasi RS (:rs heidän listalleen):

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

... ja peruutus painamalla Ctrl + l. Meidän pitäisi saada ilmoitus, että kaikki meni hyvin:

k9s/whoami-5cfbdbb469 successfully rolled back

Ja skaalata kopioita napsauttamalla "s" (skaala) ja valitsemalla haluamasi määrä esiintymiä:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Voit syöttää minkä tahansa säiliön kuoren avulla: tehdäksesi tämän mene haluamaasi koteloon, napsauta "s" (kuori) ja valitse kontti.

Muita ominaisuuksia

Tietysti myös lokien katselu on tuettu ("l" valitulle resurssille). Ja uusien lokien katselemiseksi ei tarvitse jatkuvasti painaa Enteriä: riittää, että merkitään ("m") ja sitten vain seurataan uusia viestejä.

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Samassa ikkunassa voit myös valita aikavälin lokien tulostamiselle:

  • näppäin "1" - 1 minuutti;
  • "2" - 5 minuuttia;
  • "3" - 15 minuuttia;
  • "4" - 30 minuuttia;
  • "5" - 1 tunti;
  • "0" - kotelon koko käyttöiän ajan.

Erikoiskäyttötila Pulssi (komento :pulse) näyttää yleistä tietoa Kubernetes-klusterista:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Siinä näet resurssien määrän ja niiden tilan (vihreä näyttää ne, joilla on tila Running).

Toinen K9s:n hieno ominaisuus on nimeltään Popeye. Se tarkistaa kaikkien resurssien tiettyjen oikeellisuuskriteerien varalta ja näyttää tuloksena saadun "luokituksen" selityksineen. Voit esimerkiksi nähdä, että näytteitä tai rajoja ei ole tarpeeksi, ja jotkut säilöt voivat toimia pääkäyttäjänä ...

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Helmille on perustuki. Esimerkiksi näin voit nähdä klusterissa käyttöönotetut julkaisut:

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

benchmark

Jopa sisäänrakennettu K9s:iin hei on yksinkertainen HTTP-palvelimen kuormitusgeneraattori, vaihtoehto tunnetummalle ab:lle (ApacheBench).

Voit ottaa sen käyttöön ottamalla portin edelleenlähetyksen käyttöön podissa. Voit tehdä tämän valitsemalla pod ja painamalla Shift + f, siirry portti eteenpäin -alivalikkoon käyttämällä "pf"-aliasta.

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Kun olet valinnut portin ja painanut Ctrl + b, itse vertailu alkaa. Hänen työnsä tulokset tallennetaan /tmp ja ne ovat katsottavissa myöhemmin K9s:ssä.

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille
Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Jos haluat muuttaa vertailuarvon asetuksia, sinun on luotava tiedosto $HOME/.k9s/bench-<my_context>.yml (määritetty kullekin klusterille).

HUOM: On tärkeää, että kaikkien YAML-tiedostojen laajennus hakemistossa .k9s se oli täsmälleen .yml (.yaml ei toimi oikein).

Esimerkki kokoonpanosta:

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

liitäntä

Resurssiluetteloiden sarakkeiden ulkoasua muokataan luomalla tiedosto $HOME/.k9s/views.yml. Esimerkki sen sisällöstä:

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

Tosin tarroille ei ole tarpeeksi saraketta, jota varten on ongelma hankkeessa.

Lajittelu sarakkeiden mukaan suoritetaan pikanäppäimillä:

  • Vaihto + n - nimellä;
  • Vaihto + o - solmujen mukaan;
  • Vaihto + i - IP:n mukaan;
  • Vaihto + a - säiliön käyttöiän mukaan;
  • Vaihto + t - uudelleenkäynnistysten lukumäärän mukaan;
  • Vaihto + r - valmiustilan mukaan;
  • Shift + c - suorittimen kulutuksen mukaan;
  • Vaihto + m - muistin kulutuksen mukaan.

Jos joku ei pidä oletusväriteemästä, K9s jopa tukee nahat. Valmiita esimerkkejä (7 kpl) on saatavilla täällä. Tässä on esimerkki yhdestä näistä skineistä (laivastossa):

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Плагины

Lopuksi laajennuksia voit laajentaa K9s:n ominaisuuksia. Olen itse käyttänyt niistä vain yhtä työssäni - kubectl get all -n $namespace.

Se näyttää tältä. Luo tiedosto $HOME/.k9s/plugin.yml tällaisella sisällöllä:

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"

Nyt voit siirtyä nimiavaruuteen ja painaa "g" suorittaaksesi vastaavan komennon:

Yleiskatsaus k9s:stä - edistyneestä pääteliittymästä Kubernetesille

Lisäosien joukossa on esimerkiksi integraatioita kubectl-jq:n kanssa ja apuohjelma lokien katseluun perä.

Johtopäätös

Minun makuuni K9s osoittautui erittäin käteväksi työskennellä: voit nopeasti tottua etsimään kaikkea tarvitsemaasi ilman sitä. kubectl. Olin tyytyväinen lokien näkymään ja niiden säästämiseen, resurssien nopeaan muokkaamiseen, työn nopeuteen yleensä *, Popeye-tila osoittautui hyödylliseksi. Erityinen maininta on kyky luoda laajennuksia ja muokata sovellusta tarpeidesi mukaan.

* Vaikka suuren lokimäärän kanssa huomasin myös K9s:n hitaan toiminnan. Tällaisina hetkinä apuohjelma "söi" 2 ydintä Intel Xeon E312xx:stä ja saattoi jopa jäätyä.

Mitä puuttuu tällä hetkellä? Nopea palautus edelliseen versioon (emme puhu RS:stä) menemättä hakemistoon. Lisäksi toipuminen tapahtuu vain vain resurssi: jos poistat huomautuksen tai otsikon, sinun on poistettava ja palautettava koko resurssi (täältä sinun on siirryttävä hakemistoon). Toinen pieni asia - sellaisille tallennetuille "varmuuskopioille" ei ole tarpeeksi päivämäärää.

PS.

Lue myös blogistamme:

Lähde: will.com

Lisää kommentti