更新 Kubernetes RollingUpdate 部署时,kubectl get pods
显示一些 pod 在该状态停留了几分钟,ContainerCreating
然后才转为Running
。不幸的是,有关 pod 状态的官方文档并未将此作为文档状态。即使是 Kubernetes 代码库仅两次提到该术语,并且都没有任何解释性的评论。
我一直在做一些调整滚动更新部署配置值(maxUnavailable
和maxSurge
)和探针配置(initialDelaySeconds
),并且我不确定这些值影响的容器启动时间是部分状态ContainerCreating
还是其他状态。
答案1
ContainerCreating
当集装箱数量小于或等于0时适用该状态。
综合的
根据问题中定义的代码片段状态ContainerCreating
似乎是default waiting state
。只有是hasInitContainers
才会true
成为defaultWaitingState
。PodInitializing
这也表明问题中也提到的测试. 如果without-old-record
,with-old-record
或something else
将ContainerState
是Reason: startWaitingReason,
即"ContainerCreating"
hasInitContainers
apiPodStatus.ContainerStatuses = kl.convertToAPIContainerStatuses( pod, podStatus, pod.Status.ContainerStatuses, pod.Spec.Containers, len(pod.Spec.InitContainers) > 0, false, ) apiPodStatus.InitContainerStatuses = kl.convertToAPIContainerStatuses( pod, podStatus, pod.Status.InitContainerStatuses, pod.Spec.InitContainers, len(pod.Spec.InitContainers) > 0, true, )