在k8S中,Pod生命周期是什么?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 在k8S中,Pod生命周期是什么?

在Kubernetes (k8s) 中,Pod是应用的最小可部署单元,它包含了至少一个容器以及存储资源和网络标识符。Pod的生命周期从创建开始,经历一系列阶段直至最终终止或被删除。以下是Pod生命周期的主要阶段:

  1. 创建(Creation)
  • 用户通过创建一个新的Pod对象来请求Kubernetes调度器为Pod分配资源。
  • Kubernetes系统会赋予Pod一个唯一的ID(UID)。
  1. 调度(Scheduling)
  • Pod被提交到集群后,调度器根据节点资源可用性和Pod的资源需求、亲和性/反亲和性规则等选择合适的节点,并将Pod绑定到该节点上。
  1. 初始化容器启动(Init Containers Execution)
  • 若Pod定义中包含初始化容器(init containers),这些容器会在主容器启动前按顺序执行,用于设置运行主容器所需的条件或环境。
  1. 镜像拉取(Image Pulling)
  • 主容器对应的镜像如果没有在节点上,则kubelet负责从注册表中拉取镜像。
  1. 容器创建与运行(Container Creation and Running)
  • kubelet根据Pod Spec创建并启动主容器。
  • 容器状态会经历从Pending(等待中)到Running(运行中)的变化。
  1. 健康检查与就绪检测(Liveness and Readiness Probes)
  • 在容器运行期间,kubelet可以配置并执行健康检查(liveness probes)和就绪检查(readiness probes)以确保容器正常工作。
  • Liveness Probe用于判断容器是否存活,若失败则可能重启容器。
  • Readiness Probe用于决定容器是否准备好接收流量,只有当容器处于ready状态时,Service才会将其添加到服务端点列表中。
  1. 重启策略(Restart Policy)
  • 根据Pod的重启策略(AlwaysOnFailureNever),kubelet会决定在容器退出时应采取何种行动。
  1. 清理(Termination)
  • 当Pod被删除或者由于某种原因需要终止时,kubelet会按照预定义的优雅关闭策略通知容器停止服务,并等待一段时间让容器完成任何必要的清理操作。
  • 清理完成后,kubelet会真正删除Pod及其相关的容器实例和其他资源。
  1. 终止(Terminated)
  • Pod完全从节点上移除,不再占用任何资源。

综上所述,整个Pod生命周期由Kubernetes系统自动管理,每个阶段都体现了对容器化应用程序生命周期精细控制的能力。


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
JSON Kubernetes Shell
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
|
2月前
|
Kubernetes Shell Perl
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
|
13天前
|
Kubernetes API 调度
k8s中节点无法启动Pod
【10月更文挑战第3天】
48 6
|
19天前
|
Prometheus Kubernetes 监控
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用
|
13天前
|
存储 Kubernetes Perl
K8S中Pod启动异常
【10月更文挑战第3天】
28 2
|
15天前
|
应用服务中间件 调度 nginx
Kubernetes的Pod调度:让你的应用像乘坐头等舱!
Kubernetes的Pod调度:让你的应用像乘坐头等舱!
|
19天前
|
Kubernetes API 调度
k8s学习--pod的所有状态详解(图例展示)
k8s学习--pod的所有状态详解(图例展示)
|
19天前
|
Kubernetes 应用服务中间件 nginx
k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA策略应用案例
k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA策略应用案例
|
29天前
|
Kubernetes Docker Python
dockercompose与k8s的pod文件的爱恨情仇
dockercompose与k8s的pod文件的爱恨情仇
|
15天前
|
JSON Kubernetes API
在K8S中,什么是静态Pod?
在K8S中,什么是静态Pod?