Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Kubernetes: primi passi (con minikube)

Come predisporre facilmente un cluster Kubernetes completo nel Cloud per scopi sperimentali e di studio grazie a minikube
Come predisporre facilmente un cluster Kubernetes completo nel Cloud per scopi sperimentali e di studio grazie a minikube
Link copiato negli appunti

Per iniziare a lavorare con Kubernetes abbiamo bisogno di due cose:

  • un cluster Kubernetes;
  • il client kubectl.

La preoccupazione principale che potremmo avere è quella relativa al primo punto ovvero la predisposizione di un cluster. Come vedremo però si può ottenere – per scopi sperimentali e di studio – in maniera molto facile, veloce e soprattutto economica.

Kubernetes è specializzato nella gestione di applicazioni distribuite e scalabili basate su moduli applicativi realizzati con la tecnologia a container su cui abbiamo fatto un rapido ripasso nella lezione precedente. Le architetture Kubernetes vengono implementate su cluster di nodi che dovrebbero corrispondere a macchine fisiche o virtuali che siano.

Diciamo subito che l'utilizzo del concetto di nodo è molto importante in quanto risulta un'astrazione della macchina in sé rappresentando quindi un'unità funzionale del cluster svincolata dalle caratteristiche tecnologiche del dispositivo che, come abbiamo già detto, potrebbe non esistere fisicamente in quanto frutto di virtualizzazione.

Come ottenere un cluster Kubernetes

Kubernetes è uno strumento versatile che può trovare applicazione in molti contesti ma non nascondiamo che il mondo in cui ha ormai dilagato e che è in grado di sprigionare tutte le sue potenzialità è il Cloud. Creare un cluster Kubernetes, come accennato nella lezione precedente, può essere fatto con tutte le principali piattaforme Cloud tra cui:

Tali soluzioni offrono un impiego "reale" di Kubernetes pur richiedendo delle iscrizioni alle relative piattaforme ed eventualmente la registrazione di un mezzo di pagamento come account di fatturazione. Questi saranno i veri scenari con cui prima o poi, al giorno d'oggi, ci si confronterà per diventare ottimi amministratori di applicazioni Kubernetes ma quello che ci interessa al momento è trovare un modo immediato, facile ed economico per iniziare a sperimentare Kubernetes. Tutto ciò esiste e risponde al nome di minikube.

Lavorare con minikube

Ciò che minikube offre è un cluster locale, installabile su ogni sistema operativo che permette di sviluppare applicazioni Kubernetes senza dover approntare un reale cluster né accedere a servizi in Cloud. Noi ci risparmieremo anche di installare minikube (sebbene sia piuttosto semplice grazie alle istruzioni disponibili sul sito ufficiale per ogni sistema operativo e piattaforma) in quanto lo utilizzeremo in un sistema on-line, gratuito e disponibile per chiunque abbia un account di posta elettronica Gmail: Cloud Shell.

Ambiente di sperimentazione pronto all'uso in Cloud Shell

Cloud Shell è un ambiente runtime, già allestito con moltissimi strumenti, offerto dalla Google Cloud Platform (GCP), il Cloud di Google. Per accedervi è sufficiente recarsi nel pannello della GCP, la loro console. Si verrà accolti (se non ancora loggati nel browser) dal classico form di autenticazione Google in cui potremo inserire le nostre password Gmail.

Fatto ciò, ci troveremo dinanzi il pannello della Google Cloud Platform, a noi però interesserà cliccare un'icona posta nella barra in alto a destra che nell’immagine seguente abbiamo cerchiato in rosso:

Accesso alla Cloud Shell di Google

Figura 1. Accesso alla Cloud Shell di Google

Dopo pochi secondi di provisioning, verremo accolti in un ambiente da riga di comando che è una macchina virtuale Linux in cui sono già a disposizione e installati moltissimi strumenti di lavoro (git, Python, Node.js, il linguaggio Go, etc.) e soprattutto alcuni che oggi abbiamo particolarmente a cuore: Docker, minikube ed il client kubectl.

Questo significa che qui abbiamo, già pronto e gratuito, tutto ciò che ci permette di studiare e sperimentare Kubernetes: potremo così apprendere ogni cosa che ci interessa sui concetti alla base di questa piattaforma e sulle sue API. Il tempo del Cloud e dei veri cluster arriverà più avanti sebbene non ci nascondiamo che minikube può essere utile per tantissimi approfondimenti ma, per chi porterà avanti i propri studi anche al di là di questa guida, determinate applicazioni richiederanno una vera installazione Kubernetes.

Primo approccio a minikube

Una volta entrati nella Cloud Shell (o installato minikube sulla propria macchina, a seconda delle preferenze) possiamo avviare il nostro primo cluster con:

minikube start

Dopo alcuni secondi di preparazione il nostro cluster minikube sarà in esecuzione e potremo averne conferma sfruttando, sin da ora, il client kubectl anch'esso già disponibile in Cloud Shell. Il comando seguente:

kubectl get po -A

ci offrirà una panoramica sugli elementi che avremo al momento in esecuzione. Nel nostro caso apparirà questo:

NAMESPACE     NAME                               READY   STATUS    RESTARTS        AGE
kube-system   coredns-565d847f94-hvwjx           1/1     Running   0               4m19s
kube-system   etcd-minikube                      1/1     Running   0               4m30s
kube-system   kube-apiserver-minikube            1/1     Running   0               4m30s
kube-system   kube-controller-manager-minikube   1/1     Running   0               4m30s
kube-system   kube-proxy-v4vrb                   1/1     Running   0               4m19s
kube-system   kube-scheduler-minikube            1/1     Running   0               4m30s
kube-system   storage-provisioner                1/1     Running   1 (3m48s ago)   4m27s

Se tutto ciò si sarà verificato, significa che saremo pronti per studiare Kubernetes (mediante minikube) cosa che inizieremo a fare nelle prossime lezioni. Al momento, quello che ci interessa è imparare ad arrestare il cluster che abbiamo appena avviato. Sarà possibile farlo con:

minikube stop

che metterà a riposo le risorse prima attivate.

Ti consigliamo anche