读书笔记-Pod生命周期、重启策略、创建过程和终止过程

本文详细介绍了Kubernetes Pod的生命周期,包括Pending、Running、Succeeded、Failed、Unknown等状态及其转换。同时,解释了Pod的三种重启策略:Always、OnFailure、Never,并阐述了不同控制器对重启策略的要求。此外,还详细解析了Pod的创建和终止过程,包括预停止钩子、宽限期等关键环节。
摘要由CSDN通过智能技术生成

 

Pod生命周期

Pod的状态
状态值描述
PendingAPI Server已经创建该Pod,但在Pod内还有一个或多个容器的镜像没有创建,包括正在下载镜像的过程
RunningPod内所有容器均已创建,且至少有一个容器处于运行状态、正在启动状态或正在重启状态
SucceededPod内所有容器均成功执行后退出,且不会在重启
FailedPod内所有容器均已退出,但至少有一个容器退出为失败状态
Unknown由于某种原因无法获取该Pod的状态,可能由于网络通信不畅所致

Pod的重启策略(RestartPolicy)

Always:当容器失效时,有kubelet自动重启改容器。

OnFailure:当容器终止运行切退出码不为0是,由kubelet自动重启改容器。

Never: 不论容器运行状态如何,kubelet都不会重启该策略。

每种控制器对Pod的重启策略要求如下:

RC和DaemonSet:必须设置为Always,需要保证该容器持续运行。

Job: OnFailuer或Never,确保容器执行完成后不再重启。

kubelet:在Pod失效时自动重启它,不论RestartPolicy设置为什么值,也不会对Pod进行健康检查。

Pod的创建过程

  1. 用户通过kubectl或其他API客户端提交Pod Spec给API Server。
  2. API Server尝试着将Pod对象的相关信息存入etcd中,待写入操作执行完成,API Server即会返回确认信息至客户端。
  3. API Server 开始反映etcd中的状态变化。
  4. 所有的Kubenetes组件均使用"watch"机制来跟踪检查API Server上的相关变动。
  5. kube-schedulre(调度器)通过其”watcher“觉察到API Server创建了新的Pod对象对尚未绑定至任何工作节点。
  6. kube-scheduler为Pod对象挑选一个工作节点并将结果信息更新至API Server。
  7. 调度结果信息由API Server更新至etcd存储系统,而且API Server也开始反映此Pod对象的调度结果。
  8. Pod被调度到的目标工作节点上的kubelet尝试在当前节点上调用Docker启动容器,并将容器的结果状态回送至API Server。
  9. API Server将Pod状态信息存入etcd中。
  10. 在etcd确认写入操作成功完成后,API Server将确认信息发送至相关kubelet,事件将通过它被接受。

Pod的终止过程

  1. 用户发送删除Pod对象的命令。
  2. API Server服务器中的Pod对象会随着时间的推移而更新,在宽限期内(默认为30秒),Pod被视为”dead“。
  3. 将Pod标记为”Terminating“状态。
  4. (与第3步同时运行)kubelet在监控到Pod对象转为”Terminating“状态的同时启动Pod关闭过程。
  5. (与第3步同时运行)端点控制器监控到Pod对象的关闭行为时将其从所有匹配到此端点的Service资源的端点列表中移除。
  6. 如果当前Pod对象定义了preStop钩子处理器,则在其标记为"terminating"后即会以同步的方式启动执行;如若宽限期结束后,preStop仍未执行结束,则第2步会被重新执行并额外获取一个时长为2秒的小宽限期。
  7. Pod对象中的容器进程收到TERM信号。
  8. 宽限期结束后,若存在任何一个仍在运行的过程,那么Pod对象即会收到SIGKILL信号。
  9. Kubelet请求API Server将此Pod资源的宽限期设置为0 从而完成删除操作,它变得对用户不再可见。

默认情况下,所有删除操作的宽限期都是30秒,不过, kubectl delete 命令可以使用”--grace-period=<seconds>“选项自定义其时长,若使用0值则表示直接强制删除指定的资源,不过,此时需要同时为命令使用”--force“选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值