Come eseguire un cluster Kubernetes locale con Minikube?

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 startcomando:

$ 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à minikubeun contesto al tuo file KUBECONFIGche ha come target il tuo cluster Minikube.

Minikube include anche una versione in bundle di Kubectl a cui puoi accedere con un minikube kubectlcomando. 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 kubectlcomando 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 minikubeogni 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 servicefornisce 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 --urlflag) per visualizzare il tuo servizio.

Accesso al pannello di controllo di Kubernetes

Minikube fornisce il dashboard Kubernetes come funzionalità integrata opzionale. Eseguire minikube dashboardil 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 dashboardil 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 ipdal 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-registriescasella all’interno del tuo /etc/docker/daemon.jsonfile per fare in modo che Docker consenta l’accesso HTTP.

Sostituisci l’indirizzo IP con quello specificato nel minikube ipcomando. Riavvia Docker con il systemctl restart dockercomando.

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-registryil 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 servicese guardando il CLUSTER-IPservizio 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-versionil 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 --profileseleziona 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-forwardper creare un percorso da una porta host a uno dei tuoi servizi:

$ kubectl port-forward service/nginx 8080:80

Ora puoi visitare localhost:8080per 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 deleteil comando per rimuovere tutto ciò che ha aggiunto al tuo sistema:

$ minikube delete

Un’opzione meno distruttiva consiste minikube stopnell’arrestare il cluster, ma lasciare inalterate tutte le risorse. Puoi riavviare il tuo cluster con il minikube startcomando.

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

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *