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

标签 mongodb docker kubernetes docker-compose openshift

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

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

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

  • 在创建mongodb部署并递归调用API以检查其状态(是否正在运行)之后,我延迟了一段时间。
  • 就像我们在docker-compose中使用键进行更改一样,depend-on告诉docker-compose首先应启动所有依赖项,然后再启动依赖项容器。

  • Openshift有什么方法可以实现?

    最佳答案

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

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

    关于mongodb - 等待其他部署开始运行,然后再创建其他部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50324677/

    相关文章:

    php - Docker、PHP PDO 和单个 MySQL 容器(无法通过容器名称连接)

    kubernetes - Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况

    go - kubernetes helm golang 客户端上的示例

    node.js - 错误 : text search not enabled:- in mongodb

    javascript - 通过输入表单查询 MongoDB

    javascript - MongoDB聚合框架: Using dynamic javascript variables in Project "key" field

    sql-server -/opt/mssql/bin/sqlservr : This program requires a machine with at least 2000 megabytes of memory

    oracle - 无法连接到在Docker容器中运行的oracledb

    spring-boot - 如何配置 Redis Kubernetes 部署,以便在 master 宕机时让 Slave redis pod 接管?

    mongodb - 如何使用 sort 索引 $or 查询