我需要像pod2这样的序列启动kubernetes pod,只有当pod1启动并运行时才会启动。
我们可以使用docker-compose.yml
depends_on
中执行此操作
答案 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是否正在运行。