Curiously, I saw that a pod I had had both ready 1/1 status and status terminating
when I ran kubectl get pods
. Are these states not mutually exclusive? Why or why not?
For context, this was noticed immediately after I had killed skaffold
so these pods were in the middle of shutting down.
答案 0 :(得分:4)
吊舱处于终止状态时,它们可能仍在运行。由于多种原因(例如,可能是您已连接PVC,其他吊舱同时被终止,等等),吊舱可能会延迟终止。您可以通过在附有PVC或其他原因导致延迟终止的Pod上运行以下命令来进行测试:
$ kubectl delete pod mypod-xxxxx-xxxxxx
pod mypod-xxxxx-xxxxxx deleted
$ kubectl delete pod mypod-xxxxx-xxxxxx
pod mypod-xxxxx-xxxxxx deleted
$ kubectl apply mypod.yaml
pod mypod-xxxxx-xxxxxx configured
有时会发生这种情况,因为Pod仍处于终止阶段并且运行正常,因此将其视为已配置的现有Pod(忽略了您通常无法像这样配置Pod的事实,但是您得到了重点)。
答案 1 :(得分:3)
“准备就绪”列显示了多少个容器。
状态终止表示控制器不再将任何流量发送到该Pod。来自Automapper:
当用户请求删除Pod时,系统会记录 允许强制启用Pod之前的预期宽限期 被杀死,并且TERM信号被发送到每个 容器。宽限期结束后,将发送KILL信号 这些进程,然后将pod从API服务器中删除。
那是它的状态。容器已经装好,完成了对已经完成的工作的处理,并发送了TERM信号。
答案 2 :(得分:1)
我想更新@nrxr 答案:
<块引用>状态终止意味着控制器不再向该 Pod 发送流量。
这就是我们想要的,但实际上并不总是这样。 Pod 可能会完全终止,而流量仍会转发给它。
有关详细信息,请阅读此博客:https://learnk8s.io/graceful-shutdown。