Visió general de les GUI per a Kubernetes

Visió general de les GUI per a Kubernetes

Per treballar completament amb el sistema, és important conèixer les utilitats de la línia d'ordres: en el cas de Kubernetes, això és kubectl. D'altra banda, les GUI ben dissenyades i ben pensades poden funcionarоla majoria de les tasques habituals i obren oportunitats addicionals quan els sistemes operatius.

L'any passat vam publicar una traducció una breu visió general de la interfície d'usuari web per a Kubernetes, dedicat a l'anunci de la interfície web Kubernetes WebView. L'autor d'aquest article i la pròpia utilitat, Henning Jacobs de l'empresa Zalando, van posicionar el nou producte com un "kubectl per a la web". Volia crear una eina amb capacitats convenients per a la interacció en un format de suport tècnic (per exemple, mostrar ràpidament un problema amb un enllaç web) i per respondre a incidències, cercant problemes en molts clústers alhora. La seva creació encara s'està desenvolupant avui (principalment pel mateix autor).

Donant servei a molts clústers de Kubernetes de diferents mides, també estem interessats en la possibilitat de proporcionar als clients una eina de treball visual. A l'hora de triar una interfície adequada, les funcions següents van ser clau per a nosaltres:

  • suport per a la diferenciació de drets d'usuari (RBAC);
  • visualització de l'estat de l'espai de noms i primitives estàndard de Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • obtenir accés a la línia d'ordres dins del pod;
  • visualització de registres de pod;
  • visualització de l'estat de les beines (describe status);
  • eliminació de beines.

Altres funcions, com ara visualitzar els recursos consumits (per pods/controladors/espais de noms), crear/editar primitives K8s, no són rellevants dins del nostre flux de treball.

Començarem la revisió amb el tauler clàssic de Kubernetes, que s'adopta com a estàndard. Com que el món no s'atura (la qual cosa significa que estan apareixent noves GUI a Kubernetes), també parlarem de les seves alternatives actuals, resumint-ho tot en una taula comparativa al final de l'article.

NB: En la revisió no repetirem aquelles solucions que ja s'han plantejat últim article, però, per tal de completar-ho, les opcions rellevants d'aquest (K8Dash, Octant, Kubernetes Web View) s'inclouen a la taula final.

1. Tauler de control de Kubernetes

  • Pàgina de documentació;
  • repositori (8000+ estrelles de GitHub);
  • Llicència: Apache 2.0;
  • En resum: "Una interfície web universal per a clústers de Kubernetes. Permet als usuaris gestionar i resoldre problemes d'aplicacions que s'executen en un clúster, així com gestionar el propi clúster".

Visió general de les GUI per a Kubernetes

Aquest és un panell de propòsit general cobert pels autors de Kubernetes a la documentació oficial (però no desplegable per defecte). Està pensat per a les necessitats de funcionament diari i depuració d'aplicacions en un clúster. L'utilitzem aquí com una eina visual lleugera i completa que ens permet oferir als desenvolupadors l'accés necessari i suficient al clúster. Les seves capacitats cobreixen totes les seves necessitats que sorgeixen en el procés d'ús del clúster (a aquest article vam demostrar algunes característiques del panell). Com podeu endevinar fàcilment, això vol dir que compleix tots els nostres requisits esmentats anteriorment.

Entre les principals característiques de Kubernetes Dashboard:

  • Navegació: visualitzeu els principals objectes K8s per espai de noms.
  • Si teniu drets d'administrador, el tauler mostra nodes, espais de noms i volums persistents. Les estadístiques sobre l'ús de la memòria i del processador, l'assignació de recursos, les mètriques, l'estat, els esdeveniments, etc. estan disponibles per als nodes.
  • Consulteu les aplicacions desplegades a l'espai de noms segons el seu tipus (Deployment, StatefulSet, etc.), les connexions entre elles (ReplicaSet, Horizontal Pod Autoscaler), les estadístiques i la informació generals i personalitzades.
  • Consulta els serveis i Ingress, així com les seves connexions amb pods i punts finals.
  • Veure objectes i emmagatzematge de fitxers: volum persistent i reclamació de volum persistent.
  • Visualitza i edita ConfigMap i Secret.
  • Veure registres.
  • Accés a la línia d'ordres en contenidors.

Un inconvenient important (no per a nosaltres, però) és que no hi ha suport per al funcionament de diversos clústers. El projecte està desenvolupat activament per la comunitat i admet les funcions actuals amb el llançament de noves versions i especificacions de l'API de Kubernetes: l'última versió del panell és v2.0.1 22 de maig de 2020 - S'ha provat la compatibilitat amb Kubernetes 1.18.

2. Lents

Visió general de les GUI per a Kubernetes

