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

Container haben große Teile der IT und vor allem die Software-Ent­wick­lung auf­ge­mischt und verändert. An­wen­dun­gen können mit ihnen in einer speziell aus­ge­leg­ten vir­tu­el­len Umgebung un­ab­hän­gig und ne­ben­ein­an­der laufen. Für die Or­ches­trie­rung der Container und ihre Abläufe braucht es Tools wie Ku­ber­netes.

Dies Ver­wal­tungs­tool etabliert sich gerade als Allround-Lösung, weil es nicht nur An­wen­dun­gen, Dienste und Res­sour­cen verwaltet sowie ihre Ab­hän­gig­keit kon­fi­gu­riert und vernetzt, es or­ga­ni­siert auch die vor­han­de­ne In­fra­struk­tur aus virtuelle Maschinen. Zeit­gleich bietet Ku­ber­netes Kon­troll­pro­zes­se, die die Ge­sund­heit der im Cluster ver­füg­ba­ren Nodes, Pods und Container über­wa­chen.

Minikube ist eine ab­ge­speck­te Ku­ber­netes-Dis­tri­bu­ti­on, die bei minimalen Aufwand die maximale Funk­ti­ons­leis­tung von Ku­ber­netes er­mög­licht. Das ist nicht nur für Container-Ein­stei­ger in­ter­es­sant, sondern ins­be­son­de­re auch in der Edge- und IoT-Welt. Was Ku­ber­netes Minikube genau ist, wofür das Tool ein­ge­setzt wird und wie Minikube auf große In­fra­struk­tu­ren ver­zich­ten kann, erklärt dieser Artikel.

Managed Ku­ber­netes
Ku­ber­netes als Managed Service von IONOS Cloud

Die ideale Plattform für per­for­man­te und hoch­ska­lier­ba­re Container-An­wen­dun­gen. Umfassend ins IONOS Cloud Ökosystem in­te­griert und rund um die Uhr pro­fes­sio­nell betreut.

Minikube: Das con­tai­ner­ba­sier­te Mi­ni­mal­prin­zip

Minikube ist die Lösung für kleine con­tai­ner­ba­sier­te Projekte. Wer zum Beispiel privat ein Ku­ber­netes-Cluster aufsetzen will, muss nicht mehr direkt mit einem ganzen Server oder einer Cloud arbeiten. Ku­ber­netes Minikube ver­zich­tet auf große In­fra­struk­tu­ren und kann ganz einfach lokale Cluster aufsetzen.

Ein Rechner, ein Cluster mit nur einem Kno­ten­punkt – das ist der Raum, den Minikube braucht. Die Mi­ni­mal­an­for­de­rung richtet sich primär an kleine private Projekte von Software-Ent­wick­lern, die dank Minikube un­kom­pli­ziert deployen können. Server oder Cloud werden nicht benötigt, der Ku­ber­netes-Cluster läuft ganz einfach über den Localhost. Minikube arbeitet stan­dard­mä­ßig mit einer Vir­tu­al­Box als VM-Laufzeit, damit ist auch gleich­zei­tig ein Einsatz über Linux hinaus auf Windows oder macOS möglich. Wer al­ler­dings lieber ohne Vir­tu­al­Box arbeiten möchten, kann Ku­ber­netes Minikube auch so erweitern, dass es sich abseits der Vir­tua­li­sie­rungs­soft­ware verwenden lässt.

Funk­tio­nen von Ku­ber­netes Minikube

Die Ein­fach­heit von Minikube macht sich auch in den Funk­tio­nen bemerkbar. Das Tool un­ter­stützt folgende Ku­ber­netes-Funk­tio­nen:

Wer bereits vertraut mit der Funk­ti­ons­viel­falt von Ku­ber­netes ist, für den klingt das Setup von Minikube sehr ein­ge­schränkt. Al­ler­dings ist alles durch Features er­wei­ter­bar. Wie etwa durch den Minikube-Tunnel, der wie ein Load­Ba­lan­cer funk­tio­niert, durch rol­len­ba­sier­te Zu­griffs­kon­trol­le, Da­sh­boards, Multi-Cluster und viele weitere Ku­ber­netes-Standards. Weit darüber hinaus bietet ein Store jede Menge Add-ons, wie GPU-Support für eine au­to­ma­ti­sche Feh­ler­ana­ly­se oder die Aus­rich­tung im Bereich des Machine Learnings.

