前言
环境:centos7.9 docker-ce-20.10.9 kubernetes-version v1.22.6
pod的生命周期
pod的生命周期,如图所示:

pod创建过程
1、用户通过kubectl或其他api客户端工具提交需要创建的pod信息给apiserver
2、apiserver开始生成pod对象信息,并将信息存入etcd,然后返回确认信息给客户端
3、apiserver开始反馈etcd中pod对象的变化,其他组件使用watch机制跟踪apiserver上的变动
4、scheduler发现有新的pod对象要创建,开始调用内部算法机制为pod分配主机,并将结果信息更新至apiserver
5、node节点上的kubectl发现有pod调度过来,尝试调用docker启动容器,并将结果反馈apiserver
6、apiserver将收到的pod状态信息存入etcd中。
pod的终止过程
1、用户向apiserver发送删除pod对象的命令
2、apiserver中的pod对象信息会随着时间的推移而更新,在宽限期内(默认30s),pod被视为dead
3、将pod标记为terminating状态
4、kubectl在监控到pod对象为状态了就会启动pod关闭过程
5、endpoint控制器监控到pod对象的关闭行为时将其从所有匹配到此endpoint的server资源endpoint列表中删除
6、如果当前pod对象定义了preStop钩子处理器,则在其被标记为terminating后会意同步的方式启动执行
7、pod对象中的容器进程收到停止信息
8、宽限期结束后,若pod中还存在运行的进程,那

本文详细介绍了Kubernetes中Pod的创建和终止过程,包括从用户提交创建请求到apiserver、scheduler分配节点、容器启动和终止的各个阶段。此外,还讨论了Pod的五种状态,如Pending、Running、Succeeded、Failed和Unknown,以及预停止钩子和宽限期等概念。
1296

被折叠的 条评论
为什么被折叠?



