終了した Pod の整理しきい値の確認

終了した Pod の保持要件と制御プレーンのリソース使用量を考慮して整理しきい値を選んでください。

説明

--terminated-pod-gc-threshold は、終了した Pod の数がいくつを超えると整理を始めるかを指定します。0 以下ではこの整理機能が無効になります。小さすぎる正の値では調査に必要な Pod オブジェクトが早く削除され、大きすぎる値や無効な設定では古いオブジェクトが蓄積する場合があります。

終了した Pod の整理はクラスターの可用性と運用に影響します。個数のしきい値であってログの保持期間ではないため、ログや監査記録の保持は別途管理してください。

想定される影響

  • 終了した Pod オブジェクトの蓄積で制御プレーンの負荷が増える場合があります。
  • しきい値が低すぎると、調査に必要な Pod 情報が早く削除されるおそれがあります。

対処方法

  • 終了する Pod の量と調査要件に合わせて --terminated-pod-gc-threshold に正の値を設定してください。
  • 現在のデフォルトである 12500 とクラスターの規模を参考にし、一つの値をすべての環境にそのまま適用しないでください。
  • 集中管理するログと監査記録の保持を別途設定し、整理後も必要な調査資料が残ることを確認してください。

例

従来の v1.6.0 イメージを残した、コマンド引数比較用の抜粋です。このバージョンのデプロイを推奨するものではありません。対応するバージョンと実際の制御プレーン設定に適用し、必要な証明書や接続設定を別途用意してください。

変更前

yaml
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
spec:
  containers:
    - name: command-demo-container
      image: gcr.io/google_containers/kube-controller-manager-amd64:v1.6.0
      command: ["kube-controller-manager", "--terminated-pod-gc-threshold=0"]
      args: []

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
spec:
  containers:
    - name: command-demo-container
      image: gcr.io/google_containers/kube-controller-manager-amd64:v1.6.0
      command: ["kube-controller-manager"]
      args: ["--terminated-pod-gc-threshold=10"]

補足:

  • 変更前: 0 は終了した Pod の整理を無効にするため、オブジェクトが蓄積する場合があります。
  • 変更後: 10 は小さい個数の例です。整理は有効になりますが、調査に必要な情報が早く消えすぎないか確認してください。

参考資料