整体概况分析
- 基于 k8s 1.19 版本分析
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h6S3bs1J-1692352728103)(img/nodelifecycle笔记/image-20230818164014721.png)]](https://i-blog.csdnimg.cn/blog_migrate/3d6532b1e5184060e41314b580510940.png)
TaintManager 与 非TaintManager
- TaintManager 模式
- 发现 Node Unhealthy 后(也就是 Node Ready Condition = False 或 Unknown),会更新 Pod Ready Condition 为 False(表示 Pod 不健康),也会给 Node 打上 NoExecute Effect 的 Taint
- 之后 TaintManager 根据 Pod 的 Toleration 判断,是否有设置容忍 NoExecute Effect Taint 的 Toleration
- 没有 Toleration 的话,就立即驱逐
- 有 Toleration ,会根据 Toleration 设置的时长,定时删除该 Pod</
本文基于k8s 1.19版本,详细分析了Pod漂移的过程,包括TaintManager和非TaintManager模式下Pod的驱逐策略。TaintManager在检测到Node Unhealthy后,会更新Pod状态并打上Taint,依据Toleration决定是否立即驱逐或定时删除。非TaintManager模式下,会等待一段时间后驱逐Node上的所有Pod。文中还介绍了MonitorNodeHealth、TaintManger.Run等关键流程,并探讨了不同模式下的Pod驱逐逻辑。
订阅专栏 解锁全文
500

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