El projecte es posiciona com un entorn de desenvolupament integrat (IDE) complet per a Kubernetes. A més, està optimitzat per treballar amb molts clústers i un gran nombre de pods que s'executen en ells (provat en 25 mil pods).

Característiques/capacitats principals de Lens:

  • Una aplicació autònoma que no requereix instal·lació de res dins del clúster (més precisament, Prometheus és necessari per obtenir totes les mètriques, però també podeu utilitzar una instal·lació existent per a això). La instal·lació "principal" es realitza en un ordinador personal amb Linux, macOS o Windows.
  • Gestió de diversos clústers (s'admeten centenars de clústers).
  • Visualització de l'estat del clúster en temps real.
  • Gràfics i tendències d'ús de recursos amb historial basats en Prometheus integrat.
  • Accés a la línia d'ordres de contenidors i nodes de clúster.
  • Suport total per a Kubernetes RBAC.

Versió actual - 3.5.0 de data 16 de juny de 2020. La versió inicial es va crear a Kontena, i avui tota la propietat intel·lectual s'ha transferit a una organització especial Lakend Labs, anomenada "una associació de geeks i tecnòlegs natius del núvol", que són responsables de "preservar i posar a disposició el programari de codi obert i els productes Kontena".

Lens és el segon projecte més popular de GitHub a la categoria GUI per a Kubernetes, només darrere del mateix Kubernets Dashboard. Totes les altres solucions de codi obert que no pertanyen a la categoria CLI* tenen una popularitat significativament inferior.

*Vegeu sobre els K9 a la part de bonificació de la revisió.

3. Kubernetic

Visió general de les GUI per a Kubernetes

Aquesta és una aplicació pròpia que s'instal·la en un ordinador personal (s'admeten Linux, macOS, Windows). Els seus autors prometen una substitució completa de la utilitat de la línia d'ordres i, amb ella, no cal recordar les ordres i fins i tot un augment deu vegades de la velocitat de funcionament.

Una de les característiques interessants de l'eina és el suport integrat per als gràfics Helm, però un dels inconvenients és la manca de mètriques de rendiment de l'aplicació.

Característiques principals de Kubernetic:

  • Visualització còmoda de l'estat del clúster. Una pantalla per veure tots els objectes de clúster relacionats i les seves dependències; estat preparat vermell/verd per a tots els objectes; Mode de visualització de l'estat del clúster amb actualitzacions d'estat en temps real.
  • Botons d'acció ràpida per esborrar i escalar l'aplicació.
  • Suport per al funcionament de diversos clústers.
  • Treball fàcil amb espais de noms.
  • Suport per a gràfics Helm i repositoris Helm (inclosos els privats). Instal·lació i gestió de gràfics a la interfície web.

El cost actual del producte és un pagament únic de 30 euros pel seu ús per una persona per qualsevol nombre d'espais de noms i clústers.

4. Kubevious

  • Lloc;
  • Presentació;
  • repositori (~ 500 estrelles de GitHub);
  • Llicència: Apache 2.0
  • En poques paraules: "Kubevious fa que els clústers de Kubernetes, la configuració de l'aplicació i la visibilitat de l'estat de l'aplicació siguin segurs i fàcils d'entendre".

Visió general de les GUI per a Kubernetes

La idea del projecte és crear una eina dissenyada per analitzar i depurar les configuracions d'aplicacions desplegades en un clúster. Els autors es van centrar principalment en la implementació d'aquestes característiques, deixant coses més generals per a més endavant.

