initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', "until nslookup myservice; do echo waiting for myservice; sleep 2; done"]
我正在使用nslookup等到另一个服务出现。但是,这不能解决我的问题。随着服务的出现,但相应的应用程序-pod可能尚未就绪。在这种情况下,服务依赖项将无法处理。
如何在启动app2之前确保一个app1正在运行?
答案 0 :(得分:1)
我过去在docker-compose上遇到过类似的问题。我曾经用两种方法来解决它们。他们两个都假设服务将公开一个端口以供监听。
command
类似于:
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', "until timeout 2 bash -c \"</dev/tcp/myservice/${MY_SERVICE_TCP_PORT}\"; do echo waiting for myservice; sleep 2; done"]