ESXi タスクエラーが古いため、スーパーバイザークラスタが「構成中」状態のままになっています: ServerFaultCode – オブジェクト 'vim.Task:<task-id>' はすでに削除されているか、完全に作成されていません
search cancel

ESXi タスクエラーが古いため、スーパーバイザークラスタが「構成中」状態のままになっています: ServerFaultCode – オブジェクト 'vim.Task:<task-id>' はすでに削除されているか、完全に作成されていません

book

Article ID: 422066

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項:これは英文の記事「Supervisor Cluster Stuck in “Configuring” State Due to Stale ESXi Task Error: ServerFaultCode – The object 'vim.Task:<task-id>' has already been deleted or has not been completely created」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

本記事では、vSphere with Tanzu 環境において、Supervisor クラスタConfiguring 状態のまま進行しなくなる問題について説明します。
この事象は、ESXi ホスト上でタスクが既に存在しない、または完全に作成されていないことに関連した一般的なシステムエラーを伴うことがあります。

本記事では、その原因と、Supervisor クラスタを正常な状態へ復旧するための推奨解決策について解説します。

以下のいずれか、または複数の症状が確認される場合があります。

  • vSphere Client 上で Supervisor クラスタが Configuring 状態のまま遷移しない。
  • vSphere UI または vCenter Server のイベントに、次のエラーメッセージが表示される:

Kubernetes Worker Node is schedulable: A general system error occurred. Error message: waiting for node <node-name> to move to ready state.

Kubernetes Worker Node commit work done in vSphere: A general system error occurred. Error message: ServerFaultCode: The object 'vim.Task:<task-id>' has already been deleted or has not been completely created.

  • 関連する ESXi タスクを vim-cmd vimsvc/task_info <task-id> で検索しても見つからず、ManagedObjectNotFound が返される。
  • kubectl get nodes -A を実行すると、Supervisor クラスタ側の表示に反して、すべての Worker Node が Ready 状態であることが確認できる。

Environment

VMware vSphere Kubernetes Service
VMware vSphere with Tanzu

Cause

この問題は、ESXi ホストの管理レイヤー(hostd)内に古いタスク参照が残存している場合に発生します。
この古いタスクが原因で、実際にはノードが正常であるにもかかわらず、vCenter Server が Kubernetes ワーカーノードがまだ Ready 状態へ遷移中であると誤って判断してしまいます。

この状況は、ESXi におけるタスクのクリーンアップが中断されたり、不完全なまま終了した場合に発生することが一般的です。

Resolution

本問題を解決するには、影響を受けている ESXi ホスト上で hostd 管理サービスを再起動し、残存している古いタスク情報をクリアしてください。

手順:

  1. 影響を受けている ESXi ホストへ SSH で接続します。
  2. 以下のコマンドを実行し、hostd サービスを再起動します:
    /etc/init.d/hostd restart

  3. サービスが正常に再起動されるまで待ちます。
  4. 古いタスクがクリアされたことを確認します:
    vim-cmd vimsvc/task_list

  5. 以前報告されていたタスク ID(例:task-#####)が一覧に表示されないことを確認します。
  6. vCenter Server 上で Supervisor クラスタの状態を再確認します。
    状態が Configuring から Running へ正常に遷移していることが確認できます。