Come eseguire un cluster Kubernetes locale con Minikube?
Minikube è una distribuzione Kubernetes minima progettata per l’uso nello sviluppo locale. È stato sviluppato nell’ambito del progetto Kubernetes e include implementazioni di tutte le principali funzioni del cluster.
Minikube funziona su host Linux, Mac e Windows. Può utilizzare contenitori o un ambiente di macchina virtuale per eseguire il cluster e i relativi carichi di lavoro. Ecco tutti i runtime supportati:
- Docker
- Podman
- KVM
- Hyper-V
- Hyperkit
- paralleli
- scatola virtuale
- VMware
Prima di continuare con questa guida, assicurati di aver installato una di queste tecnologie. Il processo di installazione di Minikube rileverà automaticamente i runtime disponibili e applicherà la configurazione appropriata. Ti mostreremo come completare la distribuzione e iniziare a utilizzare Minikube.
Installazione del minicubo
In questa guida ci concentreremo sui sistemi Linux x86. Se utilizzi Windows, Mac o un’altra piattaforma CPU, fai riferimento alla documentazione di Minikube per le informazioni di configurazione più dettagliate. Dopo la procedura di installazione iniziale, l’utilizzo di base di Minikube è identico su tutti i sistemi supportati.
Gli utenti Linux possono scegliere tra un download diretto del binario o un pacchetto Debian/RPM. In questo esempio utilizzeremo un download binario.
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
Minikube sarà ora installato e pronto per l’uso.
Avvio di un cluster Kubernetes
Avvia il tuo cluster Minikube con il minikube start
comando:
$ minikube start
minikube v1.25.2 su Ubuntu 20.04
Seleziona automaticamente il driver della finestra mobile. Altre scelte: kvm2, ssh
Avvio del nodo del piano di controllo minikube nel cluster minikube
tirando l’immagine di base. ..
Downloading Kubernetes v1.23.3 preload. ..
Minikube scaricherà ed eseguirà automaticamente l’ultima versione di Kubernetes. Questo processo potrebbe richiedere diversi minuti. L’output del comando indicherà lo stato di avanzamento e visualizzerà le azioni che Minikube sta intraprendendo. Nell’esempio sopra, puoi vedere che il driver Docker è stato scelto per ospitare il tuo cluster. Fare riferimento alla documentazione del driver Minikube se la piattaforma container o lo stack di virtualizzazione non vengono rilevati automaticamente.
Utilizzo del cluster con Kubectl
Minikube modifica il tuo ambiente in modo che tu possa connetterti al tuo cluster utilizzando l’installazione Kubectl esistente. Aggiungerà minikube
un contesto al tuo file KUBECONFIG
che ha come target il tuo cluster Minikube.
Minikube include anche una versione in bundle di Kubectl a cui puoi accedere con un minikube kubectl
comando. Questo è utile se non hai ancora installato Kubectl o se il tuo binario esistente è diverso dalla versione del tuo cluster Minikube.
# Uses the Kubectl version that's bundled with Minikube
$ minikube kubectl get pods
Per il resto di questo tutorial, mostreremo un semplice kubectl
comando e assumiamo che abbia come target il tuo cluster Minikube. Puoi impostare un alias di shell per utilizzare il Kubectl relativo a Minikube senza un prefisso minikube
ogni volta:
$ alias kubectl="minikube kubectl"
Ora che Minikube live e Kubectl sono disponibili, puoi aggiungere applicazioni al tuo cluster Kubernetes:
$ kubectl create deployment nginx --image=nginx:latest
deployment.apps/nginx creato
$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed
Il comando minikube service
fornisce l’URL pubblico del servizio:
$ minikube service nginx --url
http://192.168.49.2:31599
Incolla l’URL nel tuo browser web (o esegui il comando senza --url
flag) per visualizzare il tuo servizio.
Accesso al pannello di controllo di Kubernetes
Minikube fornisce il dashboard Kubernetes come funzionalità integrata opzionale. Eseguire minikube dashboard
il comando per caricare i componenti del dashboard e avviare l’interfaccia in una nuova scheda del browser.
Puoi utilizzare la dashboard per gestire le tue risorse e visualizzarne l’attività. Mantieni minikube dashboard
il comando nel terminale mentre interagisci con il pannello di controllo. Quando hai finito, termina il comando con Ctrl+C.
Abilitazione del registro delle immagini
Minikube include un registro delle immagini come extra opzionale. Ciò ti consente di archiviare le immagini del contenitore all’interno di Minikube, rendendole disponibili per la distribuzione all’interno del tuo cluster.
Per prima cosa abilita il componente aggiuntivo del registro:
$ minikube addons enable registry
Quindi tagga la tua immagine in modo che punti al registro Minikube. Il registro è in ascolto sulla porta 5000 sull’indirizzo IP fornito minikube ip
dal comando.
$ docker tag my-image:latest $(minikube ip):5000/my-image:latest
Prima di poter inviare, Docker deve essere configurato per accettare l’URL come registro non sicuro. Aggiungilo a una insecure-registries
casella all’interno del tuo /etc/docker/daemon.json
file per fare in modo che Docker consenta l’accesso HTTP.
Sostituisci l’indirizzo IP con quello specificato nel minikube ip
comando. Riavvia Docker con il systemctl restart docker
comando.
Ora puoi inviare la tua immagine al registro Minikube:
$ docker push $(minikube ip):5000/my-image:latest
Prima che i moduli nel tuo cluster possano utilizzare questa immagine, è necessario completare un passaggio finale. Anche il runtime del contenitore Minikube deve essere configurato per consentire l’accesso non sicuro al registro. Puoi abilitarlo abilitando --insecure-registry
il flag di avvio minikube start
. L’indirizzo IP dovrebbe essere relativo all’indirizzo IP del cluster predefinito dell’installazione di Minikube. Puoi ottenerlo eseguendo kubectl get services
e guardando il CLUSTER-IP
servizio kubernetes
. Quindi ferma Minikube e riavvialo con un flag aggiuntivo.
$ kubectl get service
NOME TIPO CLUSTER-IP ESTERNO-IP PORTE ETÀ
kubernetes ClusterIP 10.96.0.1 <nessuno> 443/TCP 63m
$ minikube stop
$ minikube start --insecure-registry 10.96.0.1/24
Modifica della versione di Kubernetes
Minikube utilizza l’ultima versione di Kubernetes disponibile per impostazione predefinita. Per passare a una versione specifica, abilita --kubernetes-version
il flag all’avvio del cluster:
$ minikube start --kubernetes-version=v1.23.0
Puoi eseguire più cluster contemporaneamente, ciascuno con versioni diverse di Kubernetes, creando più profili separati. Il flag --profile
seleziona il profilo di destinazione per un particolare comando.
$ minikube start --profile v1.22 --kubernetes-version=v1.22.0
$ minikube start --profile v1.23 --kubernetes-version=v1.23.0
$ minikube --profile v1.22 kubectl get pods
Utilizzo di più nodi
Minikube supporta più nodi virtuali. Ciò ti consente di testare il modo in cui la tua applicazione si ridimensiona tra i nodi disponibili senza distribuire nuovo hardware fisico.
Questo esempio crea un cluster con tre nodi:
$ minikube start --nodes 3
Puoi verificare che più nodi siano disponibili elencandoli con Kubectl:
$ kubectl get nodes
NOME STATO RUOLI ETÀ VERSIONE
minikube Ready control-plane,master 71m v1.23.3
minikube-m02 Ready <none> 71m v1.23.3
minikube-m03 Ready <none> 71m v1.23.3
Abilita l’accesso remoto
Minikube non accetta il traffico in entrata per impostazione predefinita. È destinato all’uso locale e non è progettato per soddisfare richieste esterne. Puoi comunque abilitare l’accesso remoto ai carichi di lavoro nel tuo cluster modificando l’indirizzo di ascolto del piano di controllo. Fallo solo dopo una valutazione completa del rischio: la tua rete sarà aperta al mondo esterno.
$ minikube start --listen-address=0.0.0.0
Il port forwarding è una soluzione più sicura quando è necessario aprire l’accesso a un servizio specifico. Usa il comando Kubectl port-forward
per creare un percorso da una porta host a uno dei tuoi servizi:
$ kubectl port-forward service/nginx 8080:80
Ora puoi visitare localhost:8080
per accedere al servizio NGINX creato in precedenza in questo tutorial. La porta 8080 sull’host è mappata sulla porta 80 del servizio.
Eliminazione di un minicubo
Uno dei vantaggi di Minikube è che è facile da disinstallare. Se decidi che Minikube non fa per te, esegui delete
il comando per rimuovere tutto ciò che ha aggiunto al tuo sistema:
$ minikube delete
Un’opzione meno distruttiva consiste minikube stop
nell’arrestare il cluster, ma lasciare inalterate tutte le risorse. Puoi riavviare il tuo cluster con il minikube start
comando.
Conclusione
Minikube è una distribuzione Kubernetes autonoma che utilizza i container o la virtualizzazione per eseguire un cluster sulla tua macchina locale. È gestito dal progetto Kubernetes a monte. Minikube è un’implementazione completa di Kubernetes che include dashboard Kubernetes, supporto di rete, storage persistente e runtime di container intercambiabili.
Puoi saperne di più su Minikube nella documentazione ufficiale . In alternativa, inizia a utilizzare i comandi Kubectl familiari per gestire il tuo cluster e distribuire nuovi carichi di lavoro. Ora hai un ambiente Kubernetes locale completamente funzionante per creare e testare le tue applicazioni.
Lascia un commento