Pod Status
Ziel
- TODO
Hilfsmittel
- Versuchen Sie, die unten stehenden Aufgaben mit Hilfe der Folien und der Cheatsheets eigenständig zu lösen.
- Sollten Sie dabei Probleme haben, finden Sie bei jeder Aufgabe einen ausklappbaren Block, in dem der Lösungsweg beschrieben wird.
"Successfully completed"
-
Erstellen Sie eine Datei
completed.yaml
, die folgendermaßen aussieht:--- apiVersion: v1 kind: Pod metadata: name: completed labels: exercise: pod-status spec: containers: - name: completed image: alpine command: - "true" restartPolicy: Never
-
Wenden Sie den Pod mit
kubectl apply
an. - Betrachten Sie die Pod Status-Phase und die Pod Status Bedingungen mit
kubectl get pod
.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
- Pod Status-Phase:
"Succeeded" bedeutet, dass alle Containers in dem Pod erfolgreich abgeschlossen sind, und nicht neu gestartet werden.
$ kubectl get pod completed -o json | jq .status.phase "Succeeded"
- Pod Status Bedingungen:
Der Pod ging durch vier Arten von Bedingungen:
$ kubectl get pod completed -o json | jq .status.conditions [ { "lastProbeTime": null, "lastTransitionTime": "2024-04-02T08:00:57Z", "reason": "PodCompleted", "status": "True", "type": "Initialized" }, { "lastProbeTime": null, "lastTransitionTime": "2024-04-02T08:00:57Z", "reason": "PodCompleted", "status": "False", "type": "Ready" }, { "lastProbeTime": null, "lastTransitionTime": "2024-04-02T08:00:57Z", "reason": "PodCompleted", "status": "False", "type": "ContainersReady" }, { "lastProbeTime": null, "lastTransitionTime": "2024-04-02T08:00:57Z", "status": "True", "type": "PodScheduled" } ]
- "PodScheduled": bedeutet, dass der Pod einem Knoten zugewiesen wurde.
- "Initialized" bedeutet, dass alle initContainers erfolgreich abgeschlossen sind.
Da wir keine initContainer haben, ist die Bedingung erfüllt.
- "ContainersReady" bedeutet, dass alle Container in dem Pod bereit sind.
Da der Prozess unseres Container-Kommados
true
sofort existiert, hat der Container die "ContainersReady" Bedingung sofort verlassen. - "Ready" bedeutet, dass der Pod in der Lage ist, Anfragen zu bedienen und zu den Lastausgleichspools
aller passenden Dienste hinzugefügt werden sollte. Wie durch "PodCompleted" angezeigt, hat unser Pod den Zustand "Ready" bereits verlassen, da der Container-Prozess beendet wurde und die RestartPolicy einen Neustart verhindert.
Leider sind die Bedingungen, wie sie inkubectl get pod
erscheinen, möglicherweise nicht in der richtigen Reihenfolge.
Cleanup
- Löschen Sie alle Objekte, die wir mit
kubectl delete
erstellt haben, indem Sie den Label-Selektor für diese speziellen Übungen verwenden. - Beobachten Sie, wie sie mit
watch kubectl get all
verschwinden.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
kubectl delete pods --selector exercise=pod-status