この記事では、Azure Kubernetes Service (AKS) クラスターでの Node Not Ready の問題のトラブルシューティングと解決に関するガイドを提供します。 ノードが "NotReady" 状態になると、アプリケーションの機能が中断され、応答が停止する可能性があります。 通常、ノードは短時間後に自動的に回復します。 ただし、繰り返し発生する問題を防ぎ、安定した環境を維持するには、効果的な解決策を実装できる根本的な原因を理解することが重要です。
原因
"NotReady" 状態が発生する可能性があるシナリオがいくつかあります。
API サーバーが使用できない。 これにより、準備プローブが失敗します。 これにより、ポッドがサービスにアタッチされなくなり、トラフィックがポッド インスタンスに転送されなくなります。
仮想マシン (VM) ホストエラー。 VM ホストの障害が発生したかどうかを確認するには、次の情報ソースを確認します。
解決策
この問題を解決するには、次の手順を実行します。
-
kubectl describe node <node-name>
を実行して、ノードの状態に関する詳細情報を確認します。 問題の根本原因を示す可能性のあるエラー メッセージまたは警告を探します。 -
kubectl get apiservices
コマンドを実行して、API サーバーの可用性を確認します。 準備プローブがデプロイ YAML ファイルで正しく構成されていることを確認します。 - ノードのネットワーク構成を確認して、接続の問題がないことを確認します。
- CPU、メモリ、ディスクなどのノードのリソース使用量を調べて、潜在的な制約を特定します。 詳細については、「 Container insights を使用して Kubernetes クラスターのパフォーマンスを監視する」を参照してください。
その他の手順については、「 ノード準備ができていないエラーの基本的なトラブルシューティングを参照してください。
予防方法
この問題が今後発生しないようにするには、次の 1 つ以上のアクションを実行します。
- サービス レベルが完全に支払われるかどうかを確認します。
- API サーバーへの
watch
要求とget
要求の数を減らします。