Utilizzo di Kubernetes per lo sviluppo locale – Minikube

Questo post sul blog introduce l’uso di Kubernetes in modalità di sviluppo ed è ispirato a uno screencast che puoi trovare nel corso Painless Docker.

Minikube è uno strumento che semplifica la vita degli sviluppatori consentendo loro di utilizzare ed eseguire un cluster Kubernetes in un computer locale.

In questo post del blog, per gli esempi che ho testato, sto usando Linux Mint 18, ma non cambia nulla a parte la parte dell’installazione.

  cat / etc / lsb-release 
  DISTRIB_ID = LinuxMint 
DISTRIB_RELEASE = 18.1
DISTRIB_CODENAME = serena
DISTRIB_DESCRIPTION = "Linux Mint 18.1 Serena"

Prerequisiti

Per lavorare con Minikube, dovremmo avere Kubectl e Minikube installati + alcuni driver di virtualizzazione.

  • Per OS X, installare il driver xhyve, VirtualBox o VMware Fusion, quindi Kubectl e Minikube
 curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl webserver-2022867364-r5zzl 
  chmod + x ./kubectl 
 sudo mv ./kubectl /usr/local/bin/kubectl 
  curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.21.0/minikube-darwin-amd64 && chmod + x minikube && sudo mv minikube / usr / local / bin / 
  • Per Windows, installa VirtualBox o Hyper-V, quindi Kubectl e Minikube
 curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.7.0/bin/windows/amd64/kubectl.exe 

Aggiungi il binario al tuo PERCORSO (Questo articolo spiega come modificare il PERCORSO)

Scarica il file minikube-windows-amd64.exe , rinominalo in minikube.exe e aggiungilo al tuo percorso.

Trova l’ultima versione qui.

  • Per Linux, installa VirtualBox o KVM, quindi Kubectl e Minikube
 curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl 
  chmod + x ./kubectl 
 sudo mv ./kubectl /usr/local/bin/kubectl 
  curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.21.0/minikube-linux-amd64 && chmod + x minikube && sudo mv minikube / usr / local / bin / 

Utilizzando Minikube

Iniziamo creando un’immagine da questo Dockerfile:

  DA busybox 
ADD index.html /www/index.html
ESPOSI 8000
CMD httpd -p 8000 -h / www; tail -f / dev / null

Aggiungi qualcosa che vorresti vedere nella pagina index.html.

Costruisci l’immagine:

  docker build -t eon01 / hello-world-web-server. 

Eseguiamo il contenitore per testarlo:

  docker run -d --name webserver -p 8000: 8000 eon01 / hello-world-web-server 

Questo è l’output di docker ps:

  docker ps 

NOME DEI PORTI DI STATO CREATI SUL COMANDO IMMAGINE ID CONTENITORE
2ad8d688d812 eon01 / hello-world-web-server "/ bin / sh -c 'httpd ..." 3 secondi fa Fino a 2 secondi 0.0.0.0:8000->8000/tcp webserver

Commettiamo l’immagine e caricala sull’hub Docker pubblico. Puoi usare il tuo registro privato:

  docker commit server web 
docker push eon01 / ciao-mondo-web-server

Rimuovere il contenitore poiché lo useremo con Minikube

  docker rm -f server web 

È ora di avviare Minikube:

  inizio minikube 

Controlla lo stato:

  stato minikube 

Stiamo eseguendo un singolo nodo:

  kubectl get node 

Esegui il server web:

  kubectl run webserver --image = eon01 / hello-world-web-server --port = 8000 

Un server web dovrebbe avere la porta esposta:

  kubectl esporre il server web di distribuzione --type = NodePort 

Per ottenere l’URL del servizio digitare:

  minikube service webserver --url 

Possiamo vedere il contenuto della pagina Web usando:

 curl $(minikube service webserver --url) 

Per mostrare un riepilogo dell’esecuzione del cluster in esecuzione:

  kubectl cluster-info 

Per ulteriori dettagli:

  dump informazioni cluster kubectl 

Possiamo anche elencare i pod usando:

  kubectl get pods 

E per accedere alla dashboard utilizzare:

  cruscotto minikube 

Se desideri accedere al frontend del tipo di applicazione Web:

  proxy kubectl 

Se vogliamo eseguire un comando all’interno del contenitore, ottieni l’id pod usando:

  kubetctl get pods 

Quindi usalo come:

  kubectl exec webserver-2022867364-0v1p9 -it - / bin / sh 

Per finire, eliminare tutte le distribuzioni:

  kubectl elimina le distribuzioni --tutti 

Elimina tutti i pod:

  kubectl delete pods --all 

E ferma Minikube

  minikube stop 

Spero che questa introduzione ti sia piaciuta.

Connect Deeper

Se hai ascoltato questo articolo, puoi trovare contenuti più interessanti nel corso di Painless Docker.

Puoi anche seguire il mio corso gratuito, 10 ottimi consigli per imparare Docker.

Noi, Eralabs, saremo felici di aiutarvi nei vostri progetti Docker e Cloud Computing, contattateci e saremo felici di conoscere i vostri progetti.

Abbonati a DevOpsLinks (una community online di migliaia di esperti IT e appassionati di DevOps da tutto il mondo) e se sei interessato a ricevere solo notizie ed esercitazioni su Kubernetes, puoi iscriverti a Kaptain (A #Kubernetes Community Hub, Hand Curated Newsletter , Chat di gruppo, formazione e altro).

Potresti anche essere interessato a iscriverti alla nostra newsletter Spedito, una newsletter incentrata su container, orchestrazione e tecnologie serverless.

Puoi trovarmi su Twitter, Clarity o sul mio sito Web e puoi anche controllare i miei libri: SaltStack For DevOps.

Non dimenticare di unirti al mio ultimo progetto Jobs For DevOps!

Se ti è piaciuto questo post, ti preghiamo di consigliarlo e condividerlo con i tuoi follower.