Característiques i funcions clau de Kubevious:

  • Visualitzeu el clúster d'una manera centrada en l'aplicació: els objectes interconnectats a la interfície s'agrupen en una jerarquia.
  • Mostra visualment les dependències en les configuracions i les conseqüències en cascada dels seus canvis.
  • Mostra errors de configuració del clúster: ús incorrecte de les etiquetes, ports perduts, etc. (Per cert, si esteu interessats en aquesta funció, presteu atenció a Estrella polarsobre el qual nosaltres ja va escriure.)
  • A més del punt anterior, es disposa de la detecció d'envasos potencialment perillosos, és a dir. tenir massa privilegis (atributs hostPID, hostNetwork, hostIPC, muntatge docker.sock etc).
  • Un sistema avançat de cerca de clúster (no només pels noms dels objectes, sinó també per les seves propietats).
  • Eines per a la planificació de la capacitat i l'optimització de recursos.
  • "Màquina del temps" integrada (la capacitat de veure els canvis que s'han produït anteriorment en la configuració dels objectes).
  • Gestionar RBAC mitjançant una taula interconnectada de resum de Roles, RoleBindings, ServiceAccounts.
  • Només funciona amb un clúster.

El projecte té una història molt curta (el primer llançament va tenir lloc l'11 de febrer de 2020) i sembla que hi ha hagut un període d'estabilització o alentiment del desenvolupament. Si les versions anteriors es van publicar amb freqüència, llavors la darrera versió (v0.5 datada el 15 d'abril de 2020) va quedar enrere del ritme inicial de desenvolupament. Això probablement es deu al petit nombre de col·laboradors: a la història del repositori només n'hi ha 4, i tot el treball real el porta a terme una sola persona.

5. Kubewise

  • Pàgina del projecte;
  • Llicència: propietat (esdevindrà de codi obert);
  • En poques paraules: "Un client senzill i multiplataforma per a Kubernetes".

Visió general de les GUI per a Kubernetes

Un nou producte de VMware, creat originalment com a part d'un hackathon intern (al juny de 2019). Instal·lat en un ordinador personal, funciona sobre la base Electró (admès per Linux, macOS i Windows) i requereix kubectl v1.14.0 o posterior.

Característiques principals de Kubewise:

  • Interfície d'interacció amb les entitats Kubernetes més utilitzades: nodes, espais de noms, etc.
  • Suport per a diversos fitxers kubeconfig per a diferents clústers.
  • Terminal amb la possibilitat d'establir una variable d'entorn KUBECONFIG.
  • Generació de fitxers kubeconfig personalitzats per a un espai de noms determinat.
  • Funcions de seguretat avançades (RBAC, contrasenyes, comptes de servei).

Fins ara, el projecte només té una versió: versió 1.1.0 amb data 26 de novembre de 2019. A més, els autors tenien previst llançar-lo immediatament com a codi obert, però a causa de problemes interns (no relacionats amb problemes tècnics) no van poder fer-ho. A partir del maig de 2020, els autors estan treballant en la propera versió i han d'iniciar el procés de codi obert alhora.

6. Consola OpenShift

Visió general de les GUI per a Kubernetes

Malgrat que aquesta interfície web forma part de la distribució OpenShift (allà s'instal·la mitjançant operador especial), autors han proporcionat la possibilitat d'instal·lar-lo/utilitzar-lo en instal·lacions regulars (vainilla) de Kubernetes.

OpenShift Console s'ha desenvolupat durant molt de temps, per la qual cosa ha incorporat moltes funcions. Esmentem-ne els principals:

  • Un enfocament compartit de la interfície: dues "perspectives" de les capacitats disponibles a la consola: per a administradors i per a desenvolupadors. Mode Perspectiva del desenvolupador agrupa objectes d'una forma més comprensible per als desenvolupadors (per aplicació) i centra la interfície a resoldre tasques típiques com ara desplegar aplicacions, fer un seguiment de l'estat de compilació/desplegament i fins i tot editar codi mitjançant Eclipse Che.
  • Gestionar càrregues de treball, xarxa, emmagatzematge, drets d'accés.
  • Separació lògica per a les càrregues de treball del projecte i de l'aplicació. En una de les últimes versions - v4.3 - aparegut especial Tauler de control del projecte, mostrant les dades habituals (nombre i estat de desplegaments, pods, etc.; consum de recursos i altres mètriques) en una secció transversal de projectes.
  • Visualització actualitzada en temps real de l'estat del clúster i dels canvis (esdeveniments) que s'hi han produït; visualització de registres.
  • Consulta les dades de monitorització basades en Prometheus, Alertmanager i Grafana.
  • Operadors gestors representats a operadorhub.
  • Gestioneu les compilacions que s'executen mitjançant Docker (des d'un dipòsit especificat amb un Dockerfile) S2I o utilitats externes arbitràries.

NB: No hem afegit altres a la comparació Distribucions de Kubernetes (per exemple, molt menys famós Kubesfera): tot i que la interfície gràfica d'ells pot ser molt avançada, normalment forma part de la pila integrada d'un gran sistema. Tanmateix, si creieu que falten algunes solucions que són totalment funcionals a la instal·lació de vanilla K8s, feu-nos-ho saber als comentaris.

prima

1. Portainer a Kubernetes en versió beta

  • Lloc;
  • repositori (~ 100 estrelles de GitHub);
  • Llicència: Zlib(?) (igual que el projecte pare).

Un projecte de l'equip de Portainer, que va desenvolupar la popular interfície del mateix nom per treballar amb Docker. Com que el projecte es troba en una fase inicial de desenvolupament (la primera i única versió beta va sortir 16 d'abril de 2020), no vam avaluar les seves característiques. Tanmateix, pot interessar a molts: si això us sembla, seguiu el desenvolupament.

2. IcePanel

  • Lloc;
  • Llicència: propietat;
  • En resum: "Editor visual de Kubernetes".

Visió general de les GUI per a Kubernetes

Aquesta jove aplicació d'escriptori pretén visualitzar i gestionar els recursos de Kubernetes en temps real amb una senzilla interfície d'arrossegar i deixar anar. Els objectes admesos actualment són Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap i Secret. Prometen afegir el suport d'Helm aviat. Els principals desavantatges són que el codi està tancat (s'espera obertura "d'alguna forma") i la manca de compatibilitat amb Linux (fins ara només hi ha disponibles versions per a Windows i macOS, tot i que probablement això és només qüestió de temps).

3. k9s

  • Lloc;
  • Demostració;
  • repositori (~ 7700 estrelles de GitHub);
  • Llicència: Apache 2.0;
  • En poques paraules: "Una interfície de consola per a Kubernetes que us permet gestionar el vostre clúster amb estil".

Visió general de les GUI per a Kubernetes

La utilitat només es va incloure a la part de bonificació de la revisió perquè ofereix una GUI de consola. Tanmateix, els autors, literalment, van treure el màxim profit del terminal, oferint no només una interfície còmoda, sinó també 6 temes predefinits i un sistema desenvolupat de dreceres de teclat i àlies per a ordres. El seu enfocament exhaustiu no es va limitar a l'aparença: les capacitats de k9s són agradablement impressionants: gestionar recursos, mostrar l'estat del clúster, mostrar els recursos en una vista jeràrquica amb dependències, visualitzar els registres, donar suport a RBAC, ampliar les capacitats mitjançant connectors... Tot això va ser del gust de l'amplia comunitat K8s: quantitat El projecte estrella de GitHub és gairebé tan bo com el tauler oficial de Kubernetes!

4. Taulers de control d'aplicacions

I al final de la revisió: una mini-categoria separada. Inclou dues interfícies web dissenyades no per a la gestió complexa de clústers de Kubernetes, sinó per gestionar el que hi ha desplegat.

Com sabeu, una de les eines més madures i esteses per desplegar aplicacions complexes a Kubernetes és Helm. Durant el període de la seva existència, s'han acumulat molts paquets (gràfics Helm) per facilitar el desplegament moltes aplicacions populars. Per tant, és bastant lògic que apareguin eines visuals adequades per ajudar a gestionar el cicle de vida dels gràfics.

4.1. Monocular

  • repositori (1300+ estrelles de GitHub);
  • Llicència: Apache 2.0;
  • En poques paraules: "Aplicació web per cercar i descobrir gràfics Helm en diversos dipòsits. Serveix com a base per al projecte Helm hub".

Visió general de les GUI per a Kubernetes

Aquest desenvolupament dels autors de Helm s'instal·la a Kubernetes i s'executa dins d'un clúster, realitzant la tasca assignada. Tanmateix, actualment el projecte no s'està desenvolupant gens. El seu propòsit principal és donar suport a l'existència de Helm Hub. Per a altres necessitats, els autors recomanen Kubeapps (vegeu més avall) o Red Hat Automation Broker (part d'OpenShift, però que ja no s'està desenvolupant).

4.2. Kubeapps

  • Lloc;
  • Presentació;
  • repositori (~ 2100 estrelles de GitHub);
  • Llicència: Apache 2.0
  • En poques paraules: "El vostre tauler d'aplicació per a Kubernetes".

Visió general de les GUI per a Kubernetes

Un producte de Bitnami, que també està instal·lat en un clúster de Kubernetes, però que es diferencia de Monocular pel seu enfocament inicial a treballar amb repositoris privats.

Característiques i funcionalitats clau de Kubeapps:

  • Visualitzeu i instal·leu els gràfics Helm des dels dipòsits.
  • Comproveu, actualitzeu i suprimiu les aplicacions basades en Helm instal·lades al clúster.
  • Suport per treballar amb repositoris de gràfics personalitzats i privats (admet ChartMuseum i JFrog Artifactory).
  • Consulteu i treballeu amb serveis externs: des del catàleg de serveis i dels corredors de serveis.
  • Publicació d'aplicacions instal·lades mitjançant el mecanisme d'enllaços de catàleg de serveis.
  • Suport per a l'autenticació i la separació de drets mitjançant RBAC.

Taula final

A continuació es mostra una taula resum en la qual hem intentat resumir i agregar les principals capacitats de les interfícies visuals existents per facilitar la comparació:

Visió general de les GUI per a Kubernetes
(Versió en línia de la taula disponible a Google Docs.)

Conclusió

Les interfícies gràfiques per a Kubernetes són un nínxol bastant específic i jove. Tanmateix, s'està desenvolupant molt activament: ja es poden trobar solucions bastant madures i molt joves que encara tenen marge per créixer. S'ofereixen a una varietat d'aplicacions, oferint característiques i aspectes per a gairebé tots els gustos. Esperem que aquesta revisió us ajudi a triar l'eina que millor s'adapti a les vostres necessitats actuals.

PS

Gràcies kvaps per a les dades de la consola OpenShift per a la taula de comparació!

Llegeix també al nostre blog:

Font: www.habr.com

Afegeix comentari