0

実際のアプリケーション コンテナーが有効になり、準備が整う前に、アクティビティを 1 回だけ実行する必要があるデプロイ プロセスのシナリオがあります。初期化コンテナはアプリケーション コンテナのすべてのレプリカで実行されるため、このアクティビティを初期化コンテナとして配置することはできませんが、この場合、このアクティビティは 1 回だけ実行する必要があります。

これを実現するために、そのアクティビティを実行して完了する kubernetes ジョブを作成しました。

  1. この特定のジョブが完了したことをアプリケーション コンテナーのデプロイ定義で確認する方法はありますか? このメタデータ情報を保存し、ジョブのステータスを識別するために使用できる kubernetes に事前定義されたキーはありますか?

  2. このジョブは configMap を使用しており、このジョブで使用されるコンテナは、(configMap によって提供される) 構成ファイルを Directory Server にロードします。configMap が変更された場合にジョブを自動的にトリガーする方法はありますか? ジョブを削除して kubectl を使用して再作成することはできますが、自動トリガーを探しています。Kubernetes にない場合、OpenShift または HELM でこれを行う方法はありますか?

4

2 に答える 2

1

Helm には、この種のことを行うためのデプロイ後のフックがありますが、操作が少し荒い場合があります。これにはカスタム オペレーターを使用するため、デプロイで明示的なステート マシンを使用できます (init -> migrate -> deploy -> test -> ready)。しかし、それを書くのは大変な作業です。

于 2019-12-13T11:01:03.973 に答える