如果另一个Pod重新启动,如何使部署重新启动

时间:2019-01-16 01:24:05

标签: kubernetes azure-aks

我有一个Web部署和一个mongoDB statefulset。 Web部署连接到mongodb,但有时mongodb中可能会发生错误,它会重新启动并启动。从Web部署到mongodb的连接永远不会重新启动。 Web部署中是否有办法?如果mongodb pod重启也可以重启web pod?

2 个答案:

答案 0 :(得分:2)

是的,您可以在应用程序容器上使用liveness probe来探测您的Mongo Pod / StatefulSet。您可以通过以下方式配置它:如果在Mongo崩溃时无法TCP connect到您的Mongo Pod / StatefulSet失败(也许每秒检查一次),它就会失败

请记住,使用这种方法,您将必须始终首先启动Mongo Pod / StatefulSet。

另一个答案中描述的sidecar函数也应该起作用,只是需要更多的配置。

答案 1 :(得分:0)

不幸的是,在Kubernetes中没有简单的方法可以直接做到这一点,因为Kubernetes没有资源之间的依赖关系的概念。

处理此问题的最佳位置是Web服务器容器本身。

理想的解决方案是更新应用程序,以在失败时重试连接。

一个不太理想的解决方案是使用一个随身携带的容器,该容器仅轮询数据库并在数据库关闭时导致故障,这将导致Kubernetes重新启动Pod。