Minikube: Maximaler Kubernetes-Umfang bei minimalem Aufwand

Warum einfach, wenn es noch einfacher geht? Diesem Motto folgt das Tool Minikube, mit dem sich Kubernetes lokal am eigenen Rechner ausführen lässt.

Container haben große Teile der IT und vor allem die Software-Entwicklung aufgemischt und verändert. Anwendungen können mit ihnen in einer speziell ausgelegten virtuellen Umgebung unabhängig und nebeneinander laufen. Für die Orchestrierung der Container und ihre Abläufe braucht es Tools wie Kubernetes.

Dies Verwaltungstool etabliert sich gerade als Allround-Lösung, weil es nicht nur Anwendungen, Dienste und Ressourcen verwaltet sowie ihre Abhängigkeit konfiguriert und vernetzt, es organisiert auch die vorhandene Infrastruktur aus virtuelle Maschinen. Zeitgleich bietet Kubernetes Kontrollprozesse, die die Gesundheit der im Cluster verfügbaren Nodes, Pods und Container überwachen.

Minikube ist eine abgespeckte Kubernetes-Distribution, die bei minimalen Aufwand die maximale Funktionsleistung von Kubernetes ermöglicht. Das ist nicht nur für Container-Einsteiger interessant, sondern insbesondere auch in der Edge- und IoT-Welt. Was Kubernetes Minikube genau ist, wofür das Tool eingesetzt wird und wie Minikube auf große Infrastrukturen verzichten kann, erklärt dieser Artikel.

Managed Kubernetes von IONOS

Der einfache Weg zur Verwaltung von Container-Workloads. Vollautomatisiertes Setup von Kubernetes Clustern und maximale Transparenz und Kontrolle der K8s Cluster.

Persistent Storage
K8s 24/7 voll supportet
Automatisiertes Cluster Setup

Minikube: Das containerbasierte Minimalprinzip

Minikube ist die Lösung für kleine containerbasierte Projekte. Wer zum Beispiel privat ein Kubernetes-Cluster aufsetzen will, muss nicht mehr direkt mit einem ganzen Server oder einer Cloud arbeiten. Kubernetes Minikube verzichtet auf große Infrastrukturen und kann ganz einfach lokale Cluster aufsetzen.

Ein Rechner, ein Cluster mit nur einem Knotenpunkt – das ist der Raum, den Minikube braucht. Die Minimalanforderung richtet sich primär an kleine private Projekte von Software-Entwicklern, die dank Minikube unkompliziert deployen können. Server oder Cloud werden nicht benötigt, der Kubernetes-Cluster läuft ganz einfach über den Localhost. Minikube arbeitet standardmäßig mit einer VirtualBox als VM-Laufzeit, damit ist auch gleichzeitig ein Einsatz über Linux hinaus auf Windows oder macOS möglich. Wer allerdings lieber ohne VirtualBox arbeiten möchten, kann Kubernetes Minikube auch so erweitern, dass es sich abseits der Virtualisierungssoftware verwenden lässt.

Funktionen von Kubernetes Minikube

Die Einfachheit von Minikube macht sich auch in den Funktionen bemerkbar. Das Tool unterstützt folgende Kubernetes-Funktionen:

  • DNS
  • NodePorts
  • ConfigMaps and Secrets
  • Dashboards
  • Container Laufzeitumgebungen: Docker oder Docker-Alternativen wie rkt, CRI-O und containerd
  • Unterstützung von CNI (Container Network Interface)
  • Ingress

Wer bereits vertraut mit der Funktionsvielfalt von Kubernetes ist, für den klingt das Setup von Minikube sehr eingeschränkt. Allerdings ist alles durch Features erweiterbar. Wie etwa durch den Minikube-Tunnel, der wie ein LoadBalancer funktioniert, durch rollenbasierte Zugriffskontrolle, Dashboards, Multi-Cluster und viele weitere Kubernetes-Standards. Weit darüber hinaus bietet ein Store jede Menge Add-ons, wie GPU-Support für eine automatische Fehleranalyse oder die Ausrichtung im Bereich des Machine Learnings.

Kubernetes Minikube wird genau wie der große Bruder erst durch die Community lebendig. In hoher Schlagzahl erscheinen neue Contributer, die das Tool weiter und weiter vorantreiben. Und sobald Kubernetes ein Update bekommt, stellt sich auch Minikube auf die aktuelle Version um. So gibt es zum Beispiel mittlerweile einen Lösungskatalog, den User einfach befragen können, wenn es um bereits bekannte Probleme geht.

Wie funktioniert Minikube?

Selten war ein Name für ein IT-Tool passender als bei Minikube. Die zahlreichen Möglichkeiten von Kubernetes werden hier so minimiert, dass sie auf einen Laptop bzw. PC, passen. Und dennoch bleibt die grundsätzliche Funktionalität gewährleistet. Mit nur wenigen Installationsbefehlen wird aus Minikube ein voll funktionsfähiger Kubernetes-Cluster, der nicht nur als Übungsplatz, sondern auch für alltägliche Entwicklungsaufgaben eingesetzt werden kann.

Kubernetes Minikube kann mit verschiedenen Hypervisoren als VM-Laufzeit arbeiten. Ist ein Hypervisor (wie zum Beispiel die bereits erwähnte VirtualBox) auf dem System installiert, setzt Minikube automatisch die virtuelle Maschine auf. Um dem Kubernetes-Cluster Anweisungen zu geben, braucht man jetzt nur noch die Standard-Kommandozeile kubectl.

Sind alle Komponenten installiert, kann Minikube gestartet werden. Der virtuellen Maschine werden per Default 1GB Speicher zugewiesen und schon ist ein Kubernetes-Cluster geschaffen, der nun über kubectl konfiguriert werden kann. Eine erste Amtshandlung könnte es zum Beispiel sein, den Speicher nach Bedarf anzupassen.

