Ku­ber­netes (auch K8s genannt) er­mög­licht eine ef­fi­zi­en­te Ver­wal­tung großer Con­tai­ner­men­gen und au­to­ma­ti­siert viele Prozesse in der Soft­ware­ent­wick­lung. Mit nur wenigen Schritten lässt sich ein leis­tungs­fä­hi­ger Ku­ber­netes-Cluster in­stal­lie­ren und direkt produktiv nutzen.

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.

Schritt 1: System vor­be­rei­ten

Wir zeigen in diesem Tutorial ex­em­pla­risch die Ku­ber­netes-In­stal­la­ti­on unter Ubuntu.

Im ersten Schritt müssen wir das System vor­be­rei­ten, indem wir es auf den neuesten Stand bringen und alle not­wen­di­gen Ab­hän­gig­kei­ten in­stal­lie­ren. Öffnen Sie hierzu das Terminal und führen Sie zunächst ein System-Update durch, um si­cher­zu­stel­len, dass alle Pakete aktuell sind:

sudo apt update && sudo apt upgrade -y
bash

An­schlie­ßend in­stal­lie­ren Sie die wich­tigs­ten Hilfs­pro­gram­me, die für die In­stal­la­ti­on von Ku­ber­netes und Minikube benötigt werden. Hierzu können Sie folgenden Befehl nutzen:

sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release
bash

Diese Tools sorgen dafür, dass Sie externe Quellen sicher nutzen und weitere Soft­ware­pa­ke­te pro­blem­los her­un­ter­la­den und in­stal­lie­ren können.

Schritt 2: kubectl in­stal­lie­ren

Ku­ber­netes arbeitet mit ver­schie­de­nen Servern: dem Master und ver­schie­de­nen Nodes. Diese müssen nicht zwingend auf un­ter­schied­li­chen phy­si­schen Servern liegen. Virtuelle Maschinen lassen es zu, dass Sie auch auf einem einzelnen Computer mehrere Ku­ber­netes-Kno­ten­punk­te ak­ti­vie­ren können. Gerade für Test­zwe­cke hat sich das kos­ten­lo­se Programm Minikube bewährt. Es er­mög­licht, auch lokal mit Ku­ber­netes zu arbeiten. Da Minikube eine virtuelle Maschine oder Docker benötigt, ist das Programm auf einen Hy­per­vi­sor oder die Container-Software an­ge­wie­sen. Außerdem ist das Tool kubectl notwendig.

Hinweis

In diesem Tutorial zeigen wir Ihnen den Ku­ber­netes-Einstieg mithilfe von Docker. Sie können dasselbe aber auch mit einer Vir­tua­li­sie­rungs­soft­ware wie Vir­tu­al­Box durch­füh­ren.

Zunächst in­stal­lie­ren Sie daher kubectl (Kube Control) auf Ihrem System. Dieses Programm benötigen Sie, um Cluster zu verwalten.

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
bash
Hinweis

Die In­stal­la­ti­ons­be­feh­le hängen von Ihrer Sys­tem­ar­chi­tek­tur ab.

Schritt 3: Docker in­stal­lie­ren

Bevor Sie Minikube verwenden können, müssen Sie si­cher­stel­len, dass Docker auf Ihrem System in­stal­liert ist. Docker dient dabei als Container-Runtime und er­mög­licht es Minikube, Ku­ber­netes-Cluster ohne Vir­tua­li­sie­rungs­soft­ware zu betreiben. In­stal­lie­ren Sie Docker mit folgendem Befehl:

sudo apt install -y docker.io
bash

Um Docker ohne Root-Rechte nutzen zu können, fügen Sie Ihr Be­nut­zer­kon­to der Docker-Gruppe hinzu:

sudo usermod -aG docker $USER
newgrp docker
bash

Eventuell müssen Sie sich ab- und wieder anmelden, damit die Grup­pen­zu­ge­hö­rig­keit aktiv wird. Testen Sie die In­stal­la­ti­on ab­schlie­ßend mit:

docker run hello-world
bash

Wenn eine kurze Er­folgs­mel­dung erscheint, ist Docker korrekt in­stal­liert und ein­satz­be­reit für Minikube.

Schritt 4: Minikube in­stal­lie­ren und starten

In einem nächsten Schritt in­stal­lie­ren Sie Minikube direkt in einer kom­pa­ti­blen Version und nutzen Docker dabei als Treiber. Laden Sie zunächst die passende Version von Minikube herunter, machen Sie die Datei aus­führ­bar und ver­schie­ben Sie sie in ein Sys­tem­ver­zeich­nis, sodass der Befehl global verfügbar ist:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
chmod +x minikube-linux-arm64
sudo mv minikube-linux-arm64 /usr/local/bin/minikube
bash

