Open utterances-bot opened 5 years ago
基于AdmissionControl的解决方案太优雅了,对我启发很大,谢谢😄
深受启发,感谢前辈
请问:在提到接收SIGTERM信号后处理会遇到”已经卡死了,处理不了优雅退出的代码逻辑“,这句该怎么理解,一般在什么场景下会发生这种情况,谢谢
好像示意图看不到了
写得很不错,优雅停机很有必要,在开发中遇到过此问题,虽然设置了 k8s容器的最小就绪时间 确保容器发布时已进入 nacos 的健康可用状态,但旧的 pod 进行下线时 k8s 却是直接关闭容器,导致没有优雅停机,nacos 这边得等30秒的健康探测,这30秒会因为 gateway 负载均衡导致部分访问流量不可用。看了文章后有所启发。
后面仔细排查后发现是 spring-cloud-alibaba 中的 dubbo 模块导致该问题,dubbo 优雅下线时没有通知 nacos 导致此问题,问题不是 k8s。已在spring-cloud-alibaba 提交代码进行修复。
pod 状态变成终止中那一刻,网络就被摘除清理,这个时候已经不能与外界进行网络通信了,为什么说可以实现对外部的一些反注册逻辑呢? 这块不太理解
就是要在 pod 完全关闭前,内部的 应用程序需要跟注册中心(自建注册中心,nacos,consul等)的组件进行最后下线通知。不然注册中心 会以为是宕机导致 pod 心跳中断。这样不够优雅,会存在部分业务流量流入已终止的pod中,导致部分流量处理异常。
就是不要 直接 删除掉 pod ,而是正常 pod 关闭,直接强制删除掉 pod 这样内部程序直接终止,走不了自己内部程序的一些下线通知流程
Kubernetes 中如何保证优雅地停止 Pod
https://aleiwu.com/post/tidb-opeartor-webhook/