次の方法で共有


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 は Node .status ファイルを更新します。

  • 状態が変更されます。

  • 構成された時間間隔の後に更新は行われません。

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

NotReadyまたはUnknownの状態のNodePodをスケジュールすることはできません。 Podは、Ready状態のノードでのみスケジュールできます。

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

サード パーティの連絡先に関する免責事項

Microsoft では、このトピックに関する追加情報を検索するのに役立つサード パーティの連絡先情報を提供しています。 この連絡先情報は、予告なしに変更される可能性があります。 Microsoft では、サード パーティの連絡先情報が正確であることを保証していません。