Perché fare cose facili se possono essere fatte in modo ancora più facile? Questo è il motto dello strumento Minikube con cui è possibile eseguire lo­cal­men­te Ku­ber­ne­tes sul proprio computer.

I container hanno ri­me­sco­la­to e mo­di­fi­ca­to buona parte dell’IT e so­prat­tut­to dello sviluppo software. Grazie ad essi, le ap­pli­ca­zio­ni sono in grado di fun­zio­na­re in modo in­di­pen­den­te ma vicine in un ambiente virtuale rea­liz­za­to ad hoc.

Per l’or­che­stra­zio­ne dei container e delle loro procedure sono necessari strumenti come ad esempio Ku­ber­ne­tes. Questo strumento di gestione si sta af­fer­man­do come soluzione a tutto tondo, non solo perché gestisce ap­pli­ca­zio­ni, servizi e risorse e configura e connette le loro di­pen­den­ze, ma organizza altresì l’in­fra­strut­tu­ra presente composta da macchine virtuali. Allo stesso tempo, Ku­ber­ne­tes offre processi di controllo che sor­ve­glia­no la salute dei nodi, pod e container di­spo­ni­bi­li nel cluster.

Minikube è una di­stri­bu­zio­ne Ku­ber­ne­tes più snella, che con il minimo sforzo consente la massima resa fun­zio­na­le di Ku­ber­ne­tes. È in­te­res­san­te non solo per chi si approccia al campo dei container, ma anche so­prat­tut­to al mondo dell’Edge computing e dell’IoT. In questo articolo vi spie­ghia­mo cos’è esat­ta­men­te Minikube, a cosa serve e come fa a ri­nun­cia­re a grosse in­fra­strut­tu­re.

Managed Ku­ber­ne­tes
Or­che­stra­zio­ne sicura dei carichi di lavoro dei container
  • Con­fi­gu­ra­zio­ne au­to­ma­ti­ca dei cluster Ku­ber­ne­tes
  • Ar­chi­via­zio­ne per­si­sten­te com­ple­ta­men­te integrata
  • As­si­sten­za clienti 24/7

Minikube: il principio dell’es­sen­zia­li­tà applicato ai container

Minikube è la soluzione per piccoli progetti basati su container. Chi ad esempio desidera rea­liz­za­re un cluster Ku­ber­ne­tes per uso privato, non deve più lavorare di­ret­ta­men­te con un intero server o un cloud. Ku­ber­ne­tes Minikube fa a meno di grosse in­fra­strut­tu­re 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 con­di­zio­ne minima è pensata so­prat­tut­to per piccoli progetti privati di svi­lup­pa­to­ri software, che grazie a Minikube possono essere eseguiti in maniera semplice.

Server o Cloud non sono necessari, il cluster Ku­ber­ne­tes funziona sem­pli­ce­men­te tramite localhost. Minikube lavora di default con un Vir­tual­Box come macchina virtuale per l’ese­cu­zio­ne, così è possibile anche l’uso con­tem­po­ra­neo tramite Linux su Windows o macOS. Chi comunque pre­fe­ri­sce lavorare senza Vir­tual­Box, può ampliare Ku­ber­ne­tes Minikube in modo che possa essere uti­liz­za­to anche lontano dal software di vir­tua­liz­za­zio­ne.

Funzioni di Ku­ber­ne­tes Minikube

La sem­pli­ci­tà di Minikube è tangibile anche nelle sue funzioni. Lo strumento supporta le seguenti funzioni Ku­ber­ne­tes:

Chi ha di­me­sti­chez­za con la mol­te­pli­ci­tà di funzioni di Ku­ber­ne­tes, troverà molto limitato il setup di Minikube. Ma tutto è esten­di­bi­le tramite funzioni. Come per mezzo del Minikube-Tunnel, che funziona come Load­Ba­lan­cer tramite controlli di accesso basati sui ruoli, dashboard, multi cluster o molti altri standard Ku­ber­ne­tes. Inoltre uno store offre una grande quantità di add-on, come il supporto GPU per un’analisi au­to­ma­ti­ca degli errori e l’orien­ta­men­to nell’ambito dell’ap­pren­di­men­to au­to­ma­ti­co.

