Erstellung einer Kubernetes-Cluster-Architektur

KubernetesBeginner
Jetzt üben

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/project aus.
  • 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/project aus.
  • 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

  1. Erstellen Sie eine Datei namens simple-pod.yaml mit einer Pod-Konfiguration für einen Nginx-Container.
  2. Stellen Sie den Pod mit dem entsprechenden kubectl-Befehl bereit.
  3. Lassen Sie sich Informationen über die im Kubernetes-Cluster laufenden Pods anzeigen.

Anforderungen

  • Erstellen Sie im Verzeichnis /home/labex/project eine Datei namens simple-pod.yaml mit der Konfiguration für einen Pod namens simple-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

  1. Erstellen Sie eine Datei namens nginx-service.yaml mit einer Service-Konfiguration für den Nginx-Pod.
  2. Stellen Sie den Service mit dem entsprechenden kubectl-Befehl bereit.
  3. Lassen Sie sich Informationen über die im Kubernetes-Cluster laufenden Services anzeigen.

Anforderungen

  • Erstellen Sie im Verzeichnis /home/labex/project eine Datei namens nginx-service.yaml mit der Konfiguration für einen Service namens nginx-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.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben