Podが実行中であるにも関わらず、StatefulSetのReady State が 0/0 になる
search cancel

Podが実行中であるにも関わらず、StatefulSetのReady State が 0/0 になる

book

Article ID: 430488

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項:これは英文の記事「StatefulSet Ready State Displays 0/0 While Pods Remain "Running"」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

VKS環境で、StatefulSetコントローラと実際のPodの状態が一致しない

  • kubectl get statefulset -n <namespace> の結果のREADYの列が 0/0と表示される

    k get statefulset -n <namespace>

    NAME                      READY       AGE
    <stateful set name>       0/0         ##d

  • kubectl get pods の結果では、StatefulSetに所属するPodは実行中状態になっている
  • スケールダウンイベントに伴うPodの自動クリーンアップが発生せず、"親なし"のワークロードが発生する




Environment

vSphere Kuberenetes Service 

Cause

この状態は、一般的にKubernetesコントロールプレーンとワークロードの状態が同期できていないことにより発生します。

Resolution

不一致を解消するために、以下の手順でコントローラにPodオブジェクトの再評価を強制させる必要があります。

  • 現在稼働中だが、StatefulSetにより認識されていないPodを手動で削除する

    kubectl delete pod <pod-name>

  • StatefulSetのReplica数を0にすることで、強制的に完全なReconcileを実施する

    kubectl scale statefulset <name> --replicas=0