時折、StatefulSet 内のすべての Pod のローリング置換を実行して、すべての PV も最初から再作成する必要があります。これを行う理由は、古いバージョンの暗号化キーを使用するすべての基になるハード ドライブを取り除くためです。この操作を通常のローリング アップグレードと混同しないでください。定期的なローリング アップグレードでは、ボリュームが Pod の終了に耐えられるようにする必要があります。私がこれまでに考え出した最良のルーチンは次のとおりです。
- PVを削除します。
- PVC を削除します。
- ポッドを削除します。
- すべての削除が完了するまで待ちます。
- 手順 2 で削除した PVC を手動で再作成します。
- 新しい Pod が StatefulSet 内の他の Pod からのデータのストリーミングを終了するまで待ちます。
- 次の Pod について、手順 1. から繰り返します。
ステップ 5 には満足できません。StatefulSet が PVC を再作成してくれればよかったのですが、残念ながらそうではありません。そうしないと、Pod の作成が次のエラーで失敗します。
Warning FailedScheduling 3s (x15 over 15m) default-scheduler persistentvolumeclaim "foo-bar-0" not found
それを行うより良い方法はありますか?