Kubernetes 中的 ContainerCreating 是什么?

Kubernetes 中的 ContainerCreating 是什么?

更新 Kubernetes RollingUpdate 部署时,kubectl get pods显示一些 pod 在该状态停留了几分钟,ContainerCreating然后才转为Running。不幸的是,有关 pod 状态的官方文档并未将此作为文档状态。即使是 Kubernetes 代码库仅两次提到该术语,并且都没有任何解释性的评论。

我一直在做一些调整滚动更新部署配置值maxUnavailablemaxSurge)和探针配置initialDelaySeconds),并且我不确定这些值影响的容器启动时间是部分状态ContainerCreating还是其他状态。

答案1

ContainerCreating当集装箱数量小于或等于0时适用该状态。

综合的

根据问题中定义的代码片段状态ContainerCreating似乎是default waiting state。只有是hasInitContainers才会true成为defaultWaitingStatePodInitializing这也表明问题中也提到的测试. 如果without-old-recordwith-old-recordsomething elseContainerStateReason: startWaitingReason,"ContainerCreating"

hasInitContainers

https://github.com/kubernetes/kubernetes/blob/427dfd5ce1483ead29568bf7c05a98c4c0ad081c/pkg/kubelet/kubelet_pods.go#L1256

  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,
)

相关内容