Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Knoten, Namespaces und Pods in Kubernetes

Nach dieser Lektion: Ich kann sagen, was ein Knoten, ein Namespace und ein Pod sind.

Lektion, 50 Min.9 BefehleKubernetes-Lab: ein k3s-Cluster mit einem Knoten für jede lernende Person auf einer privaten Ubuntu-VM

Wo läuft ein Programm in Kubernetes?

Kubernetes ist eine Software, die Programme auf einem oder mehreren Rechnern startet und am Laufen hält. Jede Ausgabe seines Befehls kubectl besteht aus drei Begriffen: Knoten, Namespace und Pod.

Stellen Sie sich das Rechenzentrum einer Stadtbibliothek vor. Der Ausleihkatalog, die Webseite und der Newsletter laufen dort nebeneinander. Kubernetes ordnet jedem Programm einen Rechner und einen Bereich zu.

Am Ende dieser Lektion

Notiz

Ich kann sagen, was ein Knoten, ein Namespace und ein Pod sind.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Clusteralle Rechner zusammen, auf denen Kubernetes Programme startet
Knotenein einzelner Rechner des Clustersnode
Namespaceein benannter Bereich, der die Dinge einer Gruppe von denen einer anderen trenntkube-system
Podeine laufende Kopie eines Programms
Containerein Programm, verpackt mit allem, was es zum Laufen braucht
kubectlder Befehl, mit dem Sie dem Cluster etwas sagen oder ihn fragen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Knoten ist ein Rechner des Clusters

Ein Cluster besteht aus einem oder mehreren Rechnern. Jeder Rechner heißt Knoten, auf Englisch node.

Ihr Lab ist ein Cluster mit genau einem Knoten. Ein großes Unternehmen hat Hunderte. Der Befehl kubectl get nodes listet sie auf, eine Zeile je Knoten.

Die Knoten des Clusters auflisten

Befehl
kubectl get nodes

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

So lesen Sie die Tabelle der Knoten

SpalteDas steht darin
NAMEDer Name des Rechners
STATUSReady heißt: Der Knoten nimmt Arbeit an
ROLEScontrol-plane heißt: Dieser Knoten steuert den Cluster
AGEWie lange der Knoten schon zum Cluster gehört
VERSIONDie Version von Kubernetes auf dem Knoten

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Namespace trennt die Dinge einer Gruppe

Auf einem Cluster arbeiten oft mehrere Teams. Ein Namespace gibt jedem Team einen eigenen Bereich mit eigenen Namen. Zwei Teams dürfen dann beide ein Programm „kasse“ nennen.

Kubernetes legt vier Namespaces selbst an. kube-system gehört Kubernetes, die anderen sind default, kube-public und kube-node-lease. Ohne weitere Angabe fragt kubectl immer im Namespace default.

Alle Namespaces auflisten

Befehl
kubectl get namespaces

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Pods im Namespace default auflisten

Befehl
kubectl get pods

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein Pod ist eine laufende Kopie eines Programms

Kubernetes startet kein Programm direkt, sondern einen Pod. Ein Pod enthält einen oder mehrere Container und läuft immer auf genau einem Knoten.

Die Befehle unten legen einen eigenen Namespace kurs1 an und starten darin einen Pod kasse. Er benutzt busybox, ein winziges Werkzeugpaket. Das Lab hat kein anderes Image, denn es erreicht keine Registry.

Den Namespace kurs1 anlegen

Befehl
kubectl create namespace kurs1

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Einen Pod namens kasse starten

Befehl
kubectl run kasse --image=busybox:1.37.0 -n kurs1 -- sleep 3600

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Pods im Namespace kurs1 auflisten

Befehl
kubectl get pods -n kurs1

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Namespace des Pods abfragen

Befehl
kubectl get pod kasse -n kurs1 -o jsonpath='{.metadata.namespace}'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Image des Pods abfragen

Befehl
kubectl get pod kasse -n kurs1 -o jsonpath='{.spec.containers[0].image}'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, kubectl get pods zeige alle Pods des Clusters. Der Befehl zeigt nur die Pods eines einzigen Namespaces, ohne Angabe also des Namespaces default. Fragen Sie mit -n name nach einem anderen Bereich oder mit -A nach allen. Der Befehl kubectl get pods -A listet auch die Pods von kube-system.

Den Namespace kurs1 wieder löschen

Befehl
kubectl delete namespace kurs1

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Weiterführend

Die Pods von kube-system laufen auch auf Ihrem Knoten. Finden Sie mit kubectl get pods -n kube-system heraus, wie viele es sind. Schreiben Sie auf, was die Namen vermuten lassen.

Fragen Sie dann mit kubectl get pods -A, ob irgendein Name zweimal vorkommt. Zwei Pods mit gleichem Namen in verschiedenen Namespaces sind erlaubt.

Über dieses Lab und seinen Quellcode: Kubernetes-Lab: ein k3s-Cluster mit einem Knoten für jede lernende Person auf einer privaten Ubuntu-VM

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.