Jump to section

Cos'è Helm?

Copia URL

Lo sviluppo applicativo con Kubernetes è un'attiva complessa: per ciascuna applicazione occorre installare, gestire e aggiornare centinaia di configurazioni. 

Helm semplifica questo processo perché automatizza la distribuzione delle applicazioni tramite un formato per i pacchetti denominato grafico Helm. Così come yum gestisce i pacchetti RPM per Red Hat® Enterprise Linux®, helm fa lo stesso con i grafici Helm per Kubernetes. Questi grafici mantengono la coerenza tra i container e stabiliscono come soddisfare i requisisti specifici di un'applicazione.

Poiché è lo strumento di gestione dei pacchetti per Kubernetes, Helm consente di applicare lo stesso framework di configurazione a più istanze utilizzando le sostituzioni dei valori; il tutto in base alle priorità della configurazione specifica. 

Helm logo

Curiosità: Helm è un progetto open source che ha raggiunto il livello di maturità Graduated della Cloud Native Computing Foundation (CNCF). Presentato per la prima volta al KubeCon 2015, è poi passato alla CNCF con Kubernetes.

Helm descrive l'applicazione dalla definizione all'upgrade in quelli che prendono il nome di grafici Helm. I grafici (simili a modelli) sono utilizzati per passare le risorse al cluster Kubernetes tramite l'API di Kubernetes. 

Helm utilizza un'interfaccia a riga di comando (CLI), chiamata helm, per gestire i grafici Helm, oltre a pochi altri semplici comandi che permettono di creare, gestire e configurare l'applicazione. 

I grafici Helm sono una raccolta di file che descrive le risorse del cluster Kubernetes e le raggruppa in un'applicazione. Sono composti da tre elementi fondamentali:

  • Il grafico - Chart.yaml definisce i metadati dell'applicazione come nome, versione, dipendenze, ecc. 
  • I valori - values.yaml imposta i valori ed è ciò che permette di impostare le sostituzioni delle variabili per poter riutilizzare i grafici.
    • Può anche capitare di avere uno schema JSON, che descrive una struttura per il file dei valori. Ciò contribuisce a creare forme dinamiche e a convalidare i parametri dei valori.
  • La directory dei modelli - templates/ raccoglie i modelli e li combina con i valori impostati nel file values.yaml per creare i manifesti.
  • La directory dei grafici - charts/ archivia tutte le dipendenze che definisci in Chart.yaml e ricrei con le build delle dipendenze helm o l'update delle dipendenze helm.

Ogni volta che si installa un grafico Helm se ne crea anche un'istanza, chiamata release. I grafici Helm esistenti vengono mantenuti a ogni release ed è possibile utilizzare le versioni precedenti del grafico per ripristinare le configurazioni preferite.

Per vedere come funzionano i grafici Helm, dai un'occhiata a questo episodio di Ask a Product Manager Office Hours, in cui si discute di come utilizzare Helm con Red Hat OpenShift®.

Dopo aver installato la CLI di Helm, le possibilità sono due: utilizzare un grafico già esistente con risorse e valori predefiniti oppure creare un grafico personalizzato per creare un pacchetto contenente le tue risorse per le applicazioni.

Utilizzo di un grafico già esistente

Per utilizzare un grafico già esistente, per prima cosa devi aggiungere il repository Helm al tuo client Helm, poi devi impostare dei parametri di configurazione specifici nei tuoi file dei valori al momento dell'installazione.

I file dei valori sono essenziali per poter riutilizzare i grafici Helm per le singole configurazioni. È possibile sostituire qualunque variabile dichiarata in values.yaml e Helm creerà una struttura .values dove tenere queste variabili nel modello. In questo modo per le future configurazioni le variabili saranno facilmente accessibili e sostituibili. Non esiste un numero limite di file dei valori che si possono passare a un grafico. In ogni caso, Helm li combina per rendere i file delle variabili riutilizzabili.

Dopo aver impegnato o inviato le configurazioni dei valori, sarai in grado di occuparti degli aggiornamenti, degli upgrade e della gestione del ciclo di vita della tua applicazione tramite i comandi helm comuni.

Creazione di un grafico personalizzato

Potresti avere la necessità di realizzare un grafico personalizzato per creare un pacchetto con le applicazioni che vuoi riutilizzare all'interno dell'organizzazione o solo per alcuni carichi di lavoro specifici. A tal fine è necessario definire le risorse della tua applicazione nella directory templates/ del grafico, impostare i parametri di configurazione tramite i file dei valori e aggiungere i metadati e la documentazione al file Chart.yaml.

In seguito puoi "impacchettare" il grafico con il pacchetto helm, per poi caricarlo in un repository Helm pubblico o privato. In alternativa, puoi anche distribuirlo direttamente.

I modelli convalidati di Red Hat sono un ottimo esempio di grafici Helm esistenti che puoi anche personalizzare. I modelli convalidati sono grafici Helm che descrivono un intero carico di lavoro distribuito presso un cliente, e che ha soddisfatto una serie di requisiti a livello di test e manutenzione. Questi modelli possono essere utilizzati direttamente oppure possono essere modificati per adattarsi alle esigenze della tua configurazione.

Helm può essere integrato nella tua strategia GitOps. È uno strumento efficace che offre agilità, sicurezza e uniformità in più ambienti. Se utilizzato insieme a uno strumento di comunicazione multicloud come Red Hat Service Interconnect, Helm è utile soprattutto per quei deployment complessi che si servono di più microservizi su diversi provider cloud.

Per gli sviluppatori Kubernetes, i grafici Helm sono una soluzione facile e veloce per avviare le applicazioni, e possono essere riutilizzati e condivisi con i colleghi.  

Per gli amministratori di sistema e i team operativi, Helm è uno strumento coerente che consente di implementare e ottimizzare le tecniche di integrazione e sviluppo continui (CI/CD) nelle loro pipeline applicative. Helm è uno strumento che offre agilità e coerenza.

Per provare in prima persona l'intero processo (creazione del grafico, configurazione dei valori e deployment del grafico), segui il tutorial presente su Red Hat® Developer.

Keep reading

ARTICOLO

Cos'è la metodologia DevSecOps?

Per sfruttare tutta l'agilità e la reattività di un approccio DevOps, occorre tenere conto anche di un altro elemento cruciale dell'intero ciclo di vita delle tue applicazioni: la sicurezza IT.

ARTICOLO

Cosa si intende con CI/CD?

Il metodo CI/CD introduce l'automazione costante e il monitoraggio continuo in tutto il ciclo di vita delle applicazioni, dalle fasi di integrazione e test a quelle di distribuzione e deployment.

ARTICOLO

Il ruolo di un ingegnere DevOps

Un ingegnere DevOps possiede competenze ed esperienze specifiche che promuovono collaborazione, innovazione e trasformazione all'interno di un'azienda.  

Scopri di più su DevOps

Prodotti

Un incontro conoscitivo approfondito con gli esperti di Red Hat in cui apprendere una metodologia agile e identificare gli strumenti open source più adatti a risolvere i problemi della tua azienda.

Collabora con il nostro team di consulenti strategici in grado di analizzare l'azienda nel suo insieme e valutare le sfide da affrontare, per aiutarti a superarle con soluzioni complete e convenienti.

Risorse