我需要像pod2一样启动kubernetes pod,只有当pod1启动并运行时才会启动。
我们可以使用docker-compose.yml
在depends_on
中做到这一点
不,没有相当于depends_on
可用的内置依赖管理。通常,我们假设松散耦合的服务,并且作为一种良好的实践,在启动顺序方面应该没有硬依赖性,但是应该使用重试和超时。如果必须硬编码依赖项,则可以使用init containers。在您的情况下,pod2
中的初始化容器可以简单地查询pod1
(或更好:它前面的服务)是否在while循环中准备就绪。 pod2
中的主容器只保证在init容器成功退出时启动。
没有直接相当于与Kubernetes原语的依赖关系,作为一种解决方法,您可以实现准备探测,这将使pod2无法使用,直到它看到pod1启动并运行。
你可以使用我建立的这个pod-dependency-init-container
。这将检查在启动pod之前是否有任何具有给定labels
的pod正在运行。