5

基本上,我需要在 API 部署之前启动数据库部署。如果数据库没有运行,它会在 API 中引发错误。

我已经弄乱了订单artifacts:和:

deploy:
  kubectl:
    manifests:
      - manifests/ingress.yaml 
      - manifests/postgres.yaml      
      - manifests/client.yaml
      - manifests/api.yaml

但这似乎与他们启动的顺序没有任何关系。

我唯一能想到的是它是按字母顺序排列的。我以前没有问题:数据库会在 api 之前 49/50 启动。现在情况正好相反。我唯一改变的是一台新计算机,我将它重命名为按字母顺序排列在第一位server的计算机。api

所以两个问题:

  1. Skaffold 中的部署顺序是如何确定的?
  2. 有没有办法设置顺序?
4

1 回答 1

3

我必须做的是在文件部分设置一个readinessProbelivenessProbe可选,用于连续寿命检查)。containers*.yaml

          livenessProbe:
            tcpSocket:
              port: 5000
            initialDelaySeconds: 2
            periodSeconds: 2
          readinessProbe:
            tcpSocket:
              port: 5000
            initialDelaySeconds: 2
            periodSeconds: 2

这会寻找 Django 失败(即无法连接到数据库),如果失败,它会继续尝试重新部署它,直到它没有。这是我能找到的唯一方法。

于 2020-01-30T23:17:58.860 回答