スーパーバイザクラスタに参加しているESXiホストが"Not Ready"状態になる
search cancel

スーパーバイザクラスタに参加しているESXiホストが"Not Ready"状態になる

book

Article ID: 431092

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service Tanzu Kubernetes Runtime

Issue/Introduction

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

  • VMware Cloud Foundation (VCF)またはvSphere with Tanzu環境において、ESXiホストがNot Ready状態に変化することがあります。この時、スーパーバイザクラスタは問題のホスト上にワークロード(vSphere Pod, Tanzu Kubernetes Gridクラスタ)を配置することができません。
  • スーパーバイザクラスタでコマンドを実施すると以下のような結果になる

root@<supervisor-id> [ ~ ]# kubectl get nodes

NAME                STATUS           ROLES                 AGE     VERSION

<supervisor-1>   Ready      Control-Plane,master   <days>   <supervisor-version>
<supervisor-2>   Ready      Control-Plane,master   <days>   <supervisor-version>
<supervisor-3>   Ready      Control-Plane,master   <days>   <supervisor-version>
<esxi-host-1>    Ready      agent                  <days>   <spherelet-version>
<esxi-host-2>    Ready      agent                  <days>   <spherelet-version>
<esxi-host-3>    NotReady   agent                  <days>   <spherelet-version>

  • 問題のESXiホスト上でコマンドを実施すると以下のような結果になる

root@<esxi-host># /etc/init.d/spherelet status

YYYY-MM-DD hh:mm:ss init.d/spherelet spherelet is not running

Environment

  • vSphere 8.x
  • vCenter 8.x

Cause

Sphereletサービス(ESXiにおけるkubeletに相当するサービス)が動作していません。これにより、ホストは健全性をスーパーバイザコントロールプレーンに報告できず、"Not Ready"状態に陥ります。

Resolution


以下の手順を実施してサービスを起動し、スーパーバイザにおけるホストの接続を復旧します。

  1. 問題のESXiに対して、SSHでrootユーザとしてログインします。
  2. 以下のコマンドでSphereletサービスが起動しているかを確認します。
    /etc/init.d/spherelet status

  3. サービスが止まっていたら、手動で起動します。
    /etc/init.d/spherelet start

  4. 30秒待ち、サービスが”running"の状態のままであることを確認します。
    /etc/init.d/spherelet status

  5. 再度vSphere Clientを開くか、スーパーバイザでkubectl get nodes コマンドを実施することで、ホストが"Ready"状態に戻っていることを確認します。これは通常、サービスが復旧してから1-2分以内に発生します。