Wer bereits mit Containern arbeitet, bewegt sich jetzt auf vertrautem Boden. Mit Hilfe von Namespaces werden die physischen Cluster in mehrere Bereiche unterteilt. Für einen besseren Überblick über die Ressourcen können eigene Namespaces über kubectl kreiert werden. Die Funktionen von Minikube sind damit durch den Einsatz von Add-ons genauso vielfältig wie bei jedem anderen Containersystem.

Die Einsatzgebiete von Kubernetes Minikube

Die wichtigste Anwendungsmöglichkeit für Minikube ist es, praktische Erfahrungen mit Kubernetes zu sammeln. Nicht immer stehen gewaltige Cluster zur freien Verfügung. Minikube bietet die schnelle Möglichkeit, zu experimentieren oder Anwendungen zu testen. Kubernetes selbst bietet ein ausführliches Tutorial für die Verwendung von Minikube, sodass am Anfang keine Erfahrung erforderlich ist. Aber auch für alle, die mit Kubernetes bereits vertraut sind, bietet Minikube Lernerfolge, da hier fortlaufend experimentiert werden kann.

Minikube ist ein Testfeld für alle Kubernetes-Funktionen. Beide Tools sind Open Source unter der Apache 2.0 Lizenz. Es lassen sich Cluster und ihre Add-ons evaluieren, aktivieren, deaktivieren und effektiv unterstützen. Letztere lassen sich durch ein einfaches Trial-and-Error weiterentwickeln, was zu einem noch breiteren Kubernetes-Ökosystem führt.

Es ist eine Sache, einfach experimentieren zu können. Aber Minikube ist nicht nur für kleine private Software-Projekte verwendbar, sondern kann auch für externe Technologien eingesetzt werden – unter anderem als experimenteller Support für NVIDIA-GPUs. Dadurch ist das Tool auch für Entwickler von maschinellen Lernalgorithmen bis hin zu Videospielen nützlich.

Minikube richtet sich zudem auch an IT-Führungskräfte. CIOs haben normalerweise keine Zeit, um neue Tools zu entwickeln, auszuprobieren oder zu erlernen. Das Tempo, mit denen sich IT-Werkzeuge verändern, erfordert aber genau das. Für das Vertrautmachen in Kubernetes gibt es keinen einfacheren Weg, als sich mit Minikube auf den neuesten Stand zu bringen. So gibt es ein Minikube-Feature für das Kubernetes-Dashboard, das einen sehr detaillierten Einblick über das Verhalten der Anwendung auf dem Cluster mitsamt Nutzungsmetriken bietet. Außerdem ist Minikube einfach das perfekte Tool für eine Präsentation bzw. für eine Anwendungsdemonstration von Kubernetes, die lokal ausgeführt werden kann.

Ein kleiner Einstieg in die große Welt von Minikube

Alles, was für die Installation von Minikube gebraucht wird, ist ein Containersystem (wie z. B. Docker) oder eine Umgebung mit einer virtuellen Maschine sowie Kubernetes. In der offiziellen Kubernetes-Dokumentation ist die Anleitung zur Installation von Minikube bereits enthalten. Man benötigt nur die native Befehlszeilenschnittstelle kubectl, danach ist das Minitool nur noch einen Befehl entfernt:

minikube start

Die Anforderungen an den lokalen Rechner/Laptop sind erwartungsgemäß überschaubar:

  • 2 CPUs oder mehr
  • 2 GB freier Speicher
  • 20 GB freier Festplattenspeicher
  • Internet-Verbindung
  • Ein Containermanagementsystem oder eine virtuelle Maschine

Sobald kubectl installiert ist, kann der neue Cluster aufgerufen werden:

kubectl get po -A

Minikube bündelt das Kubernetes-Dashboard und ermöglicht so einen leichten Einstieg in die neue Umgebung.

minikube dashboard

Jetzt kann es direkt mit den Deploy-Anwendungen losgehen. Ein Deployment-Sample wird mit folgendem Befehl erstellt und auf Port 8080 bereitgestellt:

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
Hinweis

Durch diese Befehle verwenden Sie das vorgefertigte Image echoserver. Prinzipiell können Sie an dieser Stelle auch ein anderes bzw. eigenes Image verwenden.

Es kann einen Moment dauern, doch dann lässt sich das Deployment unter folgendem Befehl abrufen:

kubectl get services hello-minikube

Der einfachste Weg, auf diesen Dienst zuzugreifen, ist, sich von Minikube einen Webbrowser starten zu lassen:

minikube service hello-minikube

Alternativ kann aber auch kubectl verwendet werden, um auf den Port weiterzuleiten:

kubectl port-forward service/hello-minikube 7080:8080

Abschließend folgen noch einige allgemeine Verwaltungsbefehle für die Cluster.

Befehl für ein Pausieren von Kubernetes, ohne die bereitgestellten Anwendungen zu beeinträchtigen:

minikube pause

Für das Stoppen des Clusters:

minikube stop

Für das Erhöhen der Standard-Speichergrenze (erfordert einen Neustart):

minikube config set memory 16384

Für die Suche nach Kubernetes-Diensten:

minikube addons list

Für die Erstellung eines zweiten Clusters mit einer älteren Kubernetes-Version:

minikube start -p aged --kubernetes-version=v1.16.1

Für das Löschen aller Minikube-Cluster:

minikube delete --all
Tipp

Sie wollen mehr über Kubernetes, den großen Bruder von Minikube, lernen? In unserem großen Kubernetes-Tutorial finden Sie viele praktische Informationen zu dem Thema.