Node Not Ready エラーの基本的なトラブルシューティング

この記事では、障害が発生した後に Microsoft Azure Kubernetes Service (AKS) クラスター ノードを復旧するためのトラブルシューティング手順について説明します。 この記事では、Node Not Ready エラーが発生したときに生成される最も一般的なエラー メッセージについて具体的に説明し、Windows ノードと Linux ノードの両方でノード修復機能を実行する方法について説明します。

開始する前に

Kubernetes クラスターのトラブルシューティングについては、 非公式ガイドを参照してください。 また、Kubernetes のトラブルシューティングに関する Microsoft エンジニアガイドを参照してください。 このガイドには、ポッド、ノード、クラスター、およびその他の機能をトラブルシューティングするためのコマンドが含まれています。

前提条件

  • Azure CLI バージョン 2.31 以降のバージョン。 Azure CLI が既にインストールされている場合は、 az --versionを実行してバージョン番号を確認できます。

基本的なトラブルシューティング

AKS は、ワーカー ノードの正常性状態を継続的に監視し、ノードが異常になった場合自動的に修復します。 Azure 仮想マシン (VM) プラットフォーム 問題が発生する VM を維持します。 AKS と Azure VM が連携して、クラスターに対するサービスの中断を減らします。

ノードには、2 つの形式のハートビートがあります。

  • Node オブジェクトの .status を更新します。

  • kube-node-lease 名前空間内の Lease オブジェクト。 各 Node には、関連付けられた Lease オブジェクトがあります。

Node.status の更新と比較すると、Leaseは軽量のリソースです。 ハートビートに Lease オブジェクトを使用すると、大規模なクラスターでのこれらの更新のパフォーマンスへの影響が軽減されます。

kubeletは、Nodeオブジェクトの.statusの作成と更新を行います。 また、Node オブジェクトに関連するLease オブジェクトの更新も行います。

  • kubelet は、状態が変更された場合、または構成された間隔の更新がない場合に、ノード .status を更新します。 ノードに対する .status 更新の既定の間隔は 5 分です。これは、到達できないノードの 40 秒の既定のタイムアウトよりもはるかに長くなります。
  • kubelet は、 Lease オブジェクトを 10 秒ごとに作成して更新します (既定の更新間隔)。 Lease 更新は、ノード .statusの更新とは別に行われます。 Lease更新が失敗した場合、kubelet は、200 ミリ秒から始まり、7 秒で上限となる指数バックオフを使用して再試行します。

NotReadyまたはUnknownの状態を持つノードでポッドをスケジュールすることはできません。 ポッドのスケジュールは、 Ready 状態のノードでのみ実行できます。

ノードが MemoryPressureDiskPressure、または PIDPressure 状態の場合は、ノードに追加のポッドをスケジュールするためにリソースを管理する必要があります。 ノードが NetworkUnavailable モードの場合は、ノード上のネットワークを正しく構成する必要があります。

AKS は、エージェント ノードのライフサイクルと操作を管理します。 エージェント ノードに関連付けられている IaaS リソースの変更はサポートされていません。 たとえば、SSH 接続によるノードのカスタマイズ、パッケージの更新、ノード上のネットワーク構成の変更はサポートされていません。 詳細については、エージェント ノード AKS サポート カバレッジを参照してください。

次の条件が満たされていることを確認します。

詳細

ノードの Not Ready 状態のトラブルシューティングを行うには、「正常なノードの変更を未準備状態に トラブルシューティングするを参照してください。

サードパーティのお問い合わせ窓口に関する免責事項

サードパーティのお問い合わせ窓口に関する情報は、ユーザーの便宜のために提供されているものであり、 この連絡先情報は、予告なしに変更される可能性があります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。