Ihr erster Kubernetes-Lab

KubernetesKubernetesAdvanced
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Willkommen in Ihrem ersten Kubernetes-Labor! In diesem Labor werden Sie Kubernetes kennenlernen, ein leistungsstarkes System zur Verwaltung von containerisierten Anwendungen. Am Ende dieses Labs haben Sie Ihre erste Kubernetes-Bereitstellung (deployment) erstellt und mit ihr interagiert.

Machen Sie sich keine Sorgen, wenn Sie neu in der Welt der Container oder der Orchestrierung sind - wir werden Ihnen jedes Konzept Schritt für Schritt erklären. Lassen Sie uns unsere Reise in die Welt von Kubernetes beginnen!

Hinweis: In diesem Lab müssen Bilder (images) heruntergeladen werden, aber Free-Nutzer können aus der Lab-Umgebung nicht ins Internet zugreifen. Dieses Lab ist ausschließlich für Pro-Nutzer verfügbar.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Experte mit einer Abschlussquote von 47% ist. Es hat eine positive Bewertungsrate von 89% von den Lernenden erhalten.

Starten Ihres Kubernetes-Clusters

Wir beginnen mit der Erstellung eines lokalen Kubernetes-Clusters mithilfe von Minikube. Minikube ermöglicht es Ihnen, einen Ein-Knoten-Kubernetes-Cluster auf Ihrem Computer auszuführen, ideal für das Lernen und die Entwicklung.

Zunächst öffnen Sie Ihr Terminal. Sie sollten sich im Verzeichnis /home/labex/project befinden. Wenn Sie sich nicht sicher sind, können Sie in dieses Verzeichnis wechseln, indem Sie Folgendes eingeben:

cd /home/labex/project

Jetzt starten wir den Minikube-Cluster:

Hinweis: Free-Nutzer können nicht mit dem Internet verbinden. Daher wird Minikube bereits vorab gestartet, wenn Sie das Lab starten. Sie können diesen Schritt überspringen. Upgrade auf einen Pro-Nutzer, um das Starten des Clusters selbst zu üben.

Nur für Pro-Nutzer
minikube start
Minikube cluster initialization

Dieser Befehl initialisiert einen Kubernetes-Cluster auf Ihrem lokalen Rechner. Hier ist, was im Hintergrund passiert:

  1. Minikube erstellt eine virtuelle Maschine (VM) auf Ihrem Computer.
  2. Es installiert und konfiguriert Kubernetes innerhalb dieser VM.
  3. Es richtet die Netzwerkeinstellungen ein, damit Ihr Computer mit dem Cluster kommunizieren kann.

Dieser Vorgang kann einige Minuten dauern. Sie werden eine Menge Ausgabe sehen, während Minikube arbeitet. Machen Sie sich keine Sorgen, wenn Sie nicht alles verstehen - das Wichtigste ist, auf eine Meldung "Done!" am Ende zu warten.

Erstellen Ihrer ersten Bereitstellung (Deployment)

Jetzt, da unser Cluster läuft, erstellen wir unsere erste Kubernetes-Bereitstellung (Deployment). Eine Bereitstellung ist ein Kubernetes-Objekt, das eine Gruppe identischer Pods verwaltet. (Machen Sie sich keine Sorgen, wir werden bald erklären, was Pods sind!)

Wir werden eine Bereitstellung erstellen, die einen einzelnen NGINX-Webserver-Container ausführt. NGINX ist ein beliebter Webserver, den wir für dieses Beispiel verwenden werden.

Führen Sie diesen Befehl aus:

kubectl create deployment hello-kubernetes --image=nginx:latest --port=80

