如何定义一个pod到另一个pod的排序或依赖

时间:2017-09-01 05:34:01

标签: openshift

在docker compose中,我们有“depends_on”标签,用于定义一个容器在另一个容器上的依赖性。 例如:

peer0.org1.example.com:
container_name: peer0.org1.example.com
.
.
.
depends_on:
  - orderer.example.com
  - couchdb

openshift中是否有类似的方式来定义依赖?

2 个答案:

答案 0 :(得分:2)

一种选择是使用Readiness Probes来检查任何依赖项,例如通过进行HTTP调用来检查所需的pod是否已启动。当这些探测失败时,pod不会出现在相应服务的端点中,因此不会以这种方式接收任何流量 - 例如通过Ingress。一旦相关的pod已启动,那么您的pod也将被视为可用。

答案 1 :(得分:1)

首先,您应该构建服务,以便可以按任何顺序启动它们。

在Kubernetes中,在进入启动之前确保另一个服务处于活动状态的方法之一是等待initContainer中的可用性。

世界并不理想,有时你确实需要依赖,但是Mirantis在K8S上部署OpenStack控制平面时遇到了这个问题,导致了https://github.com/Mirantis/k8s-AppController