Kubernetes クラスター ノードが「準備完了」状態の場合のトラブルシューティング

Kubernetes クラスター ノードが「準備完了」状態の場合のトラブルシューティング

背景

Kubernetes は、コンテナ内のアプリケーションの展開、スケーリング、および操作を自動化するための強力なプラットフォームです。場合によっては、「準備ができていません」状態のノードに遭遇することがあります。この記事では、これらの問題を解決するための手順を順を追って説明します。

Kubernetes 内のノードが利用できない場合は、すぐに確認する必要があります。根本原因を特定するには、以下の手順に従ってください。

ノードのステータスを確認する

まず、ノードが実際に「準備ができていない」状態であることを確認する必要があります。すべてのノードのステータスを一覧表示するには、次のコマンドを使用します。

 kubectl get nodes

次のような出力が表示されます。

 NAME STATUS ROLES AGE VERSION node-1 Ready <none> 30d v1.25.1 node-2 NotReady <none> 25d v1.25.1 node-3 Ready <none> 28d v1.25.1

このクラスターでは、ノード 2 は「準備ができていません」状態です。

ノードの詳細を取得する

ノードで発生する可能性のある問題の詳細情報を取得するには、次のコマンドを実行します。

 kubectl describe node node-2

このコマンドは、ノードの状態、最近のイベントなどを含む多くの出力を提供します。問題を示している可能性のあるエラー メッセージや警告を探します。たとえば、ディスクがいっぱいである、または特定のサービスが応答していないというメッセージが表示される場合があります。

システムログを確認する

場合によっては、問題となっているノードのオペレーティング システム ログを調べると役立つことがあります。ノードに SSH アクセスできる場合は、次のようなログを確認することをお勧めします。

 /var/log/syslog /var/log/messages /var/log/kern.log

grep、cat、tail などのコマンドは非常に役立ちます。

 tail -f /var/log/syslog

これらのログは、ノードの状態に影響を与える可能性のあるオペレーティング システムまたは特定のサービスの問題に関する情報を提供できます。

回避策

問題の根本原因を特定した後、どのように解決を開始できますか? 。一般的な問題に対する解決策をいくつか紹介します。

1. Kubernetesサービスを再起動する

場合によっては、ノード上の Kubernetes サービスを再起動するだけで問題が解決することがあります。

 sudo systemctl restart kubelet

このコマンドは、各ノードで実行され、コンテナの実行を維持する役割を担う Kubernetes エージェントである Kubelet を再起動します。

2. Kubeletの設定を確認する

誤った設定は誤動作の原因となる可能性があります。 Kubelet 構成ファイル (通常は /etc/kubernetes/Kubelet.conf または /var/lib/Kubelet/config.yaml にあります) を確認し、すべてが正しく構成されていることを確認します。

たとえば、最近クラスターのネットワーク設定を変更した場合は、その変更が正しい Kubelet 構成を反映していることを確認してください。

3. ディスク容量を解放する

ディスク容量が不足すると問題が発生する可能性があります。ディスクの使用状況を確認し、必要に応じてスペースを解放してください。

 df -h

このコマンドは、すべてのファイル システムのディスク使用量を表示します。ファイル システムがほぼいっぱいになっている場合は、不要なファイルを削除するか、別の場所に移動してスペースを解放してください。

4. システムリソースを確認する

ノードに十分なリソース (CPU、メモリなど) があることを確認します。

 free -h top

free -h コマンドは、システム上の空きメモリと使用メモリの量を表示します。一方、top は、実行中のプロセスのリアルタイム リストと、それらが使用している CPU とメモリの量を表示します。

5. ネットワークの問題を解決する

ネットワークの問題により、ノードの準備ができなくなる場合もあります。ネットワーク構成を確認し、ノードがクラスターの残りの部分と通信できることを確認してください。

ping、traceroute、nslookup などのコマンドを使用して、ネットワークの問題を診断できます。たとえば、クラスター内の他のノードに ping を実行して、到達可能かどうかを確認します。

 ping node-1 ping node-3

他のノードにアクセスできない場合は、解決する必要があるネットワークの問題である可能性があります。

6. マスターノードとのネットワーク通信を確認する

すべてのノードがマスターノードと通信できることを確認してください。 ping コマンドを使用して接続をテストします。

 ping <master-node-ip-address>

7. ネットワークポートをテストする

ノードとマスターノード間の通信に必要なネットワーク ポートがリッスンされ、アクセス可能かどうかを確認してください。 nc (netcat) はこの目的に役立つツールです。たとえば、Kubernetes API のデフォルト ポート 6443 がマスター ノードでアクセス可能かどうかを確認するには、次のコマンドを使用できます。

 nc -zv <master-node-ip-address> 6443

