VKS のワークロードクラスタで、終了したPodがすぐに削除される
search cancel

VKS のワークロードクラスタで、終了したPodがすぐに削除される

book

Article ID: 443019

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項:これは英文の記事 「Terminated Pods are Deleted Immediately in VKS Workload Clusters」の日本語訳です。
記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。
最新情報は英語版の記事で参照してください。


vSphere Kubernetes Service (VKS) のワークロードクラスタにおいて、、以下の事象が発生します。

  • 完了 (Completed) または失敗 (Failed) した Pod が数分以内に自動的に削除される。
  • pod が早期に削除されることにより、障害調査のためのログ確認や診断情報の取得が困難になる。
  • kube-controller-manager の引数を確認すると、--terminated-pod-gc-threshold=10 と非常に小さい値となっている。

Environment

  • vSphere Supervisor 8.0
  • vSphere Supervisor 9.0
  • vSphere Kubernetes Service (VKS) 3.4 以前

Cause

VKS 3.4 以前(builtin-generic-v3.4.0 以前の ClusterClass)では、terminated-pod-gc-threshold が 10 に固定(ハードコード)されています。
このため、ワークロードクラスタの設定(YAMLマニフェスト)で変更することはできません。

Resolution

vCenter Server 8.0U3g 以降にアップグレードしてから VKS のバージョンを更新することで、terminated-pod-gc-threshold が拡張されます。

  1. VKS 3.5 以降へのアップグレード:
    VKS 3.5 以降では 6000 に増加しており、pod 保持期間が延長されます。
    引き続きカスタマイズは出来ません。

  2. VKS 3.6 以降でのカスタマイズ:
    VKS 3.6 以降では kubeControllerManagerConfiguration 変数が導入されており、デフォルト値(6000)から任意の値に変更可能です。
    クラスタの YAML (topology > variables) に以下の値で指定します。

    topology:
      variables:
      - name: kubernetes
        value:
          kubeControllerManagerConfiguration:
            terminatedPodGCThreshold: 12500

    ※値を大きくしすぎるとコントロールプレーンのメモリリソースに影響を与える可能性があるため、慎重な検証が推奨されます。

Additional Information