5

基本的に、API をデプロイする前にデータベースをデプロイする必要があります。データベースが実行されていない場合、API でエラーがスローされます。

私は注文を台無しにしましartifacts:た:

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

しかし、それらが起動する順序には何の関係もないようです。

私が考えることができる唯一のことは、それがアルファベット順であることです。以前は問題はありませんでした。データベースは、API の前に 49/50 で起動していました。今はその逆です。私が変更した唯一のことは新しいコンピューターで、名前をアルファベット順に最初に付けるように変更しserverました。api

2つの質問:

  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 に答える