Helm Dashboard: cos’è e perchè è utile

Introduzione

La gestione delle Helm releases in Kubernetes diventa più agevole grazie alla Dashboard di Helm, che offre un’interfaccia utente grafica, un aspetto apprezzato da molti sviluppatori. Questo strumento consente di creare, distribuire e aggiornare le release delle applicazioni in Kubernetes, tenendo costantemente traccia del loro stato.

In questo articolo, esploreremo le caratteristiche e i benefici offerti dalla Helm Dashboard e come può semplificare la gestione delle applicazioni su Kubernetes.

Cos'è la Helm Dashboard?

La Helm Dashboard rappresenta un’interfaccia grafica open source per Helm, sviluppata da Komodor e identificata dai suoi creatori come “l’interfaccia utente che mancava per Helm”. Helm, come già noto, funge da gestore di pacchetti per Kubernetes, facilitando l’installazione delle applicazioni (attraverso i pacchetti noti come Helm charts) e la gestione delle rispettive versioni. Una volta che il tuo Helm chart è installato, l’istanza in esecuzione nel cluster Kubernetes viene denominata Helm release.

La Helm Dashboard fornisce un’interfaccia utente web per esplorare e gestire le release (ad esempio, apportare modifiche o eliminarle). Questo progetto ha visto la luce nell’agosto 2022 e è stato ufficialmente annunciato con la versione v1.0.0 nel febbraio 2023. Attualmente (a novembre 2023), la sua versione più recente è la v1.3.3, rilasciata nel giugno 2023, e il suo repository GitHub vanta quasi 4500 stelle e oltre 40 contributori. Il progetto è realizzato in TypeScript (Node.js) e Go.

Installazione della Helm Dashboard

La documentazione ufficiale nel repository del progetto offre diverse modalità per installare la Helm Dashboard. Puoi:

  • Scaricare l’archivio contenente il file eseguibile pre-costruito.

  • Installarlo come plugin Helm.

  • Utilizzare un chart per installarlo in un cluster Kubernetes (ciò genererà una risorsa Ingress).

  • Compilare autonomamente il file eseguibile dal codice sorgente.

 In questo articolo, ci concentreremo sulla seconda opzione, ovvero l’utilizzo del plugin Helm. Per installare il plugin, è necessario disporre di Helm v3.4.0+ ed eseguire il seguente comando:

È importante notare che il plugin richiede un file di configurazione denominato kubeconfig per accedere al cluster Kubernetes (l’argomento è ampiamente coperto nella documentazione di K8s).

Per avviare il plugin, inserisci il seguente comando nel terminale:

Ciò aprirà un’interfaccia utente web nel tuo browser, mostrando di default la pagina di panoramica delle Helm releases.

Esplorare le funzionalità della helm dashboard

In cima alla pagina, troverai le schede “Installed” e “Repository”, le quali costituiscono le schede principali con cui interagiremo. Esaminiamole più da vicino.

Gestione delle Helm releases installate

La scheda Installed ti permette di vedere le tue release installate e filtrarle selezionando cluster Kubernetes specifici e namespace richiesti:

  • Clicca su qualsiasi release per visualizzare informazioni dettagliate su di essa.

  • Se l’installazione della release ha avuto successo, il dashboard mostrerà l’elenco delle risorse Kubernetes correlate.

  • Se la release è elencata come fallita, verrà visualizzato un messaggio di errore con le ragioni per cui l’installazione ha avuto esito negativo.

Prendiamo la release zookeeper-operator-dev come esempio:

  • Sulla sinistra della pagina, le Revisioni sono gli stati delle release che il sistema ha trovato nel cluster.
  • Il nostro principale focus sarà su Risorse e Schede Manifesti nella sezione principale della pagina.

Risorse delle release

La scheda Risorse elenca le risorse della release. Per ogni risorsa c’è un pulsante Descrivere. Clicca su uno per visualizzare un riepilogo della risorsa:

  • Come puoi vedere, la descrizione della risorsa è un output regolare di kubectl describe.

  • In alcuni casi, potrebbe esserci anche un pulsante Scansione accanto al pulsante Descrivere. Diventa disponibile nel caso in cui Trivy sia installato.