8. KubeletとKubernetes APIを確認する

Kubelet はマスターノード上の Kubernetes API と通信できる必要があります。 API 通信に関連するエラー メッセージがないか Kubelet ログを確認します。

 journalctl -u kubelet

9. Kubeletの設定を確認する

Kubelet が正しい Kubernetes API アドレスを使用して通信するように設定されていることを確認します。 Kubelet 構成ファイルの --kubeconfig オプションを確認します。このオプションは、Kubernetes API に接続するために必要な情報が含まれている正しい構成ファイルを指している必要があります。

設定ファイルは通常、/etc/kubernetes/kubelet/kubeconfig または同様のパスにあります。

10. Kubernetes診断ツールを使用する

Kubernetes は、通信や接続の問題の診断に役立つさまざまなツールとコマンドを提供します。たとえば、kubectl get componentstatus を使用してマスター コンポーネントのステータスを確認できます。

 kubectl get componentstatuses

要約する

「準備ができていません」状態にある Kubernetes ノードの問題のトラブルシューティングは困難な場合がありますが、適切なアプローチを使用すれば、問題をすばやく特定して解決できます。解決策を適用する前に、必ず診断手順を慎重に実行し、考えられるすべての根本原因を調査してください。問題が解決すると、ノードは「準備完了」状態に戻り、Kubernetes クラスターは通常の動作を再開します。問題が重大になる前に検出して解決するために、クラスターのログとメトリックを定期的に監視することを忘れないでください。

<<:  クラウド上でポータブル ツールを作成する: マイクロサービス アーキテクチャを実装する方法について詳しく説明します。​

>>:  TraefikをベースにしたKubernetes Ingressネットワークシステムについてお話しましょう

推薦する

Weiboマーケティングについて知っておくべきこと

中国市場を振り返ってみると、光り輝く星、Weibo マーケティングを見つけるのは難しくありません。過...

expertvm: シンガポールの VPS、月額 4 ドルから、1G メモリ/1 コア (AMD Ryzen)/20gNVMe/750G トラフィック、1Gbps 帯域幅

Expertvm は 2011 年に設立され、シンガポールの SecureAX のサブブランドです。...

クラウドネイティブアプリケーションを構築するにはどうすればいいですか?

AWS、Microsoft、Google などのクラウド サービス プロバイダーの急増により、クラウ...

データセンターは消滅するのでしょうか?アナリストのクラウドコンピューティング予測はそうではない

より多くの企業がワークロードをパブリック クラウドに移行するにつれて、企業のデータ センターを売却し...

新しい東洋のライブ交通パスワード

「イースタンセレクション」のファン数がゼロから100万人に増えるまでに6カ月かかり、100万人から2...

ウェブサイトのセキュリティはウェブマスターの最優先事項です

2 日前、私の Web サイトがハッキングされました。バックエンド ディレクトリ フォルダーに PH...

10 ドル以下の安価な米国 VPS の概要 (追加歓迎)

昨今、VPS に対する人々の要求はますます高くなっています。特に中国人の VPS に対する要求は、ト...

sentris-3年間5ドルのVPS価格が急騰していますので、必要な方はお早めにご購入ください!

Sentrisからの最新ニュース:公式の超低価格VPSがまもなく値上げされます。 3月4日までに購入...

外部リンク判定設定の対処方法

百度は以前、「外部リンクの判定について」という記事を発表し、不正行為とみなされる外部リンクを多数詳細...

ウェブマスターの皆さん、ウェブサイトをいじって遊んでいますか、それとも真剣に構築するつもりですか?

ウェブサイトの構築は、お金を稼ぐためでも、趣味のためでも構いません。前者はいわゆる「ウェブサイトを作...

Yahoo 外部リンク クエリが閉じられた後の新しい外部リンク クエリ

Yahoo はなくなりましたが、ウェブサイトのバックリンクを確認するにはどうすればよいでしょうか。こ...

Pinterest の裏側: 電子商取引危機後の交通点滴灌漑の時代

圧力の下、電子商取引は、大規模なトラフィックの「スプリンクラー灌漑」に別れを告げ、より高度な「トラフ...

「海天盛宴」の孫静亜の事件から通信セキュリティを考察

CCTVのニュースは最近、警察が「海天生宴」の周辺少女である孫静亜のネット売春事件を摘発したと報じた...

hostodo-ロサンゼルス KVM 仮想 VPS 簡易評価/QN コンピュータルーム

私は、hostodo.com の VPS を最初に使用したユーザーの 1 人です。hostodo に...

ディスカバリー:第3世代の検索の魅力とは

中国の検索エンジン業界のベテランである陳培(China Search EngineのCEO)は、20...