Kubernetes: RollingUpdate 后 LoadBalancer 延迟路由到 pod

创建于 2016-12-05  ·  3评论  ·  资料来源: kubernetes/kubernetes

这是请求帮助吗? (如果是,您应该使用我们的故障排除指南和社区支持渠道,请参阅 http://kubernetes.io/docs/troubleshooting/。):

在提交此问题之前,您在 Kubernetes 问题中搜索了哪些关键字? (如果您发现任何重复项,您应该在那里回复。):

https://github.com/kubernetes/kubernetes/issues?page=3&q=is%3Aissue+is%3Aopen+loadbalancer+update&utf8=%E2%9C%93


这是错误报告还是功能请求? (选一个):
错误报告

Kubernetes 版本(使用kubectl version ):
客户端 1.4.4
集群 1.4.6

环境

  • 云提供商或硬件配置:GKE
  • 操作系统(例如来自 /etc/os-release):
  • 内核(例如uname -a ):
  • 安装工具
  • 其他
    3节点集群

发生了什么
应用滚动更新,看到新的 Pod 启动并准备好,旧的 Pod 终止。
命中负载均衡器时导致超时。 等待几分钟,流量路由正确。

您期望发生的事情
流量无缝地路由到新的 Pod。

如何重现它(尽可能最小和精确):
https://gist.github.com/1d668ba12b12f450e8feffb21383ba44

kubectl apply -f deployment.yaml
kubectl get svc ,等待外部IP上来。
观察流量是否正确路由。

编辑一些东西(比如环境变量)
kubectl apply -f deployment.yaml
等待旧的 pod 被终止。 观察超时,直到负载均衡器自行更新。

还有什么我们需要知道的

最有用的评论

确认的。 排水和就绪检查相结合,导致停机时间为零:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596

对错误的报告感到抱歉。

所有3条评论

我认为默认情况下终止 pod 会导致请求失败,因为 Kubernetes 中没有“连接耗尽”——您必须“及时”手动切换应用程序的就绪探测: https ://github.com/RisingStack/

不确定这是否是您的问题(看不到您的应用程序/Docker 映像的来源)。

应用程序源代码:
https://gist.github.com/d68192f04e3ff50bf9bf7e90ee879077

我将尝试更改源代码以消除请求。 有道理,这可能是问题所在。

确认的。 排水和就绪检查相结合,导致停机时间为零:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596

对错误的报告感到抱歉。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

arun-gupta picture arun-gupta  ·  3评论

mml picture mml  ·  3评论

rhohubbuild picture rhohubbuild  ·  3评论

sjenning picture sjenning  ·  3评论

chowyu08 picture chowyu08  ·  3评论