Ku­ber­ne­tes Minikube, proprio come il suo fratello maggiore, vive grazie alla community. Con grande frequenza compaiono nuovi con­tri­bu­ter che fanno pro­gre­di­re sempre di più lo strumento. E non appena Ku­ber­ne­tes viene ag­gior­na­to, anche Minikube passa alla nuova versione. Nel frattempo, ad esempio, è di­spo­ni­bi­le un catalogo delle soluzioni che può essere co­mo­da­men­te con­sul­ta­to dagli utenti per risolvere problemi noti.

Come funziona Minikube?

Raramente il nome di uno strumento IT è stato tanto calzante quanto Minikube. Le varie pos­si­bi­li­tà di Ku­ber­ne­tes sono così ridotte da poter entrare in un laptop o PC, ma la fun­zio­na­li­tà di base resta comunque garantita. Con solo pochi comandi per l’in­stal­la­zio­ne, Minikube si trasforma in un cluster Ku­ber­ne­tes com­ple­ta­men­te fun­zio­nan­te uti­liz­za­bi­le non solamente come banco di prova ma anche per le attività di sviluppo quo­ti­dia­ne.

Ku­ber­ne­tes Minikube può lavorare con diversi hy­per­vi­sor come macchina virtuale per l’ese­cu­zio­ne. Se un hy­per­vi­sor (come per esempio il già citato Vir­tual­Box) è in­stal­la­to sul sistema, Minikube realizza au­to­ma­ti­ca­men­te una virtual machine. Per dare istru­zio­ni al cluster Ku­ber­ne­tes serve ora solo la riga di comando standard kubectl.

Una volta in­stal­la­te tutte le com­po­nen­ti, è possibile avviare Minikube. Alle macchine virtuali è at­tri­bui­to di default 1 GB di memoria e così si ha un cluster Ku­ber­ne­tes con­fi­gu­ra­bi­le 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 co­no­sciu­to. Con l’aiuto di namespace i cluster fisici sono suddivisi in molti settori. Per una miglior pa­no­ra­mi­ca delle risorse si possono creare namespace propri tramite kubectl. Con l’impiego di add-on le funzioni di Minikube sono tanto mol­te­pli­ci quanto quelle negli altri sistemi di container.

I campi di impiego di Ku­ber­ne­tes Minikube

La più im­por­tan­te pos­si­bi­li­tà di ap­pli­ca­zio­ne per Minikube è quella di rac­co­glie­re espe­rien­ze pratiche con Ku­ber­ne­tes. Non sempre cluster potenti sono a libera di­spo­si­zio­ne, ma Minikube offre un’op­por­tu­ni­tà snella di spe­ri­men­ta­re e testare ap­pli­ca­zio­ni. Ku­ber­ne­tes stesso fornisce un det­ta­glia­to tutorial per l’uso di Minikube, così non è ne­ces­sa­rio avere espe­rien­ze pregresse. Ma anche a coloro che hanno già di­me­sti­chez­za con Kubernet, Minikube offre l’occasione di ap­pren­de­re, perché si può spe­ri­men­ta­re co­stan­te­men­te.

Minikube è un banco di prova per tutte le funzioni Ku­ber­ne­tes. Entrambi gli strumenti sono open source con la licenza Apache 2.0. Consente di valutare, attivare, di­sat­ti­va­re e sup­por­ta­re ef­fet­ti­va­men­te cluster e add-on. Questi ultimi possono essere svi­lup­pa­ti ul­te­rior­men­te tramite un semplice Trial-and-Error, ciò conduce ad un eco­si­ste­ma Ku­ber­ne­tes ancora più ampio.

