基本的に私がやろうとしているのは、ポッドのライフサイクルをいじって、ポッドが終了する前にログのコピーなどのクリーンアップ/バックアップを実行できるかどうかを確認することです。
必要なもの: 終了する前に、ログ/ヒープダンプをコンテナーから hostPath/S3 にコピーします。
私が試したこと:
メッセージをエコーするために bash コマンドで preStop フックを使用しました (機能するかどうかを確認するためだけに!!)。プロセスが機能するかどうかを確認するために、preStop に遅延を指定してterminationGracePeriodSeconds を使用し、それらを切り替えました。元。terminateGracePeriodSeconds:30 秒 (デフォルト) を保持し、preStop コマンドを 50 秒までスリープするように設定します。それまでにコンテナーが終了するため、メッセージは生成されません。これは期待どおりに機能します。
私の質問:
- preStop フックで許可される (推奨される) プロセスの種類は? 15 GB 以上のログ/ヒープダンプをコピーするには、かなりの時間がかかります。この時間は、terminationGracePeriodSeconds を定義するために使用されます。
- preStop が設定された gracePeriod よりも時間がかかるとどうなりますか? (ログが巨大な場合は 10 ギガ)
- フックがなくてもterminationGracePeriodSecondsを設定するとどうなりますか? コンテナはその猶予時間まで稼働したままになりますか?
これに密接に関連するこの記事を見つけましたが、https://github.com/kubernetes/kubernetes/issues/24695をたどることができませんでした
すべての入力に感謝します!!