Einführung
Der Befehl kubectl run ist eine der einfachsten und vielseitigsten Methoden, um Ressourcen in Kubernetes zu erstellen. Mit ihm können Sie Container schnell bereitstellen, Jobs für die Batchverarbeitung erstellen oder Deployments einrichten, um mehrere Replikate einer Anwendung zu verwalten. Dieser Lab (Übungsabschnitt) ist darauf ausgelegt, Anfängern zu helfen, die Grundlagen des kubectl run-Befehls zu verstehen und ihn effektiv zu nutzen.
Am Ende dieses Labs werden Sie lernen, wie Sie:
- Ein Minikube-Cluster starten und überprüfen.
- Einen Pod mit
kubectl runerstellen. - Ein Deployment mit mehreren Replikaten erstellen.
- Einen Job für die Batchverarbeitung ausführen.
- Ressourcen bereinigen, um Ihren Cluster in einem guten Zustand zu halten.
Starten Sie den Minikube-Cluster
Bevor Sie Ressourcen erstellen, benötigen Sie einen laufenden Kubernetes-Cluster. Minikube ist eine leichte Kubernetes-Umgebung, die auf Ihrem lokalen Rechner läuft.
Navigieren Sie in Ihr Arbeitsverzeichnis:
Öffnen Sie das Terminal und navigieren Sie in den Standardprojektordner:
cd /home/labex/projectStarten Sie Minikube:
Starten Sie Minikube, um einen Kubernetes-Cluster zu initialisieren:
minikube start- Dieser Befehl richtet einen Ein-Knoten-Kubernetes-Cluster auf Ihrem lokalen Rechner ein.
- Minikube kann je nach Leistung Ihres Systems einige Minuten dauern, um zu starten.
Überprüfen Sie, ob Minikube läuft:
Überprüfen Sie den Status des Minikube-Clusters:
minikube status- Suchen Sie nach Komponenten wie
kubeletundapiserver, die alsRunning(Läuft) aufgeführt sind. - Wenn der Cluster nicht läuft, führen Sie
minikube starterneut aus.
- Suchen Sie nach Komponenten wie
Wenn Sie Probleme beim Starten von Minikube haben, können Sie minikube delete verwenden, um die Umgebung bei Bedarf zurückzusetzen.
Entdecken Sie den kubectl run-Befehl
Der kubectl run-Befehl wird verwendet, um ein bestimmtes Image in einem Pod zu erstellen und auszuführen. Er bietet mehrere Optionen, um das Verhalten, die Umgebung und die Spezifikationen des Pods anzupassen.
Führen Sie den folgenden Befehl aus, um die verfügbaren Optionen für kubectl run anzuzeigen:
kubectl run -h
Sie werden die folgende Ausgabe sehen:
Create and run a particular image in a pod.
Beispiele:
## Starten Sie einen nginx-Pod
kubectl run nginx --image=nginx
## Starten Sie einen hazelcast-Pod und lassen Sie den Container Port 5701 freigeben
kubectl run hazelcast --image=hazelcast/hazelcast --port=5701
## Starten Sie einen hazelcast-Pod und setzen Sie die Umgebungsvariablen "DNS_DOMAIN=cluster" und "POD_NAMESPACE=default" im Container
kubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"
## Starten Sie einen hazelcast-Pod und setzen Sie die Labels "app=hazelcast" und "env=prod" im Container
kubectl run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod"
## Trockenlauf; geben Sie die entsprechenden API-Objekte aus, ohne sie zu erstellen
kubectl run nginx --image=nginx --dry-run=client
## Starten Sie einen nginx-Pod, aber überschreiben Sie die Spezifikation mit einer Teilmenge von Werten, die aus JSON geparst wurden
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": {... } }'
## Starten Sie einen busybox-Pod und halten Sie ihn im Vordergrund, starten Sie ihn nicht neu, wenn er beendet wird
kubectl run -i -t busybox --image=busybox --restart=Never
## Starten Sie den nginx-Pod mit dem Standardbefehl, aber verwenden Sie benutzerdefinierte Argumente (arg1.. argN) für diesen Befehl
kubectl run nginx --image=nginx -- <arg1> <arg2>... <argN>
## Starten Sie den nginx-Pod mit einem anderen Befehl und benutzerdefinierten Argumenten
kubectl run nginx --image=nginx --command -- <cmd> <arg1>... <argN>
Erstellen Sie einen Pod
Ein Pod ist die kleinste deployierbare Einheit in Kubernetes und repräsentiert einen oder mehrere Container, die zusammen laufen. In diesem Schritt werden wir einen Pod erstellen, der einen Nginx-Webserver ausführt.
Erstellen Sie den Pod:
Führen Sie den folgenden Befehl aus, um einen Pod mit dem Namen
nginx-podzu erstellen:kubectl run nginx-pod --image=nginx- Die Option
--imagegibt das zu verwendende Container-Image an. Hier verwenden wir das offizielle Nginx-Image.
- Die Option
Überprüfen Sie den Pod:
Überprüfen Sie, ob der Pod läuft:
kubectl get pods- Suchen Sie nach
nginx-podin der Ausgabe. - Die Spalte
STATUSsollteRunning(Läuft) anzeigen, wenn der Pod bereit ist.
- Suchen Sie nach
Wenn der Pod-Status Pending (Ausstehend) anzeigt, zieht Kubernetes möglicherweise noch das Container-Image. Warten Sie einen Moment und führen Sie kubectl get pods erneut aus.
Erstellen Sie ein Deployment und skalieren Sie die Replikate
Ein Deployment verwaltet eine Gruppe von Pods und stellt sicher, dass sie wie gewünscht laufen. Es ist nützlich für das Skalieren und Aktualisieren von Anwendungen.
Erstellen Sie das Deployment:
Führen Sie den folgenden Befehl aus, um ein Deployment mit dem Namen
nginx-deploymentzu erstellen:kubectl create deployment nginx-deployment --image=nginx- Die Option
--imagegibt das zu verwendende Container-Image an.
- Die Option
Skalieren Sie das Deployment auf 3 Replikate:
Da die Flag
--replicasveraltet ist, werden wir stattdessen das Deployment mitkubectl scaleskalieren.Verwenden Sie den
kubectl scale-Befehl, um die Anzahl der Replikate anzupassen:kubectl scale deployment nginx-deployment --replicas=3- Dies stellt sicher, dass drei Pods als Teil des Deployments laufen.
Überprüfen Sie das Deployment und seine Replikate:
Überprüfen Sie den Status des Deployments und der Pods:
kubectl get deployments kubectl get pods- Stellen Sie sicher, dass das Deployment in der Spalte
READY3 Replikate anzeigt. - Überprüfen Sie, dass drei Pods in der Ausgabe von
kubectl get podsaufgeführt sind.
- Stellen Sie sicher, dass das Deployment in der Spalte
Wenn ein Pod nicht im Zustand Running (Läuft) ist, kann dies an unzureichenden Cluster-Ressourcen liegen. Überprüfen Sie die Pod-Ereignisse mit:
kubectl describe pod <pod-name>
Erstellen Sie einen Job
Ein Job wird verwendet, um Aufgaben auszuführen, die erfolgreich abgeschlossen werden müssen. Beispielsweise Batch-Jobs oder Datenverarbeitungstasks. Wir werden kubectl run verwenden, um einen Job zu erstellen und seine Ausführung zu überprüfen.
- Erstellen Sie den Job
Führen Sie den folgenden Befehl aus, um einen Job mit dem Namen busybox-job zu erstellen:
kubectl run busybox-job --image=busybox --restart=OnFailure -- echo "Hello from Kubernetes"
- Die Flag
--restart=OnFailuregibt an, dass dies ein Job ist. - Der
echo-Befehl definiert die Aufgabe, die der Job ausführen wird.
- Überprüfen Sie den Job-Status
Führen Sie den folgenden Befehl aus, um den Job zu überprüfen:
kubectl get jobs
Erwartete Ausgabe:
NAME COMPLETIONS DURATION AGE
busybox-job 1/1 5s 10s
COMPLETIONS: Zeigt an, dass der Job einmal erfolgreich ausgeführt wurde (1/1).- Wenn kein Job aufgeführt ist, wurde er möglicherweise automatisch bereinigt. Gehen Sie zum nächsten Schritt über, um seinen Pod zu überprüfen.
- Überprüfen Sie den Pod des Jobs
Da ein Job in einem Pod ausgeführt wird, verwenden Sie den folgenden Befehl, um den Pod zu überprüfen:
kubectl get pods
Erwartete Ausgabe:
NAME READY STATUS RESTARTS AGE
busybox-job 0/1 Completed 0 30s
- Das Feld
STATUSsollteCompletedanzeigen, was bedeutet, dass der Job abgeschlossen ist.
- Überprüfen Sie die Job-Ausgabe
Untersuchen Sie die Logs des Pods des Jobs, um die Ausgabe zu überprüfen:
kubectl logs busybox-job
Erwartete Ausgabe:
Hello from Kubernetes
Dies bestätigt, dass der Job erfolgreich ausgeführt wurde.
Aufräumen
Um Ihren Cluster sauber zu halten, löschen Sie die Ressourcen, die Sie während des Labs erstellt haben.
Löschen Sie die Ressourcen:
Führen Sie die folgenden Befehle aus:
kubectl delete pod nginx-pod kubectl delete pod busybox-job kubectl delete deployment nginx-deploymentÜberprüfen Sie das Aufräumen:
Überprüfen Sie, dass keine Ressourcen übrig bleiben:
kubectl get pods kubectl get deployments- Stellen Sie sicher, dass in der Ausgabe nicht die Ressourcen aufgelistet sind, die Sie erstellt haben.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie:
- Einen Minikube-Cluster starten und überprüfen.
kubectl runverwenden, um Pods, Deployments und Jobs zu erstellen und zu verwalten.- Ressourcen aufräumen, um den Cluster organisiert zu halten.
Der Befehl kubectl run bietet eine einfache und leistungsstarke Möglichkeit, Anwendungen in Kubernetes bereitzustellen und Workloads zu verwalten. Indem Sie diese Schritte üben, können Sie eine solide Grundlage für fortgeschrittenere Kubernetes-Workflows aufbauen.