Questo strumento esegue la scansione dei containers e rileva vulnerabilità e potenziali minacce. Clicca sul pulsante Scansione per avviare la scansione della risorsa.

Si concluderà con un rapporto come il seguente:

Manifest Releases

La scheda Manifesti mostra i manifesti delle risorse nella release. Puoi selezionare qualsiasi manifesto tra quelli esistenti nel cluster:

La finestra che appare successivamente avrà due schede:

  1. DIFF con il precedente mostra la differenza tra la versione corrente e le release precedenti.

  2. DIFF con una revisione specifica mostra la differenza tra la versione corrente e le release specifiche.

Ad esempio, ecco la differenza tra quella corrente e la versione 3, che non è riuscita a dispiegarsi:

Azioni sulle release

Puoi aggiornare, tornare indietro o rimuovere qualsiasi release dal cluster. I pulsanti Riconfigura, Annulla e Disinstalla sulla pagina Installato fanno proprio questo:

Ecco uno screenshot di una finestra di aggiornamento:

Gestione dei repository Helm

La finestra Repository ti permette di gestire i repository Helm installati localmente. Il pannello di sinistra mostra la lista dei tuoi repository:

Puoi selezionare un repository ed esplorare i chart Helm forniti con esso. Altre cose che puoi fare sono:

  •     Aggiungere un repository;

  •     Aggiornare un repository;

  •     Rimuovere un repository.

Le chart Helm disponibili nel repository possono essere installati nel tuo cluster Kubernetes. Ma prima devi compilare i valori del chart. Per farlo, clicca sul pulsante Installa accanto al nome del chart. Ciò comporterà l’apertura della seguente finestra:

Vantaggi e particolarità di Helm Dashboard

Ora che abbiamo esaminato le principali caratteristiche di Helm Dashboard, è il momento di evidenziare quelle che ho apprezzato di più:

  • Helm Dashboard può essere installato localmente o in un cluster usando un chart.

  • Puoi visualizzare i chart Helm installati nel cluster ed esaminarne la cronologia delle release.

  • La funzione di differenziazione mostra le differenze tra le versioni delle release.

  • Puoi tornare indietro alla release di Helm o aggiornarla.

  • Quando installato localmente, puoi navigare tra le release di più cluster.

  • Helm Dashboard può essere integrato con gli scanner di vulnerabilità.

  • L’interfaccia utente è intuitiva e piacevole da usare.

Per quanto riguarda le particolarità di Helm Dashboard, è utile notare che la sua interfaccia utente influenza il server API di Kubernetes. Quando lo strumento viene avviato, richiede i segreti della release, causando un aumento dell’utilizzo della CPU. Ad esempio, ecco come appare lo stato del cluster prima che Helm Dashboard richieda i segreti della release:

  • Qui puoi vedere lo stato tipico del cluster prima di eseguire Helm Dashboard: l’utilizzo della CPU, quali risorse K8s vengono richieste e con quale frequenza.

  • Ecco lo stato del cluster dopo che Helm Dashboard inizia a richiedere i segreti della release:

Come possiamo vedere da questi grafici, l’utilizzo della CPU è aumentato mentre le risorse segrete vengono attivamente recuperate.

Conclusione

La Helm Dashboard è sicuramente una comoda soluzione UI web per visualizzare e gestire le Helm releases in Kubernetes. Apprezzo particolarmente la funzione di differenziazione, che consente di confrontare le release tra loro.

L’interfaccia minimalista, confortevole e ordinata di questo strumento lascia un’impressione piacevole. Sarà di grande aiuto per un team di sviluppo quando lavora con cluster di test e li aiuterà a capire cosa è andato storto e a risolverlo rapidamente.

09/04/2024
A cura di Francesco Grimaldi, CNCF Ambassador