Lassen Sie uns diesen Befehl auseinandernehmen:

  • kubectl ist das Befehlszeilentool zur Interaktion mit Kubernetes.
  • create deployment teilt Kubernetes mit, eine neue Bereitstellung zu erstellen.
  • hello-kubernetes ist der Name, den wir unserer Bereitstellung geben.
  • --image=nginx:latest gibt an, dass wir die neueste Version des NGINX Docker-Images verwenden möchten.
  • --port=80 teilt Kubernetes mit, dass der Container auf Port 80 (dem Standardport für Webdatenverkehr) lauschen wird.

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie Folgendes sehen:

deployment.apps/hello-kubernetes created

Dies bedeutet, dass Kubernetes Ihre Bereitstellung erfolgreich erstellt hat. Aber was hat es genau getan?

  1. Kubernetes hat das NGINX Docker-Image heruntergeladen.
  2. Es hat einen Pod - eine Gruppe aus einem oder mehreren Containern - erstellt und den NGINX-Container darin gestartet.
  3. Es hat die Netzwerkeinstellungen so konfiguriert, dass auf den Pod über Port 80 zugegriffen werden kann.

Überprüfen Ihrer Bereitstellung (Deployment)

Jetzt, da wir eine Bereitstellung erstellt haben, schauen wir uns genauer an, was Kubernetes für uns eingerichtet hat.

Zunächst überprüfen wir den Status unserer Bereitstellung:

kubectl get deployments

Sie sollten etwas wie Folgendes sehen:

NAME               READY   UP-TO-DATE   AVAILABLE   AGE
hello-kubernetes   1/1     1            1           2m

Diese Ausgabe sagt uns:

  • READY: 1/1 bedeutet, dass ein Pod von einem gewünschten Pod bereit ist.
  • UP-TO-DATE: 1 bedeutet, dass ein Pod die neueste Konfiguration ausführt.
  • AVAILABLE: 1 bedeutet, dass ein Pod für den Datenverkehr verfügbar ist.

Als Nächstes schauen wir uns die Pods an, die unsere Bereitstellung erstellt hat:

kubectl get pods

Sie sollten etwas wie Folgendes sehen:

NAME                                READY   STATUS    RESTARTS   AGE
hello-kubernetes-6b89d599b9-x7tpv   1/1     Running   0          3m

Der genaue Pod-Name wird unterschiedlich sein, aber Sie sollten einen Pod mit dem Status "Running" sehen. Dieser Pod enthält unseren NGINX-Container.

Wenn Sie keinen laufenden Pod sehen, warten Sie eine Minute und versuchen Sie es erneut. Kubernetes könnte möglicherweise noch den Pod erstellen oder das NGINX-Image herunterladen.

Um detailliertere Informationen über unseren Pod zu erhalten, führen Sie Folgendes aus:

kubectl describe pod hello-kubernetes-6b89d599b9-x7tpv

Hinweis: Ersetzen Sie hello-kubernetes-6b89d599b9-x7tpv durch den Namen Ihres Pods, wie er in der Ausgabe von kubectl get pods angezeigt wird.

Dieser Befehl gibt eine Menge Informationen aus. Machen Sie sich keine Sorgen, wenn Sie jetzt nicht alles verstehen. Wichtige Dinge, die Sie beachten sollten:

  • Status: Sollte "Running" sein.
  • IP: Die interne IP-Adresse des Pods.
  • Containers: Informationen über den im Pod laufenden NGINX-Container.

Wenn Sie in dieser Ausgabe Fehler sehen, können diese Ihnen helfen, Probleme mit Ihrem Pod zu diagnostizieren.

Zugriff auf Ihre Anwendung

Jetzt, da unsere Bereitstellung (Deployment) läuft, greifen wir auf den NGINX-Webserver zu, den wir deployed haben.

In einer typischen Kubernetes-Umgebung würden wir einen Service (Dienst) erstellen, um unsere Bereitstellung im Netzwerk zugänglich zu machen. Aus Gründen der Einfachheit in dieser lokalen Umgebung verwenden wir stattdessen Port-Forwarding.

Führen Sie diesen Befehl aus:

