Minikube: Kubernetes alla massima portata con il minimo sforzo
Perché fare cose facili se possono essere fatte in modo ancora più facile? Questo è il motto dello strumento Minikube con cui è possibile eseguire localmente Kubernetes sul proprio computer.
I container hanno rimescolato e modificato buona parte dell’IT e soprattutto dello sviluppo software. Grazie ad essi, le applicazioni sono in grado di funzionare in modo indipendente ma vicine in un ambiente virtuale realizzato ad hoc.
Per l’orchestrazione dei container e delle loro procedure sono necessari strumenti come ad esempio Kubernetes. Questo strumento di gestione si sta affermando come soluzione a tutto tondo, non solo perché gestisce applicazioni, servizi e risorse e configura e connette le loro dipendenze, ma organizza altresì l’infrastruttura presente composta da macchine virtuali. Allo stesso tempo, Kubernetes offre processi di controllo che sorvegliano la salute dei nodi, pod e container disponibili nel cluster.
Minikube è una distribuzione Kubernetes più snella, che con il minimo sforzo consente la massima resa funzionale di Kubernetes. È interessante non solo per chi si approccia al campo dei container, ma anche soprattutto al mondo dell’Edge computing e dell’IoT. In questo articolo vi spieghiamo cos’è esattamente Minikube, a cosa serve e come fa a rinunciare a grosse infrastrutture.
- Configurazione automatica dei cluster Kubernetes
- Archiviazione persistente completamente integrata
- Assistenza clienti 24/7
Minikube: il principio dell’essenzialità applicato ai container
Minikube è la soluzione per piccoli progetti basati su container. Chi ad esempio desidera realizzare un cluster Kubernetes per uso privato, non deve più lavorare direttamente con un intero server o un cloud. Kubernetes Minikube fa a meno di grosse infrastrutture ed è in grado di creare in modo semplice cluster locali. Per farlo si serve solamente dello spazio per un computer, un cluster con un singolo nodo. Questa condizione minima è pensata soprattutto per piccoli progetti privati di sviluppatori software, che grazie a Minikube possono essere eseguiti in maniera semplice.
Server o Cloud non sono necessari, il cluster Kubernetes funziona semplicemente tramite localhost. Minikube lavora di default con un VirtualBox come macchina virtuale per l’esecuzione, così è possibile anche l’uso contemporaneo tramite Linux su Windows o macOS. Chi comunque preferisce lavorare senza VirtualBox, può ampliare Kubernetes Minikube in modo che possa essere utilizzato anche lontano dal software di virtualizzazione.
Funzioni di Kubernetes Minikube
La semplicità di Minikube è tangibile anche nelle sue funzioni. Lo strumento supporta le seguenti funzioni Kubernetes:
- DNS
- Node.js
- ConfigMaps and Secrets
- Dashboard
- Ambienti runtime containerizzati Docker o alternative Docker come rkt, CRI-O e containerd
- Supporto di CNI (Container Network Interface)
- Ingress
Chi ha dimestichezza con la molteplicità di funzioni di Kubernetes, troverà molto limitato il setup di Minikube. Ma tutto è estendibile tramite funzioni. Come per mezzo del Minikube-Tunnel, che funziona come LoadBalancer tramite controlli di accesso basati sui ruoli, dashboard, multi cluster o molti altri standard Kubernetes. Inoltre uno store offre una grande quantità di add-on, come il supporto GPU per un’analisi automatica degli errori e l’orientamento nell’ambito dell’apprendimento automatico.
Kubernetes Minikube, proprio come il suo fratello maggiore, vive grazie alla community. Con grande frequenza compaiono nuovi contributer che fanno progredire sempre di più lo strumento. E non appena Kubernetes viene aggiornato, anche Minikube passa alla nuova versione. Nel frattempo, ad esempio, è disponibile un catalogo delle soluzioni che può essere comodamente consultato dagli utenti per risolvere problemi noti.
Come funziona Minikube?
Raramente il nome di uno strumento IT è stato tanto calzante quanto Minikube. Le varie possibilità di Kubernetes sono così ridotte da poter entrare in un laptop o PC, ma la funzionalità di base resta comunque garantita. Con solo pochi comandi per l’installazione, Minikube si trasforma in un cluster Kubernetes completamente funzionante utilizzabile non solamente come banco di prova ma anche per le attività di sviluppo quotidiane.
Kubernetes Minikube può lavorare con diversi hypervisor come macchina virtuale per l’esecuzione. Se un hypervisor (come per esempio il già citato VirtualBox) è installato sul sistema, Minikube realizza automaticamente una virtual machine. Per dare istruzioni al cluster Kubernetes serve ora solo la riga di comando standard kubectl.
Una volta installate tutte le componenti, è possibile avviare Minikube. Alle macchine virtuali è attribuito di default 1 GB di memoria e così si ha un cluster Kubernetes configurabile con facilità tramite kubectl. Una priorità potrebbe essere ad esempio quella di adeguare la memoria a seconda delle necessità.
Chi lavora già con i container, si trova ora in un campo conosciuto. Con l’aiuto di namespace i cluster fisici sono suddivisi in molti settori. Per una miglior panoramica delle risorse si possono creare namespace propri tramite kubectl. Con l’impiego di add-on le funzioni di Minikube sono tanto molteplici quanto quelle negli altri sistemi di container.
I campi di impiego di Kubernetes Minikube
La più importante possibilità di applicazione per Minikube è quella di raccogliere esperienze pratiche con Kubernetes. Non sempre cluster potenti sono a libera disposizione, ma Minikube offre un’opportunità snella di sperimentare e testare applicazioni. Kubernetes stesso fornisce un dettagliato tutorial per l’uso di Minikube, così non è necessario avere esperienze pregresse. Ma anche a coloro che hanno già dimestichezza con Kubernet, Minikube offre l’occasione di apprendere, perché si può sperimentare costantemente.
Minikube è un banco di prova per tutte le funzioni Kubernetes. Entrambi gli strumenti sono open source con la licenza Apache 2.0. Consente di valutare, attivare, disattivare e supportare effettivamente cluster e add-on. Questi ultimi possono essere sviluppati ulteriormente tramite un semplice Trial-and-Error, ciò conduce ad un ecosistema Kubernetes ancora più ampio.
Minikube consente di sperimentare in maniera semplice, ma può essere utilizzato non solo per piccoli progetti privati, bensì anche per tecnologie esterne, tra le altre cose anche come supporto sperimentale per GPU NVIDIA. Perciò lo strumento è utile anche per sviluppatori, a partire dagli algoritmi di apprendimento meccanici fino ai videogiochi.
Inoltre, Minikube si rivolge anche a dirigenti del settore IT. I CIO (direttori informatici) solitamente non hanno tempo per sviluppare, testare o apprendere nuovi strumenti. Ma il ritmo con il quale cambiano gli strumenti IT richiede proprio questo. Per familiarizzare con Kubernetes non ci sono strade più semplici che mantenersi aggiornati in Minikube. Esiste una funzione Minikube per la dashboard di Kubernetes che fornisce uno sguardo molto dettagliato sul comportamento dell’applicazione nel cluster insieme con metriche di utilizzo. In più, Minikube è lo strumento perfetto per una presentazione e per una dimostrazione relativa all’uso di Kubernetes, da effettuare a livello locale.
Un piccolo assaggio dell’ampio mondo di Minikube
Tutto ciò che serve per l’installazione di Minikube è un sistema di container (come Docker) o un ambiente con una macchina virtuale come Kubernetes. Nella documentazione ufficiale di Kubernetes sono già presenti le istruzioni per l’installazione di Minikube; vi serve solo l’interfaccia della riga di comando nativa kubectl e sarete solamente a un passaggio dall’attivazione del mini-strumento:
minikube start
I requisiti del computer/laptop locale sono quelli evidentemente attesi:
- 2 o più CPU
- 2 GB di memoria libera
- 20 GB di memoria libera su disco rigido
- connessione Internet
- container management system o una virtual machine
Non appena kubectl viene installato, è possibili richiamare il nuovo cluster:
kubectl get po -A
Minikube riunisce la dashboard di Kubernetes e consente in questo modo un accesso più facile al nuovo ambiente.
minikube dashboard
Ora è possibile partire subito con le applicazioni deploy. Un esempio di applicazione viene creato con il seguente comando e reso disponibile nella porta 8080:
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
Tramite questi comandi utilizzate la precostituita Image echoserver. In linea di principio qui potete anche utilizzare un’altra o una vostra image
Ci vuole un attimo ma poi l’applicazione verrà richiamata tramite il seguente comando:
kubectl get services hello-minikube
Il modo più semplice di avere accesso a questo servizio è quello di lasciar avviare un browser web da Minikube:
minikube service hello-minikube
In alternativa è anche possibile utilizzare kubectl per poter essere inoltrarti alla porta:
kubectl port-forward service/hello-minikube 7080:8080
Infine seguono alcuni comandi generali di gestione per il cluster.
Comando per mettere in pausa Kubernetes senza danneggiare le applicazioni messe a disposizione:
minikube pause
Per mettere in pausa il cluster:
minikube stop
Per aumentare il limite di salvataggio standard (richiede un riavvio):
minikube config set memory 16384
Per la ricerca di servizi Kubernetes:
minikube addons list
Per la creazione di un secondo cluster con una versione di Kubernetes precedente:
minikube start -p aged --kubernetes-version=v1.16.1
Per cancellare tutti i cluster minikube:
minikube delete --all
Volete saperne di più su Kubernetes, il fratello maggiore di Minikube? Nel nostro ampio tutorial su Kubernetes troverete molte pratiche informazioni sul tema.