我的目标是什么:
我有一个研究任务,我正在使用 Kubernetes Java 客户端订阅 Kubernetes API 并从所有命名空间(创建、修改、删除)接收有关所有 pod 的事件。我的目标是根据响应中的容器状态进行一些分析。
我在做什么:
我有一个 Kubernetes 1.14 的测试集群。集群在一些节点上运行并旋转一堆 pod。出于测试目的,我选择了在副本集中运行的 2 个 pod。每个 pod 有 1 个容器。重启策略是“始终”。为了不在同一个节点上运行 2 个副本,启用了反关联功能。有时我会从副本集中删除一个随机选择的 pod 并检查响应。我希望 pod 内的容器从 Running 状态切换到 Terminated 状态,pod 终止,新的 pod 启动。
我所面临的:
大多数情况下它按预期工作。但有时容器会从运行状态切换到等待状态,原因是“ContainerCreating”。一段时间后,发现只有将新创建的 pod 分配给已删除的 pod 仍在终止的完全相同的节点时才会发生这种情况。
问题:
为什么容器不将其状态更改为已终止状态?是否有任何目的以另一种方式改变状态?