Kubernetes Run-Befehl

KubernetesKubernetesBeginner
Jetzt üben

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

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:

  1. Ein Minikube-Cluster starten und überprüfen.
  2. Einen Pod mit kubectl run erstellen.
  3. Ein Deployment mit mehreren Replikaten erstellen.
  4. Einen Job für die Batchverarbeitung ausführen.
  5. Ressourcen bereinigen, um Ihren Cluster in einem guten Zustand zu halten.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedDeploymentGroup(["Advanced Deployment"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/BasicCommandsGroup -.-> kubernetes/delete("Delete") kubernetes/BasicCommandsGroup -.-> kubernetes/expose("Expose") kubernetes/BasicCommandsGroup -.-> kubernetes/run("Run") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/scale("Scale") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/logs("Logs") subgraph Lab Skills kubernetes/initialization -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/get -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/create -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/delete -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/expose -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/run -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/scale -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/describe -.-> lab-8456{{"Kubernetes Run-Befehl"}} kubernetes/logs -.-> lab-8456{{"Kubernetes Run-Befehl"}} end

Starten des Minikube-Clusters

Bevor Sie Ressourcen erstellen, benötigen Sie einen laufenden Kubernetes-Cluster. Minikube ist eine leichte Kubernetes-Umgebung, die auf Ihrem lokalen Rechner läuft.

  1. Navigieren Sie in Ihr Arbeitsverzeichnis:

    Öffnen Sie das Terminal und navigieren Sie in den Standardprojektordner:

    cd /home/labex/project
  2. Starten 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.
  3. Überprüfen Sie, ob Minikube läuft:

    Überprüfen Sie den Status des Minikube-Clusters:

    minikube status
    • Suchen Sie nach Komponenten wie kubelet und apiserver, die als Running (Läuft) aufgeführt sind.
    • Wenn der Cluster nicht läuft, führen Sie minikube start erneut aus.

Wenn Sie Probleme beim Starten von Minikube haben, können Sie minikube delete verwenden, um die Umgebung bei Bedarf zurückzusetzen.

Entdecken des kubectl run-Befehls

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 eines Pods

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.

  1. Erstellen Sie den Pod:

    Führen Sie den folgenden Befehl aus, um einen Pod mit dem Namen nginx-pod zu erstellen:

    kubectl run nginx-pod --image=nginx
    • Die Option --image gibt das zu verwendende Container-Image an. Hier verwenden wir das offizielle Nginx-Image.
  2. Überprüfen Sie den Pod:

    Überprüfen Sie, ob der Pod läuft:

    kubectl get pods
    • Suchen Sie nach nginx-pod in der Ausgabe.
    • Die Spalte STATUS sollte Running (Läuft) anzeigen, wenn der Pod bereit ist.

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 eines Deployments und Skalieren von Replikaten

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.

  1. Erstellen Sie das Deployment:

    Führen Sie den folgenden Befehl aus, um ein Deployment mit dem Namen nginx-deployment zu erstellen:

    kubectl create deployment nginx-deployment --image=nginx
    • Die Option --image gibt das zu verwendende Container-Image an.
  2. Skalieren Sie das Deployment auf 3 Replikate:

    Da die Flag --replicas veraltet ist, werden wir stattdessen das Deployment mit kubectl scale skalieren.

    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.
  3. Ü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 READY 3 Replikate anzeigt.
    • Überprüfen Sie, dass drei Pods in der Ausgabe von kubectl get pods aufgeführt sind.

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 eines Jobs

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.

  1. 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=OnFailure gibt an, dass dies ein Job ist.
  • Der echo-Befehl definiert die Aufgabe, die der Job ausführen wird.
  1. Ü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.
  1. Ü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 STATUS sollte Completed anzeigen, was bedeutet, dass der Job abgeschlossen ist.
  1. Ü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.

  1. 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
  2. Ü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:

  1. Einen Minikube-Cluster starten und überprüfen.
  2. kubectl run verwenden, um Pods, Deployments und Jobs zu erstellen und zu verwalten.
  3. 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.