我有一个Web部署和一个mongoDB statefulset。 Web部署连接到mongodb,但有时mongodb中可能会发生错误,它会重新启动并启动。从Web部署到mongodb的连接永远不会重新启动。 Web部署中是否有办法?如果mongodb pod重启也可以重启web pod?
答案 0 :(得分:2)
是的,您可以在应用程序容器上使用liveness probe来探测您的Mongo Pod / StatefulSet。您可以通过以下方式配置它:如果在Mongo崩溃时无法TCP connect到您的Mongo Pod / StatefulSet失败(也许每秒检查一次),它就会失败
请记住,使用这种方法,您将必须始终首先启动Mongo Pod / StatefulSet。
另一个答案中描述的sidecar函数也应该起作用,只是需要更多的配置。
答案 1 :(得分:0)
不幸的是,在Kubernetes中没有简单的方法可以直接做到这一点,因为Kubernetes没有资源之间的依赖关系的概念。
处理此问题的最佳位置是Web服务器容器本身。
理想的解决方案是更新应用程序,以在失败时重试连接。
一个不太理想的解决方案是使用一个随身携带的容器,该容器仅轮询数据库并在数据库关闭时导致故障,这将导致Kubernetes重新启动Pod。