Getty Images/iStockphoto
Wie man Kubernetes-Cluster mit kubeadm bootet
Um Kubernetes-Cluster einfacher zu booten, kann kubeadm genutzt werden. Hier finden Sie eine Schritt-für-Schritt-Anleitung für das Bootstrapping mit kubeadm.
Unter Container-Orchestrierung versteht man den Prozess der Bereitstellung und Verwaltung von Containern während ihres gesamten Lebenszyklus. Kubernetes ist eine Open-Source-Plattform für Container-Orchestrierung, die diese Aufgaben automatisiert und containerbezogene Richtlinien anwendet.
Die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen auf einem oder mehreren Hosts wird durch Kubernetes automatisiert. Damit ist die Plattform eine beliebte Wahl für Unternehmen jeder Größe. Kubernetes kann auf Bare Metal oder eine virtuelle Maschine (VM) installiert und konfiguriert werden.
Was ist Bootstrapping eines Kubernetes-Clusters?
Der Prozess, bei dem ein Kubernetes-Cluster von Grund auf neu erstellt und zum Laufen gebracht wird, nennt sich Bootstrapping.
Bootstrapping eines Kubernetes-Clusters umfasst die Einrichtung der Control Plane (Steuerungsebene) und der Worker Nodes (Arbeitsknoten). Dazu gehört auch die Bestimmung, welcher Node über die richtigen Informationen verfügt, mit denen sich alle anderen Nodes synchronisieren sollen. Das lässt sich manuell, programmatisch oder mit kubeadm, einem Kubernetes-Tool zum Einrichten und Verwalten von Clustern, erreichen.
Wann sollte man Kubernetes-Cluster booten?
Das Bootstrapping eines Clusters kann hilfreich sein, wenn Sie entweder komplett neu anfangen oder die Konfiguration einer bestehenden Kubernetes-Bereitstellung ändern. Wenn Sie eine isolierte Umgebung erstellen, um neue Funktionen zu testen oder bekannte Fehler zu beheben, ist Bootstrapping ebenfalls nützlich. Dieser Ansatz ist als Canary Testing bekannt.
Es ist möglich, ein Cluster von Grund auf neu zu erstellen, wenn Sie eine benutzerdefinierte Kubernetes-Installation erstellen und nicht die Standartsoftware verwenden möchten. Diese ist in Distributionen wie Debian oder RHEL enthalten. Ein Beispiel hierfür ist, wenn Sie neuere Versionen von Container-Laufzeiten möchten als die, die in RHEL Version 7 oder Debian Version 9 enthalten sind.
Was ist kubeadm und was macht es?
Kubeadm ist ein Befehlszeilenwerkzeug, mit dem die Einrichtung und Verwaltung von Kubernetes-Clustern vereinfacht wird. Damit können Sie eine Kubernetes-Infrastruktur ohne andere Orchestratoren oder Tools erstellen und einrichten. Kubeadm eignet sich sowohl für Kubernetes-Anfänger als auch für erfahrene Benutzer, die schnell ein neues Cluster einrichten möchten.
Die Erstellung und Konfiguration der erforderlichen Komponenten für einen Kubernetes-Cluster wird durch kubeadm automatisiert. Dazu gehören auch die Einrichtung der Control Plane und der Worker Nodes mit der grundlegenden Netzwerk- und Sicherheitskonfiguration. Diese sind für den Betrieb von Kubernetes auf Bare-Metal-Systemen erforderlich. Kubeadm richtet nicht nur die für Kubernetes erforderliche Maschine ein, sondern lädt auch die erforderliche Software herunter und installiert sie. Weiter wird das Netzwerk konfiguriert und die Autorisierung eingerichtet. Außerdem erleichtert es das Hinzufügen von Nodes zu einem Cluster.
Voraussetzungen für das Bootstrapping eines Kubernetes-Clusters mit kubeadm
Mindestens zwei Nodes sind erforderlich für den Betrieb eines Kubernetes-Clusters: eine Control Plane und ein Worker Node. Kubernetes erlaubt nur einen Control Plane Node, aber eine beliebige Anzahl von Worker Nodes. Control Plane Nodes benötigen mindestens 2 GB RAM und eine virtuelle CPU, während Worker Nodes mindestens 2 GB RAM und eine vCPU benötigen.
Um ein Kubernetes-Cluster zu booten, brauchen Sie zusätzlich zu kubeadm noch:
- Kubelet: Diese Komponente registriert Nodes bei einem Cluster und startet Container und Pods. Ausgeführt wird sie auf jedem Node des Clusters und verwaltet Aufgaben wie die Planung von Pods und den Start von Containern.
- Kubectl: Dieses Befehlszeilenprogramm verwaltet Cluster, Nodes und Pods.
Um Kubernetes unter Windows zu installieren, installieren Sie Docker für Windows und wählen Sie dann Kubernetes aktivieren in der Docker-Desktop-Benutzeroberfläche aus. Dadurch wird auch kubectl automatisch installiert.
Bootstrapping eines Kubernetes-Clusters mit kubeadm
Nach der Installation von Kubernetes müssen Sie es im nächsten Schritt konfigurieren.
Um kubeadm einzurichten, erstellen Sie eine Konfigurationsdatei mit dem Namen kubeadm.yaml. In dieser Datei sind alle Informationen, die von kubeadm zur Einrichtung ihres Clusters benötigt werden. Der Prozess der Erstellung eines Clusters ist automatisiert, in dem der Befehl kubeadm init auf einer Reihe von Knoten ausgeführt wird. Der Befehl verwendet eine YAML-Datei, um die gewünschten Einstellungen für den neuen Cluster anzugeben.
Installieren Sie kubectl unter Windows oder über die Befehlszeile mit dem folgenden Shell-Befehl:
curl -LO
https://dl.k8s.io/release/v1.24.0/bin/windows/amd64/kubectl.exe
Um ein Kubernetes-Cluster zu booten, stellen Sie sicher, dass die neueste Version von kubeadm mit dem folgenden Befehl installiert ist:
curl -sSL
https://github.com/kubernetes/kubeadm/releases/download/v1.0.1/kubeadm-1.0.1-linux-amd64 | bash
Nachdem Sie kubeadm auf Ihrem Server installiert haben, erstellen Sie eine Konfigurationsdatei für das neue Cluster. Diese Konfigurationsdatei enthält Informationen über die gewünschten Einstellungen für das neue Cluster.
Die Konfigurationsdatei erstellen Sie mit folgendem Befehl:
kubeadm init --config-file = config.yaml
Die Konfigurationsdatei befindet sich jetzt im aktuellen Arbeitsverzeichnis. Für die spätere Verwendung speichern Sie diese auf einer Festplatte, in dem Sie folgenden Befehl nutzen:
kubeadm init --save > config.yaml
Starten Sie jetzt das Cluster mit diesem Befehl:
kubeadm up
Um zu prüfen, ob das Cluster betriebsbereit ist, führen Sie folgenden Befehl aus:
kubectl get nodes
Abbildung 1 zeigt die erwartete Ausgabe:
Durch den folgenden Befehl werden alle Pods aufgelistet, die im Namensraum kybe-system vorhanden sind:
kubectl get po -n kube-system