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

推薦する

ヘンゴーストはどうですか?米国データセンターの独立サーバーの簡易評価、実際のテストデータの共有

Henghost の米国データセンターは、Henghost の 2 番目の主要なコンピューター ルー...

K8Sエコシステムの選択と落とし穴をすべて網羅

[[320104]]収益の増加とコストの削減は、企業が利益を増やすための 2 つの主要な方向性です。...

ウェブサイトの計画における2つの誤解

最初の誤解は、多くの企業がウェブサイトの計画と構築は非常に簡単なことだと考えていることです。IT 技...

VPS トライアル、VPS トライアルに関連するトピックについて話し合った後、トライアル用の VPS を一括で推奨します。

今日は、VPS トライアル (VPS を試す) についてお話します。多くの初心者は、VPS やクラウ...

Weibo マーケティングがなぜ人気なのか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeiboマーケティング...

JVM パフォーマンス チューニングおよび監視ツールの使用に関する詳細な説明

[[280944]]実際のエンタープライズ レベルの Java アプリケーションの開発と保守では、次...

budgetvm-nlayerラインの立ち上げ/中国電信/中国聯通/ホットVPS

Budgetvm は、Hostcat の以前の投稿で、nlayer に移行すると言及していました。「...

外部リンクスキル:「質の高いフォーラム」の実践

外部リンクの重要性は自明であり、最適化の実践者にとっては日常的に必須のものです。外部リンクを作成する...

10.23 Baidu アルゴリズムが再びアップグレード。ウェブマスターの反応と意見を収集

10.23 Baidu アルゴリズムが再びアップグレード。ウェブマスターの反応と意見を収集2012 ...

クラウド コンピューティングのコンプライアンスを監視する方法

コンプライアンス要件を満たさない場合、企業は協会グループから追放されたり、規制当局から多額の罰金を科...

モバイルゲームダウンロードサイト運営概要

草の根ウェブマスターとして、ウェブサイトを構築する方法を見つけなければなりません。ウェブマスターはウ...

ムーンライトブログ 2014 おすすめ記事

昨年、「2013 年の Moonlight Blog でおすすめの読み物記事」をまとめてから 1 年...

Ganji.comの「小さなロバが水車を引く」が家探しフェスティバルで公開され、分類情報サイトが次々と打ち負かされた

インターネットが急速に発展する時代、発展は流れに逆らって航海するか、平原で馬を走らせるようなものです...

ブラックウィーク5#: 247ホスト-仮想ホスト50%オフ/再販業者50%オフ/オプションのコンピュータルーム8室/ブランド11年

カナダのホスティングプロバイダー 247-hosts (2004 年に設立され、Google で検索...