Nach der In­stal­la­ti­on können Sie mit dem folgenden Befehl über­prü­fen, ob Minikube korrekt ein­ge­rich­tet wurde:

minikube version
bash

An­schlie­ßend starten Sie Minikube mit dem folgenden Kommando:

minikube start --driver=docker
bash

Minikube nutzt in diesem Szenario Docker als Container-Runtime und erstellt den Ku­ber­netes-Cluster direkt innerhalb der Docker-Umgebung. Beim Starten von Minikube sollte kubectl au­to­ma­tisch korrekt kon­fi­gu­riert werden. Um von der Kom­man­do­zei­le in ein GUI zu wechseln, geben Sie einen weiteren Befehl ein. Dieser öffnet das Dashboard im Stan­dard­brow­ser.

minikube dashboard
bash
Bild: Kubernetes-Dashboard
Leeres Ku­ber­netes-Dashboard

Schritt 5: Ku­ber­netes nutzen

Wenn Sie Minikube gestartet haben, hat das Programm au­to­ma­tisch einen Cluster mit einem einzelnen Node erstellt. Dies können Sie mit einer Anfrage an kubectl über­prü­fen:

kubectl get nodes
bash

Über das Dashboard können Sie nun De­ploy­ments erstellen. Klicken Sie auf den Create-Knopf (das Plus oben rechts), gelangen Sie zu einem web­ba­sier­ten Editor. Im JSON- oder YAML-Format können Sie dort ein De­ploy­ment erstellen. Haben Sie dies erledigt, generiert Ku­ber­netes au­to­ma­tisch mehrere Pods. Anpassen können Sie die ge­wünsch­te Anzahl, indem Sie das De­ploy­ment skalieren. Die ent­spre­chen­de Funktion finden Sie nach einem Klick auf den Button mit drei Punkten neben dem De­ploy­ment.

Bild: Kubernetes-Dashboard mit einem Deployment und drei Pods
Ku­ber­netes: De­ploy­ment und Pods im Dashboard
Bild: Skalierung eines Deployments in Kubernetes
Ku­ber­netes: Skalieren Ihres De­ploy­ments

Al­ter­na­tiv können Sie De­ploy­ments auch über das Terminal erzeugen. Hierfür müssen die Inhalte al­ler­dings bereits in einem Docker-Image in­te­griert sein, das man in einem Re­po­si­to­ry abgelegt hat.

kubectl create deployment --image=[Pfad zum Image]
bash

Über Kom­man­do­zei­len­be­feh­le lassen sich zahl­rei­che In­for­ma­tio­nen beziehen.

Welche De­ploy­ments gibt es?

kubectl get deployments
bash

Wie viele Pods gibt es?

kubectl get pods
bash

Welche Services gibt es?

kubectl get services
bash

Welche Nodes sind aktiv?

kubectl get nodes
bash
Bild: Terminal mit verschiedenen Kubernetes-Befehlen und -Outputs
Ku­ber­netes-Befehle im Terminal

Schritt 6: De­ploy­ment ver­öf­fent­li­chen

Bisher haben Sie Ihr De­ploy­ment zwar gestartet, aber noch nicht ver­öf­fent­licht. Eine Ver­öf­fent­li­chung ver­an­lasst man, indem man einen Service erstellt:

kubectl expose deploy test-deployment
bash

Auf diese Weise hat man den Service aber nur innerhalb des Clusters ver­öf­fent­licht. Um auch von außerhalb des Clusters auf das De­ploy­ment zugreifen zu können, fügt man zu­sätz­li­che Flags ein:

kubectl expose deploy test-deployment --type=LoadBalancer --port=8080
bash

Mit Minikube kann man den Service dann starten:

minikube service test-deployment
bash

Wer den Service wieder löschen möchte, findet auch dafür den richtigen Befehl:

kubectl delete service test-deployment
bash

Auch das De­ploy­ment kann wieder gelöscht werden:

kubectl delete deployment test-deployment
bash

Um Minikube schließ­lich zu beenden, stoppt man den Prozess:

minikube stop
bash

Wer gar nicht mehr mit der VM oder der Container-Runtime arbeiten möchte, der kann diese auch löschen.

minikube delete
bash

Im Anschluss sind auch die vor­ge­nom­me­nen Ein­stel­lun­gen und er­stell­ten De­ploy­ments und Pods entfernt. Startet man Minikube erneut, arbeitet man wieder mit einem leeren Cluster.

Zum Hauptmenü