这是请求帮助吗? (如果是,您应该使用我们的故障排除指南和社区支持渠道,请参阅 http://kubernetes.io/docs/troubleshooting/。):
不
在提交此问题之前,您在 Kubernetes 问题中搜索了哪些关键字? (如果您发现任何重复项,您应该在那里回复。):
这是错误报告还是功能请求? (选一个):
错误报告
Kubernetes 版本(使用kubectl version
):
客户端 1.4.4
集群 1.4.6
环境:
uname -a
):发生了什么:
应用滚动更新,看到新的 Pod 启动并准备好,旧的 Pod 终止。
命中负载均衡器时导致超时。 等待几分钟,流量路由正确。
您期望发生的事情:
流量无缝地路由到新的 Pod。
如何重现它(尽可能最小和精确):
https://gist.github.com/1d668ba12b12f450e8feffb21383ba44
kubectl apply -f deployment.yaml
kubectl get svc
,等待外部IP上来。
观察流量是否正确路由。
编辑一些东西(比如环境变量)
kubectl apply -f deployment.yaml
等待旧的 pod 被终止。 观察超时,直到负载均衡器自行更新。
还有什么我们需要知道的:
我认为默认情况下终止 pod 会导致请求失败,因为 Kubernetes 中没有“连接耗尽”——您必须“及时”手动切换应用程序的就绪探测: https ://github.com/RisingStack/
不确定这是否是您的问题(看不到您的应用程序/Docker 映像的来源)。
应用程序源代码:
https://gist.github.com/d68192f04e3ff50bf9bf7e90ee879077
我将尝试更改源代码以消除请求。 有道理,这可能是问题所在。
确认的。 排水和就绪检查相结合,导致停机时间为零:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596
对错误的报告感到抱歉。
最有用的评论
确认的。 排水和就绪检查相结合,导致停机时间为零:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596
对错误的报告感到抱歉。