4

基本的に私がやろうとしているのは、ポッドのライフサイクルをいじって、ポッドが終了する前にログのコピーなどのクリーンアップ/バックアップを実行できるかどうかを確認することです。

必要なもの: 終了する前に、ログ/ヒープダンプをコンテナーから 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をたどることができませんでした

すべての入力に感謝します!!

4

1 に答える 1