Ku­ber­netes Minikube wird genau wie der große Bruder erst durch die Community lebendig. In hoher Schlag­zahl er­schei­nen neue Con­tri­bu­ter, die das Tool weiter und weiter vor­an­trei­ben. Und sobald Ku­ber­netes ein Update bekommt, stellt sich auch Minikube auf die aktuelle Version um. So gibt es zum Beispiel mitt­ler­wei­le einen Lö­sungs­ka­ta­log, den User einfach befragen können, wenn es um bereits bekannte Probleme geht.

Wie funk­tio­niert Minikube?

Selten war ein Name für ein IT-Tool passender als bei Minikube. Die zahl­rei­chen Mög­lich­kei­ten von Ku­ber­netes werden hier so minimiert, dass sie auf einen Laptop bzw. PC, passen. Und dennoch bleibt die grund­sätz­li­che Funk­tio­na­li­tät ge­währ­leis­tet. Mit nur wenigen In­stal­la­ti­ons­be­feh­len wird aus Minikube ein voll funk­ti­ons­fä­hi­ger Ku­ber­netes-Cluster, der nicht nur als Übungs­platz, sondern auch für all­täg­li­che Ent­wick­lungs­auf­ga­ben ein­ge­setzt werden kann.

Ku­ber­netes Minikube kann mit ver­schie­de­nen Hy­per­vi­so­ren als VM-Laufzeit arbeiten. Ist ein Hy­per­vi­sor (wie zum Beispiel die bereits erwähnte Vir­tu­al­Box) auf dem System in­stal­liert, setzt Minikube au­to­ma­tisch die virtuelle Maschine auf. Um dem Ku­ber­netes-Cluster An­wei­sun­gen zu geben, braucht man jetzt nur noch die Standard-Kom­man­do­zei­le kubectl.

Sind alle Kom­po­nen­ten in­stal­liert, kann Minikube gestartet werden. Der vir­tu­el­len Maschine werden per Default 1GB Speicher zu­ge­wie­sen und schon ist ein Ku­ber­netes-Cluster ge­schaf­fen, der nun über kubectl kon­fi­gu­riert werden kann. Eine erste Amts­hand­lung könnte es zum Beispiel sein, den Speicher nach Bedarf an­zu­pas­sen.

Wer bereits mit Con­tai­nern arbeitet, bewegt sich jetzt auf ver­trau­tem Boden. Mit Hilfe von Name­spaces werden die phy­si­schen Cluster in mehrere Bereiche un­ter­teilt. Für einen besseren Überblick über die Res­sour­cen können eigene Name­spaces über kubectl kreiert werden. Die Funk­tio­nen von Minikube sind damit durch den Einsatz von Add-ons genauso viel­fäl­tig wie bei jedem anderen Con­tai­ner­sys­tem.

Die Ein­satz­ge­bie­te von Ku­ber­netes Minikube

Die wich­tigs­te An­wen­dungs­mög­lich­keit für Minikube ist es, prak­ti­sche Er­fah­run­gen mit Ku­ber­netes zu sammeln. Nicht immer stehen gewaltige Cluster zur freien Verfügung. Minikube bietet die schnelle Mög­lich­keit, zu ex­pe­ri­men­tie­ren oder An­wen­dun­gen zu testen. Ku­ber­netes selbst bietet ein aus­führ­li­ches Tutorial für die Ver­wen­dung von Minikube, sodass am Anfang keine Erfahrung er­for­der­lich ist. Aber auch für alle, die mit Ku­ber­netes bereits vertraut sind, bietet Minikube Lern­erfol­ge, da hier fort­lau­fend ex­pe­ri­men­tiert werden kann.

Minikube ist ein Testfeld für alle Ku­ber­netes-Funk­tio­nen. Beide Tools sind Open Source unter der Apache 2.0 Lizenz. Es lassen sich Cluster und ihre Add-ons eva­lu­ie­ren, ak­ti­vie­ren, de­ak­ti­vie­ren und effektiv un­ter­stüt­zen. Letztere lassen sich durch ein einfaches Trial-and-Error wei­ter­ent­wi­ckeln, was zu einem noch breiteren Ku­ber­netes-Ökosystem führt.

