Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Järjestelmän täysimittaiseen työskentelyyn komentorivin apuohjelmien tuntemus on tärkeää: Kubernetesin tapauksessa tämä on kubectl. Toisaalta hyvin suunnitellut, harkitut graafiset käyttöliittymät voivat toimiaоuseimmat tavanomaiset tehtävät ja avaavat lisämahdollisuuksia järjestelmien toiminnalle.

Viime vuonna julkaisimme käännöksen pieni yleiskatsaus verkkokäyttöliittymästä Kubernetesille, ajoitettu samaan aikaan verkkokäyttöliittymän julkistamisen kanssa Kubernetes WebView. Tämän artikkelin kirjoittaja ja itse apuohjelma, Henning Jacobs Zalandosta, asettivat uuden tuotteen juuri nimellä "kubectl for the web". Hän halusi luoda työkalun käyttäjäystävällisillä ominaisuuksilla vuorovaikutukseen teknisen tuen muodossa (esimerkiksi ongelman nopeaan näyttämiseen web-linkin avulla) ja tapauksiin reagoimiseen, ongelmien etsimiseen useista klustereista samanaikaisesti. Hänen jälkeläisensä kehittyvät tällä hetkellä (lähinnä kirjoittajan itsensä ponnisteluilla).

Koska palvelemme monia erikokoisia Kubernetes-klustereita, olemme kiinnostuneita myös siitä, että pystymme tarjoamaan asiakkaillemme visuaalisen työkalun. Sopivan käyttöliittymän valinnassa seuraavat ominaisuudet olivat meille tärkeitä:

  • käyttäjäoikeuksien eriyttämisen tuki (RBAC);
  • nimitilan tilan ja Kubernetes-standardien primitiivien visualisointi (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • päästä käsiksi podin sisällä olevaan komentoriviin;
  • Palojen lokien katselu;
  • katso palojen tila (describe status);
  • palojen poistaminen.

Muut toiminnot, kuten kulutettujen resurssien katseleminen (pod-/ohjain-/nimiavaruuksien yhteydessä), K8s-primitiivien luominen/muokkaus, eivät ole relevantteja työnkulussamme.

Aloitamme tarkistuksen klassisella Kubernetes Dashboardilla, joka on standardimme. Koska maailma ei pysähdy (mikä tarkoittaa, että Kubernetesilla on yhä enemmän uusia GUI:ita), puhumme myös sen nykyisistä vaihtoehdoista tiivistämällä kaiken artikkelin lopussa olevaan vertailevaan taulukkoon.

NB: Katsauksessa emme toista niiden ratkaisujen kanssa, joita on jo harkittu viimeinen artikkeliTäydellisyyden vuoksi sen asiaankuuluvat vaihtoehdot (K8Dash, Octant, Kubernetes Web View) on kuitenkin sisällytetty lopputaulukkoon.

1. Kubernetes Dashboard

  • Dokumentaatiosivu;
  • arkisto (8000+ GitHub-tähteä);
  • Lisenssi: Apache 2.0;
  • Lyhyesti: "Universaali verkkokäyttöliittymä Kubernetes-klustereille. Sen avulla käyttäjät voivat hallita ja tehdä vianmäärityksiä klusterissa käynnissä olevia sovelluksia sekä hallita itse klusteria."

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Tämä on yleiskäyttöinen paneeli, jonka Kubernetesin kirjoittajat kattavat virallisessa dokumentaatiossa (mutta ei ole käytettävissä oletus). Se on suunniteltu jokapäiväiseen käyttöön ja sovellusten virheenkorjaukseen klusterissa. Kotona käytämme sitä täysimittaisena kevyenä visuaalisena työkaluna, jonka avulla voimme tarjota kehittäjille tarvittavan ja riittävän pääsyn klusteriin. Sen ominaisuudet kattavat kaikki heidän tarpeensa, jotka syntyvät klusterin käyttöprosessissa (Vuonna tässä artikkelissa esitimme joitain paneelin ominaisuuksia). Kuten arvata saattaa, tämä tarkoittaa, että se täyttää kaikki yllä luetellut vaatimukset.

Kubernetes Dashboardin tärkeimmät ominaisuudet:

  • Navigointi: tarkastella K8s:n pääobjekteja nimiavaruuksien yhteydessä.
  • Jos sinulla on järjestelmänvalvojan oikeudet, paneeli näyttää solmut, nimitilat ja pysyvät taltiot. Solmujen osalta on saatavilla tilastoja muistin käytöstä, prosessorista, resurssien allokoinnista, mittareista, tilasta, tapahtumista jne.
  • Tarkastele nimiavaruudessa käyttöön otettuja sovelluksia niiden tyypin (Deployment, StatefulSet jne.), niiden välisten suhteiden (ReplicaSet, Horizontal Pod Autoscaler), yleisten ja henkilökohtaisten tilastotietojen ja tietojen mukaan.
  • Tarkastele palveluita ja sisääntuloja sekä niiden suhteita podeihin ja päätepisteisiin.
  • Tarkastele tiedostoobjekteja ja tallennusvälineitä: Persistent Volume ja Persistent Volume Claim.
  • Tarkastele ja muokkaa ConfigMap ja Secret.
  • Näytä lokit.
  • Komentorivikäyttö säiliöissä.

Merkittävä haittapuoli (ei kuitenkaan meille) on, että moniklusterityölle ei ole tukea. Yhteisö kehittää projektia aktiivisesti, ja se ylläpitää asiaankuuluvia ominaisuuksia Kubernetes API:n uusien versioiden ja spesifikaatioiden julkaisemisen myötä: paneelin uusin versio on v2.0.1 22 – Yhteensopivuus Kubernetes 2020:n kanssa testattu.

2. Linssi

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Projekti on sijoitettu täydelliseksi integroiduksi kehitysympäristöksi (IDE) Kubernetesille. Lisäksi se on optimoitu toimimaan useiden klustereiden ja niissä pyörivien suuren määrän podien kanssa (testattu 25 XNUMX podilla).

Linssin tärkeimmät ominaisuudet/ominaisuudet:

  • Itsenäinen sovellus, joka ei vaadi minkään asentamista klusterin sisään (tarkemmin sanottuna Prometheus vaaditaan saamaan kaikki mittarit, mutta tähän voidaan käyttää myös olemassa olevaa asennusta). "Pääasennus" tehdään henkilökohtaiseen tietokoneeseen, jossa on Linux, macOS tai Windows.
  • Usean klusterin hallinta (tuettu satoja klustereita).
  • Klusterin tilan visualisointi reaaliajassa.
  • Resurssien käyttökaaviot ja -trendit, joiden historia perustuu sisäänrakennettuun Prometheukseen.
  • Pääsy säilöjen ja klusterin solmujen komentoriville.
  • Täysi tuki Kubernetes RBAC:lle.

Nykyinen julkaisu - 3.5.0 päivätty 16 Alunperin Kontenan luoma, tänään kaikki immateriaalioikeudet on siirretty erityiselle organisaatiolle Lakeland Labs, jota kutsutaan "pilven natiivien ja teknologian asiantuntijoiden liitoksi", joka vastaa "Kontenan avoimen lähdekoodin ohjelmistojen ja tuotteiden säilyttämisestä ja saatavuudesta".

Lens on toiseksi suosituin projekti GitHubin GUI for Kubernetes -kategoriassa, "menettäen" vain itse Kubernets Dashboardin. Kaikki muut avoimen lähdekoodin ratkaisut, jotka eivät kuulu CLI*-kategoriaan, ovat huomattavasti heikompia suosioltaan.

* Katso K9:istä arvostelun bonusosassa.

3. Kubernetic

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Tämä on oma sovellus, joka asennetaan henkilökohtaiseen tietokoneeseen (Linux, macOS, Windows ovat tuettuja). Sen kirjoittajat lupaavat komentorivityökalun täydellisen korvaamisen, ja sen mukana - ei tarvitse muistaa komentoja ja jopa kymmenkertaistaa nopeutta.

Yksi työkalun mielenkiintoisista ominaisuuksista on sisäänrakennettu tuki Helm-kaavioille, ja yksi haitoista on sovellusten suorituskykymittareiden puute.

Kuberneticin pääominaisuudet:

  • Kätevä klusterin tilan näyttö. Yksi näyttö näyttää kaikki liittyvät klusteriobjektit ja niiden riippuvuudet; punainen/vihreä valmiustila kaikille kohteille; klusterin tilanäkymätila reaaliaikaisilla tilapäivityksillä.
  • Pikatoimintopainikkeet sovelluksen poistamiseen ja skaalaamiseen.
  • Tuki usean klusterin toiminnalle.
  • Yksinkertaista työskentelyä nimiavaruuksien kanssa.
  • Tuki Helm-kartoille ja Helm-tietovarastoille (mukaan lukien yksityiset). Kaavioiden asentaminen ja hallinta verkkokäyttöliittymässä.

Tuotteen tämänhetkinen hinta on 30 euron kertamaksu yhden henkilön käytöstä minkä tahansa määrän nimiavaruuksia ja klustereita kohden.

4. Kubevious

  • Paikka;
  • esittely;
  • arkisto (~ 500 GitHub-tähteä);
  • Lisenssi: Apache 2.0
  • Lyhyesti sanottuna: "Kubevious tekee Kubernetes-klusterit, sovellusmääritykset ja tilan tarkastelun turvallisia ja helppoja ymmärtää."

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Projektin ideana on luoda työkalu, joka on suunniteltu analysoimaan ja korjaamaan klusterissa käytössä olevia sovelluskokoonpanoja. Kirjoittajat keskittyivät ensisijaisesti näiden ominaisuuksien toteuttamiseen, jättäen yleisempiä asioita myöhempään.

Kubeviousin tärkeimmät ominaisuudet ja toiminnot:

  • Klusterivisualisointi sovelluskeskeisellä tavalla: käyttöliittymän toisiinsa liittyvät objektit ryhmitellään hierarkiassa.
  • Kokoonpanojen riippuvuuksien visuaalinen näyttö ja niiden muutosten peräkkäiset seuraukset.
  • Klusterin määritysvirheiden näyttö: tarrojen väärinkäyttö, porttien puuttuminen jne. (Muuten, jos olet kiinnostunut tästä ominaisuudesta, kiinnitä huomiota Polarisjosta me jo kirjoittanut.)
  • Edellisen kohdan lisäksi käytettävissä on mahdollisesti vaarallisten konttien havaitseminen, ts. joilla on liikaa oikeuksia (attribuutteja hostPID, hostNetwork, hostIPC, kiinnitys docker.sock jne).
  • Tarkennettu hakujärjestelmä klusterille (ei vain objektien nimien, vaan myös niiden ominaisuuksien perusteella).
  • Työkaluja kapasiteetin suunnitteluun ja resurssien optimointiin.
  • Sisäänrakennettu "aikakone" (kyky nähdä aikaisemmat muutokset objektien kokoonpanossa).
  • RBAC-hallinta Roolien, RoleBindings- ja ServiceAccounts-toimintojen toisiinsa liittyvän pivot-taulukon avulla.
  • Toimii vain yhden klusterin kanssa.

Projektilla on hyvin lyhyt historia (ensimmäinen julkaisu tapahtui 11) ja näyttää siltä, ​​että kehityksessä on ollut joko vakauttamis- tai hidastuminen. Jos aiempia versioita julkaistiin usein, uusin versio (v0.5 15) on jäänyt jälkeen alkuperäisestä kehitysvauhdista. Tämä johtuu luultavasti avustajien pienestä määrästä: niitä on arkiston historiassa vain 2020 ja kaiken varsinaisen työn tekee yksi henkilö.

5. Kubewise

  • Projektin sivu;
  • Lisenssi: omistusoikeus (tulee avoimeksi lähdekoodiksi);
  • Lyhyesti: "Yksinkertainen usean alustan asiakas Kubernetesille."

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

VMwaren uusi tuote, joka luotiin alun perin osana sisäistä hackathonia (kesäkuussa 2019). Asennettu henkilökohtaiselle tietokoneelle, toimii pohjalta Elektroni (Linux, macOS ja Windows tuettu) ja vaatii kubectl v1.14.0 tai uudemman.

Kubewisen pääominaisuudet:

  • Käyttöliittymän vuorovaikutus yleisimmin käytettyjen Kubernetes-olioiden kanssa: solmut, nimitilat jne.
  • Tuki useille kubeconfig-tiedostoille eri klustereille.
  • Pääte, jossa on mahdollisuus asettaa ympäristömuuttuja KUBECONFIG.
  • Luo mukautettuja kubeconfig-tiedostoja annetulle nimiavaruudelle.
  • Kehittyneet suojausominaisuudet (RBAC, salasanat, palvelutilit).

Toistaiseksi projektilla on vain yksi julkaisu - versio 1.1.0 päivätty 26. Lisäksi kirjoittajat suunnittelivat julkaisevansa sen välittömästi avoimena lähdekoodina, mutta sisäisten ongelmien vuoksi (jotka eivät liity teknisiin ongelmiin) he eivät voineet tehdä sitä. Toukokuusta 2019 lähtien kirjoittajat työskentelevät seuraavan julkaisun parissa, ja heidän pitäisi käynnistää koodin avaamisprosessi samaan aikaan.

6. OpenShift-konsoli

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Huolimatta siitä, että tämä verkkokäyttöliittymä on osa OpenShift-jakelua (se asennetaan sinne käyttämällä erikoisoperaattori), kirjoittajat ennakoitu kyky asentaa / käyttää sitä normaaleissa (vanilja) Kubernetes-asennuksissa.

OpenShift Consolea on kehitetty pitkään, joten se on sisältänyt monia ominaisuuksia. Mainitsemme tärkeimmät:

  • Jaettu käyttöliittymä - kaksi "näkökulmaa" konsolissa saatavilla oleviin mahdollisuuksiin: järjestelmänvalvojille ja kehittäjille. tila kehittäjän näkökulmasta ryhmittelee objektit kehittäjille (sovelluskohtaisesti) ymmärrettävämpään muotoon ja keskittää käyttöliittymän sellaisten tyypillisten tehtävien ratkaisemiseen, kuten sovellusten käyttöönotto, rakentamisen/käyttöönoton tilan seuranta ja jopa koodin muokkaaminen Eclipse Chen kautta.
  • Työkuormien hallinta, verkko, tallennus, käyttöoikeudet.
  • Looginen työkuormien erottelu projekteihin ja sovelluksiin. Yhdessä uusimmista julkaisuista - v4.3 - ilmestyi специальный Projektin hallintapaneeli, joka näyttää tavanomaiset tiedot (käyttöönottojen, ryhmittymien jne. lukumäärä ja tilat; resurssien kulutus ja muut mittarit) projektilohkossa.
  • Päivitetty reaaliaikainen näyttö klusterin tilasta, siinä tapahtuneista muutoksista (tapahtumista); lokien katselu.
  • Tarkastele seurantatietoja, jotka perustuvat Prometheukseen, Alertmanageriin ja Grafanaan.
  • Edustettuina olevien toimijoiden hallinta operaattorikeskus.
  • Hallitse Dockerin kautta suoritettavia koontiversioita (määritetystä arkistosta, jossa on Docker-tiedosto), S2I tai mielivaltaisia ​​ulkoisia apuohjelmia.

NB: Emme lisänneet muita vertailuun Kubernetes-jakelut (esimerkiksi paljon vähemmän tunnettu Kubesfääri): huolimatta siitä, että graafinen käyttöliittymä voi olla niissä erittäin edistynyt, se tulee yleensä osana suuren järjestelmän integroitua pinoa. Jos kuitenkin uskot, että vanilla K8s -asennuksessa ei ole tarpeeksi täysin toimivia ratkaisuja, kerro siitä meille kommenteissa.

Bonus

1. Portainer Kubernetesin betaversiossa

  • Paikka;
  • arkisto (~ 100 GitHub-tähteä);
  • Lisenssi: Zlib(?) (sama emoprojektiin).

Portainer-tiimin projekti, joka kehitti samannimisen suositun käyttöliittymän Dockerin kanssa työskentelyyn. Koska projekti on varhaisessa kehitysvaiheessa (ensimmäinen ja ainoa beta-versio tuli ulos 16), emme arvioineet sen ominaisuuksia. Se voi kuitenkin kiinnostaa monia: jos tämä koskee sinua, seuraa kehitystä.

2. IcePanel

  • Paikka;
  • Lisenssi: oma;
  • Lyhyesti: "Visual Kubernetes Editor".

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Tämä nuori työpöytäsovellus pyrkii visualisoimaan ja hallitsemaan Kubernetes-resursseja reaaliajassa yksinkertaisella vedä ja pudota -käyttöliittymällä. Tällä hetkellä tuettuja objekteja ovat Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap ja Secret. Pian he lupaavat lisätä tukea Helmille. Tärkeimmät haitat ovat koodin läheisyys (se on odotettavissa avaaminen "jollain tavalla") ja Linux-tuen puute (toistaiseksi vain Windows- ja macOS-versiot ovat saatavilla, vaikka tämäkin on todennäköisesti vain ajan kysymys).

3.k9s

  • Paikka;
  • esittely;
  • arkisto (~ 7700 GitHub-tähteä);
  • Lisenssi: Apache 2.0;
  • Lyhyesti: "Kubernetesin konsolikäyttöliittymä, jonka avulla voit hallita klusteriasi tyylikkäästi."

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Apuohjelma oli vain arvostelun bonusosassa siitä syystä, että se tarjoaa konsolin käyttöliittymän. Kirjoittajat kuitenkin puristivat kirjaimellisesti maksimin ulos päätteestä tarjoten käyttäjäystävällisen käyttöliittymän lisäksi myös 6 ennalta määritettyä teemaa sekä kehittyneen pikanäppäinjärjestelmän ja komentoaliaksien. Heidän perusteellinen lähestymistapansa ei rajoittunut ulkonäköön: k9s:n ominaisuudet ovat miellyttävän vaikuttavia: resurssien hallinta, klusterin tilan näyttäminen, resurssien näyttäminen hierarkkisessa esityksessä riippuvuuksineen, lokien katselu, RBAC-tuki, ominaisuuksien laajentaminen laajennusten avulla... Kaikki tämä houkutteli laajalle K8s-yhteisölle: määrä Projektin GitHub-tähdet ovat melkein yhtä hyviä kuin virallinen Kubernetes Dashboard!

4. Sovelluksen ohjauspaneelit

Ja arvostelun lopussa - erillinen miniluokka. Se sisälsi kaksi verkkokäyttöliittymää, jotka ei suunniteltu Kubernetes-klusterien kattavaan hallintaan, vaan niissä käytettävän hallintaan.

Kuten tiedät, Helm on yksi kypsimmistä ja yleisimmistä työkaluista monimutkaisten sovellusten käyttöönottoon Kubernetesissa. Sen olemassaolon aikana on kertynyt monia paketteja (Helm-kaavioita), jotka on helppo ottaa käyttöön monia suosittuja sovelluksia. Siksi sopivien visuaalisten työkalujen esiintyminen, joiden avulla voit hallita kaavioiden elinkaarta, on varsin loogista.

4.1. Monokulaarinen

  • arkisto (1300+ GitHub-tähteä);
  • Lisenssi: Apache 2.0;
  • Lyhyesti: "Web-sovellus Helm-kaavioiden etsimiseen ja löytämiseen useista arkistoista. Toimii pohjana Helm hub -projektille."

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Tämä Helmin tekijöiden kehitystyö on asennettu Kubernetesiin ja toimii samassa klusterissa suorittaen tehtävän. Tällä hetkellä hanketta ei kuitenkaan ole juuri kehitetty. Sen päätarkoituksena on tukea Helm Hubin olemassaoloa. Muihin tarpeisiin kirjoittajat suosittelevat Kubeappsia (katso alla) tai Red Hat Automation Brokeria (osa OpenShiftiä, mutta ei myöskään enää kehitteillä).

4.2. Kubeapps

  • Paikka;
  • esittely;
  • arkisto (~ 2100 GitHub-tähteä);
  • Lisenssi: Apache 2.0
  • Lyhyesti: "Sovelluksesi hallintapaneeli Kubernetesille."

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä

Bitnamin tuote, joka on myös asennettu Kubernetes-klusteriin, mutta eroaa Monocularista siinä, että se keskittyy alun perin työskentelemään yksityisten tietovarastojen kanssa.

Kubeappsin tärkeimmät toiminnot ja ominaisuudet:

  • Tarkastele ja asenna Helm-kaavioita arkistoista.
  • Tarkista, päivitä ja poista klusteriin asennetut Helm-pohjaiset sovellukset.
  • Tuki mukautetuille ja yksityisille kaaviovarastoja (tukee ChartMuseumia ja JFrog Artifactoryta).
  • Ulkoisten palvelujen katselu ja työskentely - palveluluettelosta ja palveluvälittäjistä.
  • Asennettujen sovellusten julkaiseminen Service Catalog Bindings -mekanismin avulla.
  • Tuki todennuksen ja oikeuksien erottamiseen RBAC:n avulla.

Yhteenvetotaulukko

Alla on yhteenvetotaulukko, jossa olemme yrittäneet tiivistää ja koota olemassa olevien visuaalisten käyttöliittymien pääominaisuudet vertailun helpottamiseksi:

Yleiskatsaus Kubernetesin graafisista käyttöliittymistä
(Taulukon verkkoversio saatavilla Google Docsissa.)

Johtopäätös

Kubernetesin graafiset käyttöliittymät ovat melko spesifinen ja nuori markkinarako. Se kuitenkin kehittyy erittäin aktiivisesti: jo on mahdollista löytää sekä varsin kypsiä ratkaisuja että hyvin nuoria, joilla on vielä tilaa kasvaa. Ne sopivat erilaisiin sovelluksiin ja tarjoavat ominaisuuksia ja ulkoasuja, jotka sopivat melkein jokaiseen makuun. Toivomme, että tämä arvostelu auttaa sinua valitsemaan työkalun, joka parhaiten vastaa nykyisiä tarpeitasi.

PS.

Kiitos tuoksut OpenShift-konsolin tiedoista vertailutaulukkoa varten!

Lue myös blogistamme:

Lähde: will.com

Lisää kommentti