Minikube consente di spe­ri­men­ta­re in maniera semplice, ma può essere uti­liz­za­to non solo per piccoli progetti privati, bensì anche per tec­no­lo­gie esterne, tra le altre cose anche come supporto spe­ri­men­ta­le per GPU NVIDIA. Perciò lo strumento è utile anche per svi­lup­pa­to­ri, a partire dagli algoritmi di ap­pren­di­men­to meccanici fino ai vi­deo­gio­chi.

Inoltre, Minikube si rivolge anche a dirigenti del settore IT. I CIO (direttori in­for­ma­ti­ci) so­li­ta­men­te non hanno tempo per svi­lup­pa­re, testare o ap­pren­de­re nuovi strumenti. Ma il ritmo con il quale cambiano gli strumenti IT richiede proprio questo. Per fa­mi­lia­riz­za­re con Ku­ber­ne­tes non ci sono strade più semplici che man­te­ner­si ag­gior­na­ti in Minikube. Esiste una funzione Minikube per la dashboard di Ku­ber­ne­tes che fornisce uno sguardo molto det­ta­glia­to sul com­por­ta­men­to dell’ap­pli­ca­zio­ne nel cluster insieme con metriche di utilizzo. In più, Minikube è lo strumento perfetto per una pre­sen­ta­zio­ne e per una di­mo­stra­zio­ne relativa all’uso di Ku­ber­ne­tes, da ef­fet­tua­re a livello locale.

Un piccolo assaggio dell’ampio mondo di Minikube

Tutto ciò che serve per l’in­stal­la­zio­ne di Minikube è un sistema di container (come Docker) o un ambiente con una macchina virtuale come Ku­ber­ne­tes. Nella do­cu­men­ta­zio­ne ufficiale di Ku­ber­ne­tes sono già presenti le istru­zio­ni per l’in­stal­la­zio­ne di Minikube; vi serve solo l’in­ter­fac­cia della riga di comando nativa kubectl e sarete solamente a un passaggio dall’at­ti­va­zio­ne del mini-strumento:

minikube start

I requisiti del computer/laptop locale sono quelli evi­den­te­men­te attesi:

  • 2 o più CPU
  • 2 GB di memoria libera
  • 20 GB di memoria libera su disco rigido
  • con­nes­sio­ne Internet
  • container ma­na­ge­ment system o una virtual machine

Non appena kubectl viene in­stal­la­to, è possibili ri­chia­ma­re il nuovo cluster:

kubectl get po -A

Minikube riunisce la dashboard di Ku­ber­ne­tes e consente in questo modo un accesso più facile al nuovo ambiente.

minikube dashboard

Ora è possibile partire subito con le ap­pli­ca­zio­ni deploy. Un esempio di ap­pli­ca­zio­ne viene creato con il seguente comando e reso di­spo­ni­bi­le nella porta 8080:

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
N.B.

Tramite questi comandi uti­liz­za­te la pre­co­sti­tui­ta Image echo­ser­ver. In linea di principio qui potete anche uti­liz­za­re un’altra o una vostra image

Ci vuole un attimo ma poi l’ap­pli­ca­zio­ne verrà ri­chia­ma­ta 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 al­ter­na­ti­va è anche possibile uti­liz­za­re kubectl per poter essere inol­trar­ti 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 Ku­ber­ne­tes senza dan­neg­gia­re le ap­pli­ca­zio­ni messe a di­spo­si­zio­ne:

minikube pause

Per mettere in pausa il cluster:

minikube stop

Per aumentare il limite di sal­va­tag­gio standard (richiede un riavvio):

minikube config set memory 16384

Per la ricerca di servizi Ku­ber­ne­tes:

minikube addons list

Per la creazione di un secondo cluster con una versione di Ku­ber­ne­tes pre­ce­den­te:

minikube start -p aged --kubernetes-version=v1.16.1

Per can­cel­la­re tutti i cluster minikube:

minikube delete --all
Consiglio

Volete saperne di più su Ku­ber­ne­tes, il fratello maggiore di Minikube? Nel nostro ampio tutorial su Ku­ber­ne­tes troverete molte pratiche in­for­ma­zio­ni sul tema.

Vai al menu prin­ci­pa­le