Es ist eine Sache, einfach ex­pe­ri­men­tie­ren zu können. Aber Minikube ist nicht nur für kleine private Software-Projekte ver­wend­bar, sondern kann auch für externe Tech­no­lo­gien ein­ge­setzt werden – unter anderem als ex­pe­ri­men­tel­ler Support für NVIDIA-GPUs. Dadurch ist das Tool auch für Ent­wick­ler von ma­schi­nel­len Lern­al­go­rith­men bis hin zu Vi­deo­spie­len nützlich.

Minikube richtet sich zudem auch an IT-Füh­rungs­kräf­te. CIOs haben nor­ma­ler­wei­se keine Zeit, um neue Tools zu ent­wi­ckeln, aus­zu­pro­bie­ren oder zu erlernen. Das Tempo, mit denen sich IT-Werkzeuge verändern, erfordert aber genau das. Für das Ver­traut­ma­chen in Ku­ber­netes gibt es keinen ein­fa­che­ren Weg, als sich mit Minikube auf den neuesten Stand zu bringen. So gibt es ein Minikube-Feature für das Ku­ber­netes-Dashboard, das einen sehr de­tail­lier­ten Einblick über das Verhalten der Anwendung auf dem Cluster mitsamt Nut­zungs­me­tri­ken bietet. Außerdem ist Minikube einfach das perfekte Tool für eine Prä­sen­ta­ti­on bzw. für eine An­wen­dungs­de­mons­tra­ti­on von Ku­ber­netes, die lokal aus­ge­führt werden kann.

Ein kleiner Einstieg in die große Welt von Minikube

Alles, was für die In­stal­la­ti­on von Minikube gebraucht wird, ist ein Con­tai­ner­sys­tem (wie z. B. Docker) oder eine Umgebung mit einer vir­tu­el­len Maschine sowie Ku­ber­netes. In der of­fi­zi­el­len Ku­ber­netes-Do­ku­men­ta­ti­on ist die Anleitung zur In­stal­la­ti­on von Minikube bereits enthalten. Man benötigt nur die native Be­fehls­zei­len­schnitt­stel­le kubectl, danach ist das Minitool nur noch einen Befehl entfernt:

minikube start

Die An­for­de­run­gen an den lokalen Rechner/Laptop sind er­war­tungs­ge­mäß über­schau­bar:

  • 2 CPUs oder mehr
  • 2 GB freier Speicher
  • 20 GB freier Fest­plat­ten­spei­cher
  • Internet-Ver­bin­dung
  • Ein Con­tai­ner­ma­nage­ment­sys­tem oder eine virtuelle Maschine

Sobald kubectl in­stal­liert ist, kann der neue Cluster auf­ge­ru­fen werden:

kubectl get po -A

Minikube bündelt das Ku­ber­netes-Dashboard und er­mög­licht so einen leichten Einstieg in die neue Umgebung.

minikube dashboard

Jetzt kann es direkt mit den Deploy-An­wen­dun­gen losgehen. Ein De­ploy­ment-Sample wird mit folgendem Befehl erstellt und auf Port 8080 be­reit­ge­stellt:

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 vor­ge­fer­tig­te Image echo­ser­ver. Prin­zi­pi­ell können Sie an dieser Stelle auch ein anderes bzw. eigenes Image verwenden.

Es kann einen Moment dauern, doch dann lässt sich das De­ploy­ment unter folgendem Befehl abrufen:

kubectl get services hello-minikube

Der ein­fachs­te Weg, auf diesen Dienst zu­zu­grei­fen, ist, sich von Minikube einen Web­brow­ser starten zu lassen:

minikube service hello-minikube

Al­ter­na­tiv kann aber auch kubectl verwendet werden, um auf den Port wei­ter­zu­lei­ten:

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

Ab­schlie­ßend folgen noch einige all­ge­mei­ne Ver­wal­tungs­be­feh­le für die Cluster.

Befehl für ein Pausieren von Ku­ber­netes, ohne die be­reit­ge­stell­ten An­wen­dun­gen zu be­ein­träch­ti­gen:

minikube pause

Für das Stoppen des Clusters:

minikube stop

Für das Erhöhen der Standard-Spei­cher­gren­ze (erfordert einen Neustart):

minikube config set memory 16384

Für die Suche nach Ku­ber­netes-Diensten:

minikube addons list

Für die Er­stel­lung eines zweiten Clusters mit einer älteren Ku­ber­netes-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 Ku­ber­netes, den großen Bruder von Minikube, lernen? In unserem großen Ku­ber­netes-Tutorial finden Sie viele prak­ti­sche In­for­ma­tio­nen zu dem Thema.

Zum Hauptmenü