首页 > 其他分享 >pod的生命周期

pod的生命周期

时间:2025-01-21 19:39:14浏览次数:1  
标签:状态 生命周期 Kubernetes 容器 Running Ready pod Pod

-Pod 的生命周期经历了一系列的状态变化,每个状态反映了 Pod 当前所处的不同阶段。

1. Pending

  • 定义: 当创建一个 Pod 时,它会首先进入 Pending 状态。此时,Kubernetes 正在进行节点调度、容器镜像拉取或等待资源准备。
  • 原因: Pod 可能尚未被调度到特定的 Node 上,或者其依赖的卷(Volumes)尚未准备好。

2. ContainerCreating

  • 定义: 一旦 Pod 被调度到某个 Node 并开始执行容器创建操作,但容器尚未成功启动时,Pod 进入 ContainerCreating 状态。
  • 原因: 容器正在初始化或拉取容器镜像,可能需要一些时间来完成这些任务。

3. Running

  • 定义: 当 Pod 中的所有容器都已成功启动并开始运行时,Pod 会进入 Running 状态。
  • 注意: 进入 Running 状态并不意味着容器已经通过健康检查(如 liveness probe 和 readiness probe)。容器可能仍然在处理启动过程中的健康检查。

4. Ready

  • 定义:Running 状态的基础上,Pod 只有在其所有容器通过了 readiness probe 检查后,才会进入 Ready 状态。
  • 作用: 只有处于 Ready 状态的 Pod 才能接收流量。Kubernetes 中的 Service 会将请求路由到那些处于 Ready 状态的 Pod。

5. Succeeded

  • 定义: 对于一次性任务型的 Pod(如通过 Job 创建的 Pod),如果 Pod 内的主容器完成了任务并且退出代码为 0(表示成功),则 Pod 会进入 Succeeded 状态。
  • 场景: 一次性任务完成后,Pod 状态标记为 Succeeded,表示任务已经成功完成并退出。

6. Failed

  • 定义: 如果 Pod 内的容器由于错误终止(退出码非 0),或重启次数超过了重启策略允许的最大值,Pod 将进入 Failed 状态。
  • 场景: 一次性任务型 Pod 如果以非零退出码结束,也会进入 Failed 状态。此时任务未成功完成,可能需要进行重新调度或查看日志来排查问题。

7. Unknown

  • 定义:kubelet 无法获取 Pod 的状态信息时,Pod 会被标记为 Unknown
  • 原因: 这通常是由于与 kubelet 的通信问题,导致集群无法获取 Pod 的真实状态。

总结

Kubernetes 通过持续监控和管理 Pod 的状态,确保集群资源的健康和稳定。每个状态代表 Pod 在生命周期中的不同阶段,并帮助 Kubernetes 管理和调度任务:

  • PendingContainerCreating 状态标识 Pod 尚在准备过程中。
  • RunningReady 表示 Pod 已经准备好运行且可以接受流量。
  • SucceededFailed 标识任务的成功或失败,特别适用于一次性任务。
  • Unknown 是一个异常状态,通常反映出与 kubelet 通信的问题。

Kubernetes 控制器组件会根据 Pod 所处的不同状态采取适当的操作,例如自动重启容器、重新调度 Pod 等。

标签:状态,生命周期,Kubernetes,容器,Running,Ready,pod,Pod
From: https://www.cnblogs.com/leojazz/p/18684159

相关文章

  • Pod的类型
    在Kubernetes中,Pod可以根据其创建和管理的方式分为不同的类型,主要包括静态Pod、自主式Pod和动态Pod。它们之间的主要区别体现在生命周期管理、控制方式和自动恢复等方面。1.静态Pod管理方式:由kubelet直接管理,而不是由Kubernetes控制平面中的APIServer或控制器......
  • bean的生命周期
    bean的生命周期bean的生命周期指的就是bean从创建到销毁的过程初始化容器创建对象(内存分配)执行构造方法执行属性注入(set操作)执行bean初始化方法使用bean执行业务操作关闭/销毁容器执行bean的销毁方法管理bean的生命周期有两种方式,一种通过xml配置,一种通过......
  • Pod的创建流程
    执行流程执行命令连接APIServer:用户执行命令(例如创建RC资源),系统会加载位于$HOME/.kube/config的证书文件来验证与APIServer的连接。假设用户正在创建一个副本数量为5的ReplicationController(RC)。此时,Pod状态为Pending,说明Pod尚未调度到集群中的节点。APISer......
  • Pod数量的扩缩容
    在K8s中,Pod的扩容和自动扩容是帮助实现弹性伸缩和高可用性的关键功能。1.水平扩容(HorizontalScaling)水平扩容通过增加多个相同配置的Pod来应对增加的流量或负载。与垂直扩容不同,水平扩容是通过在集群中分布更多相同的资源来实现的。手动水平扩容:通过命令kubectl......
  • Pod调度方式(下)
    6.Pod调度之nodeSelector1.作用nodeSelector是Kubernetes的一种简单的节点调度策略,通过基于节点的标签来调度Pod。每个节点可以拥有多个标签,nodeSelector用来选择具有特定标签的节点。2.实战案例2.1给节点打标签在这个案例中,我们给所有节点都打上了一个school=oldb......
  • Kubeadm 启动原理之静态 Pod 技术
    Kubeadm启动原理之静态Pod技术1.作用静态Pod是一种特殊的KubernetesPod类型,允许你在不通过kubectl命令来创建Pod的情况下,通过直接将Pod资源清单放置在Kubelet可识别的目录中来创建Pod。Kubelet会定期检查该目录并自动管理这些Pod。对于kubeadm部署方式来......
  • Unity常用生命周期方法
    1.Awake()作用:Awake()是Unity脚本中的一个生命周期方法,在脚本实例化时被调用。它通常用于进行初始化操作,比如设置初始状态、引用其他组件等。调用时机:Awake()在对象激活的时刻调用,并且它会在场景中的所有对象的Start()方法之前执行。Awake()只会在脚本或物体第一次......
  • 什么是项目的生命周期?
    项目一定有始有终,从启动到完成的时间段称为项目的生命周期(LifeCycle)。不同的项目,其生命周期的特性也会有所不同,但一般而言都具有如下特征:●成本与资源的投入在项目开始时较低,在执行阶段逐渐增加,并在项目快要结束时迅速回落。●项目的风险/不确定性在开始时最大,随着决策的......
  • jest.spyOn 如何监听vue的 created生命周期
    jest.spyOn是Jest测试框架提供的一个功能,用于创建一个间谍(spy)来监视对象上的方法调用。然而,直接使用jest.spyOn来监听Vue组件的生命周期钩子如created并不是最直观的方法,因为这些钩子并不是组件实例上的公开方法,而是由Vue框架内部管理的。为了测试Vue组件的生命周期......
  • 计算机毕业设计Springboot新能源产品管理系 基于Springboot的新能源产品全生命周期管
    计算机毕业设计Springboot新能源产品管理系统94pp5688(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着全球能源危机和环境问题的日益严重,各国政府纷纷提出新能源发展战略,以降低对化石能源的依赖,减少温室气体排放,实现可持续发展......