kubectl port-forward $(kubectl get pods -o name) 8080:80

Dieser Befehl macht Folgendes:

  • $(kubectl get pods -o name) ruft den Namen unseres Pods ab.
  • 8080:80 teilt Kubernetes mit, Datenverkehr vom Port 8080 auf Ihrem lokalen Rechner an Port 80 im Pod weiterzuleiten.

Sie werden keine Ausgabe sehen, aber der Befehl wird weiterlaufen. Das ist normal!

Öffnen Sie jetzt ein neues Terminalfenster und führen Sie Folgendes aus:

curl http://localhost:8080
NGINX welcome page display

Sie sollten HTML-Inhalte sehen – dies ist die NGINX-Willkommensseite!

Wenn Sie keine HTML-Inhalte sehen:

  • Stellen Sie sicher, dass der Port-Forwarding-Befehl im anderen Terminal noch läuft.
  • Überprüfen Sie, ob Sie den curl-Befehl korrekt eingegeben haben.
  • Versuchen Sie, http://localhost:8080 in einem Webbrowser zu öffnen, wenn curl nicht funktioniert.

Um das Port-Forwarding zu stoppen, kehren Sie zum ursprünglichen Terminalfenster zurück und drücken Sie Strg+C.

Aufräumen

Gut gemacht! Sie haben erfolgreich eine Anwendung auf Kubernetes deployed und darauf zugegriffen. Jetzt räumen wir unsere Ressourcen auf.

Zunächst löschen wir unsere Bereitstellung (Deployment):

kubectl delete deployment hello-kubernetes

Sie sollten Folgendes sehen:

deployment.apps "hello-kubernetes" deleted

Dieser Befehl teilt Kubernetes mit, die Bereitstellung und alle zugehörigen Ressourcen, einschließlich des Pods, zu entfernen.

Überprüfen Sie, ob die Bereitstellung und der Pod entfernt wurden:

kubectl get deployments
kubectl get pods

Beide Befehle sollten "No resources found in default namespace." zurückgeben.

Wenn Sie immer noch Ressourcen sehen, warten Sie einen Moment und versuchen Sie es erneut. Kubernetes könnte möglicherweise noch dabei sein, sie zu entfernen.

Schließlich stoppen wir den Minikube-Cluster:

minikube stop

Dies stoppt die Minikube-Virtuelle Maschine, bewahrt aber den Zustand des Clusters auf Ihrem Rechner auf. Sie können ihn später mit minikube start erneut starten.

Wenn Sie den Minikube-Cluster vollständig entfernen möchten, können Sie minikube delete ausführen. Dies ist jedoch derzeit nicht erforderlich.

Zusammenfassung

Herzlichen Glückwunsch! In diesem Lab haben Sie Ihre ersten Schritte mit Kubernetes unternommen. Sie haben gelernt, wie Sie:

  1. Einen lokalen Kubernetes-Cluster mit Minikube starten
  2. Eine Bereitstellung (Deployment) mit kubectl erstellen
  3. Ihre Bereitstellung und die von ihr erstellten Pods überprüfen
  4. Auf Ihre deployed Anwendung über Port-Forwarding zugreifen
  5. Ihre Ressourcen aufräumen und Ihren Cluster stoppen

Dies sind grundlegende Fähigkeiten, die die Grundlage für die Arbeit mit Kubernetes bilden. Wenn Sie weiterhin lernen, werden Sie auf diesen Grundlagen aufbauen, um komplexere Anwendungen zu erstellen und fortgeschrittenere Kubernetes-Konzepte zu verstehen.

Denken Sie daran, dass Kubernetes ein leistungsstarkes und komplexes System ist. Es ist normal, wenn einige Konzepte noch unklar sind – das Lernen von Kubernetes ist eine Reise. Üben Sie weiter, und Sie werden allmählich ein tieferes Verständnis entwickeln. Viel Glück bei Ihrem Kubernetes-Lernabenteuer!