
Wäre jemand so freundlich, mir das Dokument zu zeigen, das das folgende Phänomen erklärt?
Wenn wir ausführen kubectl run --rm --stdin --tty --image hello-world hello-pod
, wird es von Kubernetes automatisch neu gestartet. Warum vergisst Kubernetes, es zu löschen?
Gleichzeitig kubectl run --rm --stdin --tty --image busybox busy-pod
wird es automatisch gelöscht, wenn wir es ausführen (was völlig legitim zu sein scheint).
Jeder Vorschlag ist willkommen. Vielen Dank.
Antwort1
Der Grund, warum der erste Pod neu gestartet wird, ist, dass dort wahrscheinlich ein Fehler vorliegt und Kubernetes ihn immer wieder neu startet, „in der Hoffnung“, dass das Problem dadurch irgendwann gelöst wird. Wenn Sie das ausführen, erhalten Sie einen „CrashLoopBack“, aber dann löscht Kubernetes ihn irgendwann, aber erst nach einer Weile:
kubectl run --rm --stdin --tty --image hello-world hello-pod
pod "hello-pod" deleted
error: timed out waiting for the condition
Kubernetes löscht den zweiten Pod auch, sobald Sie das TTY verlassen (Strg + D). Und der Grund dafür ist, dass der Prozess endet und Sie die Option „--rm“ hinzugefügt haben, die genau das tut – sie löscht Pods automatisch, wenn der Prozess beendet wird, was in diesem Fall nur bedeutet, das Terminal/Bash/die Shell usw. zu verlassen.