新しいバージョンのアプリケーションをKubernetesクラスタに導入する前に実行したいデータベース移行があります。これらの移行をContinuous Deliveryパイプラインの一部として自動的に実行するようにします。移行はコンテナイメージとしてカプセル化されます。これを達成するための最良のメカニズムは何ですか?解決のためのkubernetesクラスタで一度限りの移行タスクを実行するにはどうすればよいですか
要件:
- 私たちは、その後クラスタにアプリの新しいバージョンを展開しようとしないように、移行が失敗したかどうかを判断することができます。
- 移行が失敗した場合は諦めてください。再試行しないでください。
- ログにアクセスして失敗した移行を診断できます。
私はKubernetes内のジョブ機能は、これは簡単になるだろうと仮定しますが、いくつかの課題があるように見えるしていた:
- Kubernetes repeatedly re-run containers whose processes terminate with a non-zero exit code意志、仕事を
restartPolicy
never
のを持っている場合でも。 - のブロッキングキューに入れられたアップジョブの結果を待っていることは
手巻きのスクリプトを必要とするように思わながら使用して、「裸のポッドは、」より良い方法でしょうか?もしそうなら、どのように機能するのでしょうか?
どのようにこれをやったのですか?私自身も同じジレンマを持っています... –