在 Kubernetes 部署中指定依赖

Jit*_*dra 5 kubernetes

我有两个 kubernetes 部署,说后端和前端。前端部署取决于后端部署。意味着在后端部署 pod 准备好之后,应该创建前端的 pod。如何在部署 yaml 中指定它?

Art*_*aev 7

您正在寻找的解决方案是Init container。Pod 可以有一个或多个 Init 容器,它们在主 Pod 容器启动之前一个接一个地运行。请注意,每个 Init 容器都会运行直到完成。

因此,您可以使用 Init 容器来检查后端应用程序的可用性。下面是一个例子:

apiVersion: v1
kind: Pod
metadata:
  name: front-end
  labels:
    app: front-end
spec:
  containers:
  - name: front-end
    image: node:boron
  initContainers:
  - name: init-backend
    image: busybox
    command: ['sh', '-c', 'until <put check condition for your back-end>; do echo waiting for back-end; sleep 2; done;']
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以查看文档