Installiamo e configuriamo Helm per Kubernetes
Pensate ai vari file con cui bisogna armeggiare per creare deployment, service, configurazioni, secret e molto altro.
E quando bisogna aggiornare l’infrastruttura software, o addirittura rimuovere il tutto specie in fase di sviluppo? Quanto tempo perso cercando di mettere in piedi degli script che facciano il lavoro per noi. E se volessimo installare un API gateway, un service mesh con un semplice comando?
Avete presente i gestori di pacchetti per i linguaggi di programmazione? Per caso npm, pip vi dicono qualcosa?
Ebbene esiste una soluzione simile anche per Kubernetes e si chiama Helm.
Non è la sola ma probabilmente la più diffusa ed utilizzata.
Secondo quanto riportato sul sito ufficiale
Helm is the best way to find, share, and use software built for Kubernetes.
Nè più nè meno quello che faremmo in altri contesti.
Nel nostro esempio utilizziamo la versione 3.
L’unico prerequisito è la disponibilità di un cluster Kubernetes correttamente configurato e funzionante. E’ possibile crearne uno a costo zero seguendo le indicazioni riportate in questo post.
Nel nostro caso utilizzeremo un cluster gestito su DigitalOcean.
Sulla nostra macchina di sviluppo scarichiamo lo script di installazione
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
Rendiamolo eseguibile
chmod +x get_helm.sh
e infine lanciamolo
./get_helm.sh
Ora dobbiamo aggiungere il repository pubblico di Helm per installare i pacchetti, in gergo charts.
Eseguiamo
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
Ora proviamo ad installare un chart di esempio sul cluster Kubernetes per verificare che tutto funzioni correttamente.
Si tratta del notissimo Ingress basato su nginx.
Il comando di installazione presenta una sintassi molto simile a quella di altri packet manager.
helm install nginx stable/nginx-ingress
Una semplice verifica ci permette di visualizzare i pod creati da nginx nonchè i relativi service ed in particolare un Load Balancer che verrà creato direttamente da DigitalOcean.
Possiamo anche consultare la lista dei chart installati con
helm ls
Volendo procedere alla disinstallazione possiamo eseguire
helm delete nginx
dove nginx è proprio il nome del chart ricavato dalla precedente lista.
Anche in questo caso facciamo un controllo sulla lista di pod e service per essere sicuri che tutto sia stato rimosso.
N.B. Da notare che anche il Load Balancer su DigitalOcean è stato distrutto, salvaguardando il nostro portafoglio.
Per ora è tutto. Buona sperimentazione!