k8s Pod状态详解

k8s Pod状态详解

在 Kubernetes 中,Pod 是最小的可部署的计算单元,它是一组容器的集合,共享同一个网络命名空间、存储卷等资源。

Kubernetes 中的 Pod 有以下几种状态:

  1. Pending(挂起):Pod 已经被 Kubernetes API 接受,但它的容器镜像还没有被拉取,或者 Pod 所需的节点资源(CPU、内存等)还没有满足。在这个状态中,Pod 是不可调度的。
  2. Running(运行):Pod 已经调度到了节点上并且所有容器都已经创建,至少有一个容器仍在运行中或者在启动过程中。
  3. Succeeded(成功):Pod 中的所有容器都已经正常终止,并且不会再重启。
  4. Failed(失败):Pod 中至少有一个容器已经以非零状态退出。
  5. Unknown(未知):无法获取 Pod 的状态。这种状态通常是由于与 Pod 相关的 API 调用失败或者 Pod 控制器处于错误状态导致的。

除了上述状态之外,Pod还有一些特殊的条件状态,它们记录了 Pod 的一些细节信息,例如 Pod 是否处于调度中、容器镜像是否拉取成功等。这些状态和条件状态可以通过 kubectl describe pod 命令获取,这些条件状态:

  • PodScheduled:表示 Pod 是否已经被调度到了节点上。
  • ContainersReady:表示 Pod 中的所有容器是否已经准备就绪。
  • Initialized:表示 Pod 中的所有容器是否已经初始化。
  • Ready:表示 Pod 是否已经准备就绪,即所有容器都已经启动并且可以接收流量。
  • CrashLoopBackOff: 容器退出,kubelet正在将它重启
  • InvalidImageName: 无法解析镜像名称
  • ImageInspectError: 无法校验镜像
  • ErrImageNeverPull: 策略禁止拉取镜像
  • ImagePullBackOff: 正在重试拉取
  • RegistryUnavailable: 连接不到镜像中心
  • ErrImagePull:通用的拉取镜像出错
  • CreateContainerConfigError: 不能创建kubelet使用的容器配置
  • CreateContainerError: 创建容器失败
  • m.internalLifecycle.PreStartContainer 执行hook报错
  • RunContainerError: 启动容器失败
  • PostStartHookError: 执行hook报错
  • ContainersNotInitialized: 容器没有初始化完毕
  • ContainersNotReady: 容器没有准备完毕
  • ContainerCreating:容器创建中
  • PodInitializing:pod 初始化中
  • DockerDaemonNotReady:docker还没有完全启动
  • NetworkPluginNotReady: 网络插件还没有完全启动
  • Evicte: pod被驱赶

猜你喜欢

转载自blog.csdn.net/Guzarish/article/details/130859011