等待其他部署开始运行,然后再创建其他部署?

Ayu*_*jha 1 mongodb openshift docker kubernetes docker-compose

我正在使用REST API创建部署/服务。我发送带有包含JSON对象的正文的POST请求,该JSON对象在Openshift上创建应用程序。在调用所有API之后,这些对象将被实例化。

我有2个依赖于mongodb部署的部署,但是此mongodb需要花费一点时间才能开始运行,而依赖mongodb的两个部署则更早开始运行。由于mongodb连接失败(因为它尚未启动),因此这会破坏2个部署中的代码。

有2种可能的方法可以解决此问题。

  1. 在创建mongodb部署后,我延迟了一段时间,然后递归调用API以检查其状态(如果它没有运行)。

  2. 就像我们在docker-compose中进行更改一样,使用键depends-on告诉docker-compose首先应启动所有依赖项,然后再启动依赖项容器。

Openshift有什么方法可以实现?

小智 5

无需为依赖项处理实现复杂的逻辑,而应使用Kubernetes的运行状况检查机制。如果您的应用程序启动但看不到Mongo DB,请使其崩溃。在Mongo DB联机之前,Kubernetes将继续重新启动它,并且您的应用程序将正常运行并可以正常运行。Kubernetes不会将流量发送到尚未正常运行的实例。

文件:https//kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/