通过google-kubernetes-engine进行的部署:内部服务器错误[500](Google云平台)

问题描述 投票:2回答:1

我正在使用Helm图表在google-kubernetes-engine上进行部署,并在其中使用滚动更新。

目前,我正在运行10个吊舱。当我使用rolling-update进行部署时,我希望出现一个新的Pod,并且停止从旧Pod断开的流量,然后将其正常断开。等等,接下来的豆荚。

但是在我的情况下,当创建一个新的Pod时,旧Pod立即关闭,对于该Pod满足的请求,我开始获得Internal Server Error [500]

如何避免这种情况?

kubernetes google-cloud-platform deployment google-kubernetes-engine kubernetes-helm
1个回答
0
投票

听起来您需要调整滚动更新策略。您可以找到类似的讨论herehere,这些讨论涉及执行滚动更新而不会出错。

升级策略对于定义在更新期间可以拥有多少个不可用的Pod很重要。对于现在的停机时间,您可能需要将此设置为0并配置一个合理的maxSurge值。

下一步是确保已配置适当的readinessProbes。一旦将新容器标记为就绪,控制器将尝试删除一个(或多个)旧容器。您的广告连播会收到一个SIGTERM,然后继续处理它,但已配置为这样做。这意味着:

A)确保只有在Pod完全能够接受流量后才将Pod标记为就绪(即使应用程序没有运行,它也可能会运行,请确保情况并非如此)。

B]您的旧Pod需要正确且优雅地处理SIGTERM,这是在应用程序层完成的。请记住,默认情况下,一旦发送SIGTERM,控制器将允许Pod正常关闭。

© www.soinside.com 2019 - 2024. All rights reserved.