Minikube


Was ist Minikube?

Minikube ist Open-Source und stellt als Single-Node einen lokalen Kubernetes-Cluster auf dem lokalen PC zur Verfügung. Auf dem lokalen Computer kann Windows, macOS oder Linux vorhanden sein. Für lokale Entwicklungen, Testen und das Erlernen von Kubernetes-basierten Anwendungen (Microservices) spielt Minikube eine interessante Rolle. Minikube ist kostenlos und frei herunterzuladen. Am sinnvollsten wird als Unterbau (Host) ein Linux-basiertes Betriebssystem genutzt.

 

Vorbedingungen – Folgende Dinge sollten vor der Installation vorhanden sein:

  • Linux-basierte Distribution (kein Muss, macht aber Vieles umfassend einfacher)
  • Docker ist installiert und der User, welcher minikube startet, muss sich in der Gruppe docker befinden.
  • Sinnvoll ist auch, kvm und libvirt installiert zu haben. Auch hier gilt, dass der Benutzer, welcher minikube nutzt, sich in der Gruppe libvirt und kvm befinden muss.

Hinweis: Die nachfolgenden Schritte/Befehle erfolgen in einem Konsolenterminal.

Installation Docker mit Ubuntu

tester@host:~$ sudo apt-get install docker.io

Installation kvm und libvirt mit Ubuntu

tester@host:~$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager

User tester den Gruppen docker, kvm und libvirt zuteilen

tester@host:~$ sudo adduser tester docker
tester@host:~$ sudo adduser tester kvm
tester@host:~$ sudo adduser tester libvirt

Danach muss der User tester sich nochmals am System abmelden, damit die neuen Userrechte auch angenommen werden.
Die Userrechte lassen sich kontrollieren mit:

tester@host:~$ id

Hier müssen nun docker, kvm und libvirt zusätzlich als Gruppe in der Auflistung erscheinen.

Minikube installieren

Die Installation wird in der Konsole ausgeführt:

tester@host:~$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
tester@host:~$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

kubectl installieren

Zusätzlich wird noch kubectl benötigt, um mit kubernetes in minikube zu interagieren. Die Installation erfolgt unter Ubuntu mit:

tester@host:~$ sudo snap install kubectl --classic

Nun sind alle Vorbedingungen erfüllt und minikube kann über die Konsole das erste Mal gestartet werden.

 

Interaktion mit Minikube

Nachdem die Vorbedingungen erfüllt sind, kann minikube genutzt werden.

Minikube starten

Wird minikube das erste Mal gestartet, wird ein Single-Node Cluster eingerichtet. Dieser Schritt kann eine gewisse Zeit in Anspruch nehmen, da aus dem Internet ein Image heruntergeladen wird. Der Start erfolgt unter einem „normalen“ Useraccount, welcher zuvor die notwendigen Rechte erhalten hat (siehe oben).

tester@host:~$ minikube start

Minikube Status abfragen

Wurde minikube erfolgreich gestartet, lässt sich dessen Status abfragen:

tester@host:~$ minikube status

Es erscheint dann bei erfolgreichem Betrieb folgende Info:

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

Minikube Dashboard starten

tester@host:~$ minikube dashboard &

Danach erscheint im lokalen Browser die GUI des Kubernetes-Clusters.

Minikube beenden

Der minikube-Cluster wird beendet mit:

tester@host:~$ minikube stop

Interaktion mit Kubernetes

Sobald minikube erfolgreich gestartet ist, können mit dem Befehl kubectl Anfragen an den Kubernetes Cluster gesendet werden.
In dem Beispiel befinden sich in dem Namespace nsnginx in dem pod 3 nginx-Werbserver

tester@host:~$ kubectl get pods -n nsnginx
NAME READY STATUS RESTARTS AGE
nginx-59f86b59ff-8dfsn 1/1 Running 2 (17h ago) 25h
nginx-59f86b59ff-8nhv2 1/1 Running 2 (17h ago) 25h
nginx-59f86b59ff-t67b5 1/1 Running 2 (17h ago) 25h
tester@host:~$

Weiterführende Infos zu minikube und Kubernetes sind im Internet zu finden.

Minikube Installation aktualisieren

Um eine vorhandene Minikube-Installation zu aktualisieren ohne die Konfiguration und die Pods zu verlieren, wird als Erstes überprüft, ob überhaupt eine neuere Version existiert:

tester@host:~$ minikube update-check 
CurrentVersion: v1.38.0
LatestVersion: v1.38.1
tester@host:~$

Es existiert eine neuere Version, somit stoppen wir den laufenden Minikube-Cluster:

tester@host:~$ minikube stop 
CurrentVersion: v1.38.0
LatestVersion: v1.38.1
tester@host:~$

Und führen nun folgenden Befehl aus:

tester@host:~$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
tester@host:~$

Danach starten wir dann den Minikube-Cluster wieder:

tester@host:~$ minikube start
tester@host:~$