我有一个web部署和一个mongoDB状态集。web部署连接到mongodb,但有时mongodb中可能会发生错误,它会重新启动。从web部署到mongodb的连接永远不会重新启动。在web部署中有没有办法。如果mongodb pod也重启web pod呢?
发布于 2019-01-16 12:07:54
是的,您可以在应用程序容器上使用liveness probe来探测Mongo Pod/StatefulSet。你可以这样配置它,当Mongo崩溃时,如果它无法TCP connect到你的Mongo Pod/StatefulSet,它就会失败(可能每秒检查一次)
请记住,使用这种方法时,您必须始终首先启动Mongo Pod/StatefulSet。
另一个答案中描述的sidecar函数也应该可以工作,只是需要更多的配置。
发布于 2019-01-16 09:33:21
不幸的是,在Kubernetes中没有直接做到这一点的简单方法,因为Kubernetes没有资源之间的依赖关系的概念。
处理此问题的最佳位置是web服务器pod本身。
理想的解决方案是更新应用程序以在失败时重试连接。
一种不太理想的解决方案是有一个侧车容器,它只轮询数据库,并在数据库关闭时导致故障,这应该会导致Kubernetes重新启动pod。
https://stackoverflow.com/questions/54209191
复制相似问题