k8s--pod创建、销毁流程

文章目录


一、pod创建流程

yaml 复制代码
1、用户通过kubectl或其他api客户端提交pod spec给apiserver,然后会进行认证、鉴权、变更、校验等一系列过程

2、apiserver将pod对象的相关信息最终存入etcd中,待写入操作执行完成,apiserver会返回确认信息给客户端

3、apiserver开始反应etcd的状态变化

4、controller-manager组件使用watch接口来跟踪检查apiserver上的相关变动。有以下两个过程:
	1)、先是deployment controller监听到deployment的创建事件,然后进行相关的处理,最后创建replicas
	2)、然后 replicaset controller 监听到 replicaset 的创建事件,进行相关处理后,最后创建 pod

5、kube-scheduler通过其watch接口察觉到apiserver创建了新的pod对象但尚未绑定至任何工作节点

6、kube-scheduler为pod对象挑选一个工作节点并将结果信息更新至apiserver

7、调度结果信息由apiserver更新到etcd中,同时apiserver开始反映pod对象的调度结果

8、pod被调度到目标工作节点上的kubelet尝试在当前节点上执行以下步骤(grpc协议):
	1)、调用CNI容器网络接口给pod分配ip地址创建网络,
	2)、调用CRI容器运行时接口去拉取镜像、创建并启动容器,
	3)、调用CSI容器存储接口,负责与外部存储提供者通信,进行存储卷的挂载,并将容器状态结果返回给apiserver

9、apiserver将pod状态信息存入etcd中

10、在etcd确认写入操作成功完成后,apiserver将确认信息发给相关的kubelet来调动docker创建容器

二、pod销毁流程

yaml 复制代码
用户提交请求后系统即会进行强制删除操作的宽限期倒计时,并将TERM信号发送给Pod对象中每个容器的主进程。

宽限期倒计时结束后,这些进程将收到强制终止的KILL信号,Pod对象也随即由APIServer删除。

如果在等待进程终止的过程中kubelet或容器管理器发生了重启,则终止操作会重新获得一个满额的删除宽限期并重新执行删除操作
yaml 复制代码
1、用户发出删除pod命令

2、api服务器中的pod对象会随着时间的推移而更新

3、将pod标记为terminating状态

4、kubelet在监控到pod对象转为terminating状态的同时启动pod关闭过程

5、端点控制器监控到pod对象的关闭行为时将其从所有匹配到此端点的service资源的端点(endpoint)列表中移除

6、如果pod定义了prestop钩子处理器,则其标记为terminating后会以同步的方式启动执行;若宽限期结束后,prestop仍未结束,
	则第二步会被重新执行并额外获取一个时长2s的小宽限期

7、pod对象中的容器进程收到TERM信号

8、宽限期结束后,若存在任何一个仍在运行的进程,那么pod对象即会收到sigkill信号

9、kubelet请求apiserver将此pod资源的宽限期设置为0从而完成删除操作。
相关推荐
Gofarlic_oms17 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
档案宝档案管理8 小时前
权限分级管控,全程可追溯,筑牢会计档案安全防线
运维·网络·人工智能
倔强的石头10610 小时前
【Linux指南】基础IO系列(八):实战衔接 —— 给微型 Shell 添加完整重定向功能
linux·运维·服务器
观北海10 小时前
AiScan-N:AI全自动化渗透测试工具的深度技术解析
运维·自动化
Ujimatsu10 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu
Dillon Dong11 小时前
【系列主题】Next.js 16 + Turbopack 的暗礁:深入剖析 Tailwind v4 的 CSS 模块解析陷阱
javascript·css·容器·turbopack
Agent产品评测局13 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
狂奔的sherry13 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器
志栋智能13 小时前
超自动化巡检:让合规与审计变得轻松简单
运维·网络·人工智能·自动化
小黑要努力13 小时前
智能音箱遇到的问题(一)
linux·运维·git