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ネットワークシステムについてお話しましょう

推薦する

servarica: 年間 12 ドル、カナダの VPS、ネイティブ IP、1G メモリ/1 コア/500g ハード ドライブ/2T トラフィック

Servarica は、500G ハード ドライブで年間 12 ドルという低価格の高構成のカナダ V...

chicagovps-50% オフ プロモーション/すべてのサイトに有効/VPS は最低 $6/年払い/サーバーは最低 $26

chicagovpsのハロウィンプロモーションが始まってから2、3日経ちましたが、まだ投稿していませ...

Baidu News Sourceが収集したもの

8月28日、百度ウェブマスタープラットフォームはニュースソースの組み込みに関する完全な声明を発表しま...

Lunarvps-$5/512M メモリ/20gSSD/4 コア/スイス/スウェーデン/ルーマニア

lunarvps がいつ作成され、運用を開始したかはわかりません。ドメイン名は 2011 年に登録さ...

shockhosting: 11のデータセンターすべてでVPSが35%オフ、月額3.5ドルから、年間支払いはさらにお得です。PayPal/Alipayが利用できます。

今年のサイバーマンデーでは、shockhosting は米国、日本、シンガポール、オーストラリアなど...

保守的な豆板と革新的な知乎

Douban とZhihu は、中国のインターネット コミュニティ製品のさまざまな発展の道筋を記録し...

Baidu Sandboxへの参加から退出まで、忘れられないウェブサイト構築体験

2012 年 7 月 11 日は、私にとって忘れられない日です。なぜなら、この日、私が数年間懸命に運...

prometeus-4.5 USD/256 MB RAM/5 GB SSD/XEN/インド

Prometeus はインドのデータセンターで VPS を開始しました (XEN PV ベース、SS...

speedypageはどうですか?モバイルユーザーのみに適したシンガポールVPSの簡単なレビュー

speedypageはどうですか? speedypage シンガポール VPS はいかがですか?シン...

UC声明:百度が独占を利用して神馬検索を攻撃した疑い

新浪科技は4月30日夜、UC優士が今晩、百度によるUCブラウザと神馬検索の「誤操作」の可能性について...

企業の最高情報セキュリティ責任者がクラウドコンピューティングのセキュリティに取り組むべきこと

現在、ほとんどの組織は一部のワークロードと資産をクラウドに移行しています。最近の調査レポートによると...

Geek Host: シンガポール CN2 回線 VPS が 20% オフで販売中、中国語 Windows をサポート

創業9年の国内企業、Geek HostがVPSプロモーションを実施しています。シンガポールCN2回線...

キーワードの選択は単なる考慮事項ではない

ウェブサイトには必ずテーマが必要です。検索エンジンのスパイダーにとって、それは単なる論理プログラムで...

タオバオアフィリエイトウェブサイトのコンバージョン率を向上させるテクニックについての簡単な説明

インターネットがますます進歩するにつれて、Taobao アフィリエイトも盛んになり、さまざまな Ta...