Willkommen zu dieser umfassenden Anleitung, die Ihnen Schritt für Schritt zeigt, wie Sie einen Kubernetes Cluster auf Ubuntu 24.04 installieren. Kubernetes, oft als K8s abgekürzt, ist eine Open-Source-Plattform für die Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. In der modernen Softwareentwicklung ist es unverzichtbar geworden. Ubuntu 24.04, mit seinen Verbesserungen in Stabilität und Leistung, ist eine ausgezeichnete Basis für Ihren Kubernetes Cluster.
Warum Kubernetes auf Ubuntu 24.04?
Bevor wir uns ins Detail stürzen, lassen Sie uns kurz besprechen, warum diese Kombination so gut funktioniert:
- Stabilität und Zuverlässigkeit: Ubuntu ist bekannt für seine Stabilität und lange Supportzyklen (LTS), was es ideal für Produktionsumgebungen macht.
- Aktuelle Pakete: Ubuntu 24.04 bietet die neuesten Softwarepakete, einschließlich aktueller Versionen von Docker, containerd und Kubernetes-Komponenten.
- Große Community: Eine riesige Community bedeutet umfangreiche Dokumentation, Hilfsforen und eine Fülle von Ressourcen, falls Sie auf Probleme stoßen.
- Einfache Konfiguration: Ubuntu ist für seine Benutzerfreundlichkeit bekannt, was die Einrichtung und Konfiguration von Kubernetes vereinfacht.
Voraussetzungen
Bevor wir beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
- Mehrere Ubuntu 24.04 Server: Sie benötigen mindestens zwei Server: einen Master-Knoten und einen Worker-Knoten. Für eine höhere Verfügbarkeit wird empfohlen, mindestens drei Master-Knoten zu verwenden.
- Root-Zugriff oder sudo-Rechte: Sie benötigen Root-Zugriff oder einen Benutzer mit sudo-Rechten auf allen Servern.
- Netzwerkverbindung: Alle Server müssen miteinander über ein Netzwerk kommunizieren können.
- Aktuelle Paketlisten: Stellen Sie sicher, dass Ihre Paketlisten aktuell sind, indem Sie
sudo apt update
ausführen. - Container-Laufzeitumgebung: Wir werden Docker oder containerd als Container-Laufzeit verwenden.
Schritt 1: Hostnamen und Hosts-Datei konfigurieren
Es ist wichtig, dass alle Knoten in Ihrem Kubernetes Cluster über eindeutige Hostnamen verfügen und sich gegenseitig über diese Hostnamen erreichen können. Bearbeiten Sie die /etc/hosts
-Datei auf jedem Knoten, um die Zuordnungen zwischen IP-Adressen und Hostnamen hinzuzufügen. Ein Beispiel:
# Auf allen Knoten:
sudo nano /etc/hosts
# Fügen Sie folgende Zeilen hinzu, wobei Sie die IP-Adressen und Hostnamen anpassen:
192.168.1.10 master1
192.168.1.11 worker1
192.168.1.12 worker2
Speichern Sie die Datei und führen Sie hostnamectl set-hostname [Ihr-Hostname]
auf jedem Knoten aus, um den Hostnamen dauerhaft festzulegen. Starten Sie den Knoten neu, um die Änderungen zu übernehmen.
Schritt 2: Container-Laufzeit installieren (Containerd)
Containerd ist eine beliebte Container-Laufzeitumgebung und wird oft in Verbindung mit Kubernetes verwendet. So installieren Sie es:
# Auf allen Knoten:
sudo apt update
sudo apt install -y containerd
# Konfiguration erstellen:
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
# systemd cgroup Treiber aktivieren (wichtig für Kubernetes):
sudo nano /etc/containerd/config.toml
# Suchen Sie nach `SystemdCgroup = false` und ändern Sie es zu `SystemdCgroup = true`
# Containerd neustarten:
sudo systemctl restart containerd
sudo systemctl enable containerd
Schritt 3: Kubernetes-Komponenten installieren
Jetzt installieren wir die Kubernetes-Komponenten: kubeadm
, kubelet
und kubectl
. kubeadm
wird verwendet, um den Cluster zu initialisieren, kubelet
ist der Agent, der auf jedem Knoten läuft, und kubectl
ist das Befehlszeilentool für die Interaktion mit dem Cluster.
# Auf allen Knoten:
# Kubernetes Schlüssel hinzufügen:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# Kubernetes Repository hinzufügen:
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# Pakete aktualisieren und Kubernetes installieren:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
# Verhindern, dass apt Kubernetes automatisch aktualisiert:
sudo apt-mark hold kubelet kubeadm kubectl
Schritt 4: Den Master-Knoten initialisieren
Auf dem Master-Knoten initialisieren wir jetzt den Kubernetes Cluster. Stellen Sie sicher, dass Sie die richtige Pod-Netzwerk-CIDR (z.B. 10.244.0.0/16 für Calico) angeben. Wenn Sie Docker anstelle von Containerd verwenden, müssen Sie die `–cri-socket` Option entsprechend anpassen.
# Nur auf dem Master-Knoten:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=[IP-Adresse des Master-Knotens]
# (Notieren Sie sich den kubeadm join Befehl, der am Ende der Ausgabe erscheint!)
# Kubernetes Konfiguration für den Benutzer speichern:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Notieren Sie sich den kubeadm join
Befehl, der am Ende der Ausgabe von kubeadm init
erscheint. Sie benötigen ihn, um die Worker-Knoten dem Cluster hinzuzufügen.
Schritt 5: Pod-Netzwerk installieren (Calico)
Ein Pod-Netzwerk ermöglicht die Kommunikation zwischen den Pods in Ihrem Kubernetes Cluster. Wir verwenden hier Calico, aber es gibt auch andere Optionen wie Flannel oder Weave Net.
# Nur auf dem Master-Knoten:
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
Überprüfen Sie den Status der Pods mit kubectl get pods -n kube-system
. Es kann einige Minuten dauern, bis alle Pods laufen.
Schritt 6: Worker-Knoten dem Cluster hinzufügen
Verwenden Sie den kubeadm join
Befehl, den Sie in Schritt 4 notiert haben, um die Worker-Knoten dem Cluster hinzuzufügen. Er sollte in etwa so aussehen:
# Auf allen Worker-Knoten:
sudo kubeadm join [IP-Adresse des Master-Knotens]:6443 --token [Ihr-Token] --discovery-token-ca-cert-hash sha256:[Ihr-Hash]
Schritt 7: Knotenstatus überprüfen
Überprüfen Sie auf dem Master-Knoten den Status der Knoten mit dem Befehl:
# Nur auf dem Master-Knoten:
kubectl get nodes
Sie sollten alle Ihre Knoten sehen, und ihr Status sollte „Ready” sein. Es kann einige Minuten dauern, bis der Status sich ändert.
Schritt 8: (Optional) Dashboard installieren
Das Kubernetes Dashboard ist eine webbasierte Benutzeroberfläche, mit der Sie Ihren Cluster verwalten können. Um es zu installieren, führen Sie Folgendes aus:
# Nur auf dem Master-Knoten:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Um auf das Dashboard zuzugreifen, müssen Sie einen Proxy erstellen und einen Authentifizierungstoken generieren. Details dazu finden Sie in der offiziellen Kubernetes Dokumentation.
Fehlerbehebung
Hier sind einige häufige Probleme und deren Lösungen:
- Knoten nicht „Ready”: Stellen Sie sicher, dass die Netzwerkkonfiguration korrekt ist und alle Knoten miteinander kommunizieren können. Überprüfen Sie die
kubelet
-Logs auf Fehler (journalctl -u kubelet
). - Pods können nicht miteinander kommunizieren: Stellen Sie sicher, dass das Pod-Netzwerk korrekt konfiguriert ist und keine Firewall-Regeln die Kommunikation blockieren.
kubeadm join
schlägt fehl: Stellen Sie sicher, dass Sie den richtigen Token und Hash verwenden und dass die Uhrzeit auf allen Knoten synchronisiert ist (verwenden Sie NTP).
Fazit
Herzlichen Glückwunsch! Sie haben erfolgreich einen Kubernetes Cluster auf Ubuntu 24.04 installiert. Dieser Leitfaden sollte Ihnen eine solide Grundlage für die Bereitstellung und Verwaltung Ihrer containerisierten Anwendungen geben. Experimentieren Sie mit verschiedenen Konfigurationen und Optionen, um das Beste aus Ihrem Cluster herauszuholen. Viel Erfolg!