如何在kubernetes中添加pod依赖,就像在' depends_on'在docker-compose.yml中

时间:2018-05-17 06:56:05

标签: docker kubernetes devops kubernetes-helm

我需要像pod2这样的序列启动kubernetes pod,只有当pod1启动并运行时才会启动。

我们可以使用docker-compose.yml

depends_on中执行此操作

3 个答案:

答案 0 :(得分:2)

不,没有与depends_on等效的内置依赖关系管理。通常,我们假设松散耦合的服务,并且作为一种良好的实践,在启动顺序方面应该没有硬依赖性,但是应该使用重试和超时。如果必须对依赖项进行硬编码,则可以使用init containers。在您的情况下,pod2中的初始化容器可以简单地查询pod1(或更好:它前面的服务)是否在while循环中准备就绪。只有在init容器成功退出时才会启动pod2中的主容器。

答案 1 :(得分:0)

Kubernetes原语并不直接依赖于此,作为一种解决方法,您可以实现一个就绪探针,该探针将使pod2无法使用,直到它看到pod1正常运行为止。

答案 2 :(得分:0)

您可以使用我构建的pod-dependency-init-container。这将在启动您的pod之前检查具有给定labels的pod是否正在运行。