
Не будет ли кто-нибудь так любезен и укажет мне на документ, объясняющий следующее явление?
Когда мы запускаем kubectl run --rm --stdin --tty --image hello-world hello-pod
, он автоматически перезапускается Kubernetes. Почему Kubernetes забывает его удалить?
В то же время, если мы запустим kubectl run --rm --stdin --tty --image busybox busy-pod
, он автоматически удаляется (что, по-видимому, вполне законно).
Любое предложение приветствуется. Спасибо.
решение1
Причина, по которой первый pod перезапускается, заключается в том, что там, вероятно, есть ошибка, и kubernetes продолжает перезапускать его «в надежде», что это в конечном итоге решит проблему. Когда вы запускаете это, вы получаете 'CrashLoopBack', но затем Kubernetes в конечном итоге удаляет его, но только через некоторое время:
kubectl run --rm --stdin --tty --image hello-world hello-pod
pod "hello-pod" deleted
error: timed out waiting for the condition
Kubernetes удаляет второй pod также в момент выхода из tty (ctrl + D). И причина этого в том, что процесс завершается, а вы добавили опцию '--rm', которая делает именно это — она автоматически удаляет pod, когда процесс завершается, что в данном случае означает просто выход из терминала/bash/shell и т. д.