这篇文章主要讲解了“Pod退出的流程是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pod退出的流程是怎样的”吧!
用户删除 Pod。
2.1. Pod 进入 Terminating 状态。
2.2. 与此同时,K8s 会将 Pod 从对应的 service 上摘除。
2.3. 与此同时,针对有 PreStop Hook 的容器,kubelet 会调用每个容器的 PreStop Hook,假如 PreStop Hook 的运行时间超出了 grace period(在 Pod 的 .spec.terminationGracePeriodSeconds 字段中定义),kubelet 会发送 SIGTERM 并再等 2 秒。
2.4. 与此同时,针对没有 PreStop Hook 的容器,kubelet 发送 SIGTERM。
grace period 超出之后,kubelet 发送 SIGKILL 干掉尚未退出的容器。
因此,K8s 的 Pod 终止流程中还有一个“最多可以容忍的时间”,即 grace period(在 Pod 的 .spec.terminationGracePeriodSeconds 字段中定义),这个值默认是 30 秒,我们在执行 kubectl delete 的时候也可通过 --grace-period 参数显式指定一个优雅退出时间来覆盖 Pod 中的配置。而当 grace period 超出之后,K8s 就只能选择 SIGKILL 强制干掉 Pod 了。
---------------------
k8s版本 1.11.2
terminationGracePeriodSeconds :300
lifecycle:
preStop:
exec:
command: ["/bin/bash", "-c", "sleep 300"]
设置相同效果是:30s
设置不同以terminationGracePeriodSeconds > preStop sleep 。
以 preStop sleep为准
=================对外提供服务的============================
terminationGracePeriodSeconds =360
preStop sleep=300
==================task任务类型的=================
terminationGracePeriodSeconds =3
preStop sleep=2
感谢各位的阅读,以上就是“Pod退出的流程是怎样的”的内容了,经过本文的学习后,相信大家对Pod退出的流程是怎样的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。