Einführung
Kubernetes ist eine Plattform zur Container-Orchestrierung, die die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisiert. In dieser Herausforderung untersuchen wir die Architektur von Kubernetes, einschließlich der Komponenten, aus denen ein Kubernetes-Cluster besteht, und deren Zusammenspiel.
Komponenten der Kubernetes Control Plane
Die Kubernetes Control Plane (Steuerungsebene) verwaltet den Gesamtzustand des Clusters sowie die Bereitstellung und Skalierung von Anwendungen. Zu den Komponenten der Control Plane gehören:
- kube-apiserver: Das Frontend der Kubernetes Control Plane, das alle Verwaltungsanfragen an den Cluster verarbeitet.
- etcd: Ein verteilter Schlüssel-Wert-Speicher, in dem die Konfigurationsdaten des Kubernetes-Clusters abgelegt werden.
- kube-scheduler: Verantwortlich für die Zuweisung von Pods an die entsprechenden Nodes im Cluster.
- kube-controller-manager: Führt Controller aus, die den Zustand verschiedener Kubernetes-Objekte verwalten.
Aufgaben
Ihre Aufgabe ist es, den Status der Control-Plane-Komponenten abzurufen und anzuzeigen, einschließlich kube-apiserver, etcd, kube-scheduler und kube-controller-manager.
Anforderungen
- Verwenden Sie einen
kubectl-Befehl, um den Status der Control-Plane-Komponenten abzurufen. - Führen Sie den Befehl im Verzeichnis
/home/labex/projectaus. - Die Ausgabe muss den Status jeder Control-Plane-Komponente anzeigen.
Beispiel
Hier ist ein Beispiel für die erwartete Ausgabe beim Abrufen des Status der Control-Plane-Komponenten:
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
scheduler Healthy ok
Kubernetes Node-Komponenten
Die Kubernetes Node-Komponenten führen Container aus und stellen die Laufzeitumgebung für Anwendungen bereit. Zu den Node-Komponenten gehören:
- kubelet: Der Agent auf dem Node, der den Zustand des Nodes verwaltet und die Container ausführt.
- kube-proxy: Der Netzwerk-Proxy von Kubernetes, der den Datenverkehr an den richtigen Container weiterleitet.
Aufgaben
Lassen Sie sich Informationen über die im Kubernetes-Cluster laufenden Nodes anzeigen, einschließlich Node-Name, Status und weiterer relevanter Details.
Anforderungen
- Verwenden Sie einen
kubectl-Befehl, um die Nodes im Kubernetes-Cluster aufzulisten. - Führen Sie den Befehl im Verzeichnis
/home/labex/projectaus. - Die Ausgabe sollte Details zu jedem Node im Cluster enthalten.
Beispiel
Hier ist ein Beispiel für die erwartete Ausgabe bei der Anzeige der Nodes:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 2m52s v1.26.1
Kubernetes Pod-Komponenten
Ein Kubernetes-Pod ist die kleinste bereitstellbare Einheit in Kubernetes und repräsentiert eine einzelne Instanz eines laufenden Prozesses im Cluster. Jeder Pod besteht aus einem oder mehreren Containern, die sich denselben Netzwerk-Namespace und dieselben Speichervolumes teilen.
Aufgaben
- Erstellen Sie eine Datei namens
simple-pod.yamlmit einer Pod-Konfiguration für einen Nginx-Container. - Stellen Sie den Pod mit dem entsprechenden
kubectl-Befehl bereit. - Lassen Sie sich Informationen über die im Kubernetes-Cluster laufenden Pods anzeigen.
Anforderungen
- Erstellen Sie im Verzeichnis
/home/labex/projecteine Datei namenssimple-pod.yamlmit der Konfiguration für einen Pod namenssimple-pod, der das Nginx-Image verwendet. - Verwenden Sie einen
kubectl-Befehl, um den Pod aus der YAML-Datei zu erstellen. - Verwenden Sie einen weiteren
kubectl-Befehl, um die im Cluster laufenden Pods aufzulisten.
Beispiel
Hier ist ein Beispiel für die erwartete Ausgabe bei der Anzeige der Pods:
pod/simple-pod created
NAME READY STATUS RESTARTS AGE
simple-pod 1/1 Running 0 29s
Kubernetes Service-Komponenten
Ein Kubernetes-Service ist eine Abstraktion, die eine logische Gruppe von Pods und eine Richtlinie für den Zugriff darauf definiert. Zu den Service-Komponenten gehören:
- Service IP: Eine virtuelle IP-Adresse, die dem Service zugewiesen ist.
- Service Port: Eine Portnummer, die dem Service zugewiesen ist.
- Endpoint: Eine Liste von IP-Adressen und Portnummern, die auf die Pods hinter dem Service verweisen.
Aufgaben
- Erstellen Sie eine Datei namens
nginx-service.yamlmit einer Service-Konfiguration für den Nginx-Pod. - Stellen Sie den Service mit dem entsprechenden
kubectl-Befehl bereit. - Lassen Sie sich Informationen über die im Kubernetes-Cluster laufenden Services anzeigen.
Anforderungen
- Erstellen Sie im Verzeichnis
/home/labex/projecteine Datei namensnginx-service.yamlmit der Konfiguration für einen Service namensnginx-service, der Port 80 exponiert. - Verwenden Sie einen
kubectl-Befehl, um den Service aus der YAML-Datei zu erstellen. - Verwenden Sie einen weiteren
kubectl-Befehl, um die im Cluster laufenden Services aufzulisten.
Beispiel
Hier ist ein Beispiel für die erwartete Ausgabe bei der Anzeige der Services:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m42s
nginx-service ClusterIP 10.96.184.71 <none> 80/TCP 4s
Zusammenfassung
In dieser Herausforderung haben wir die Architektur von Kubernetes untersucht, einschließlich der Control Plane, Nodes, Pods und Service-Komponenten. Wir haben gelernt, wie man den Status verschiedener Komponenten überprüft, einen einfachen Pod und Service erstellt und einen Pod für externe Anwendungen verfügbar macht. Das Verständnis der Komponenten eines Kubernetes-Clusters und ihrer Interaktionen bildet eine solide Grundlage für die Bereitstellung und Verwaltung containerisierter Anwendungen.


