ノードの問題のデバッグ

このページでは、プリインストールされている一連のデバッグツールを使用してノードの問題をデバッグする方法について説明します。

概要

作成する各 GKE On-Prem クラスタは、複数のノードで構成されます。各 GKE On-Prem ノードには、CoreOS toolbox の配布物が含まれています。これは、デバッグ コンテナ(debug-toolbox)を展開して実行するシェル スクリプトです。debug-toolbox は、いくつかの便利なデバッグツールを含むコンテナ イメージです。

特定のノードで問題が発生した場合、影響を受けるノードに接続してデバッグを試行し、toolbox スクリプトを実行してコンテナを展開して実行し、debug-toolbox コンテナに含まれているツールを実行できます。

debug-toolbox コンテナに含まれるツール

debug-toolbox コンテナは、次のパッケージを含む Debian ベースイメージを実行します。

  • bash
  • curl
  • dnsutils
  • hping3
  • iperf3
  • lsof
  • netcat
  • mtr
  • procps
  • strace
  • tcpdump
  • traceroute
  • util-linux

これらのツールはコンテナに含まれているため、インターネット接続は必要ありません。追加のデバッグツールをインストールする場合は、apt-get を使用します(インターネット接続が必要です)。

toolbox の使用

  1. クラスタノードに SSH で接続します

  2. toolbox コマンドを実行します。

    sudo toolbox

    このコマンドは、debug-toolbox コンテナを開始します。

  3. コンテナ内で、いずれかのツールを実行します。例: tcpdump

  4. 完了したら、コンテナを終了してノードへの SSH 接続を閉じます。

ノードの問題の検出機能

GKE On-Prem バージョン 1.4 以降では、クラスタ内のすべてのノードでノードの問題の検出機能が有効になり、一般的なノードの問題をすばやく検出できます。ノードの問題の検出機能は、潜在的な問題を継続的にチェックし、ノードのイベントおよび条件と同じ結果を報告します。ノードが正常に動作しない場合は、ノードで kubectl describe を実行し、対応するイベントと条件を確認することで、ノードの問題検出機能が問題を検出できるか確認できます。

ノードの問題の検出機能のモニターは、ノードにいくつかの条件を生成します。報告された状態が KubeletUnhealthy または ContainerRuntimeUnhealthy の場合、対応する systemd サービス(kubelet または Docker)を再起動すると、ノードが再び正常になります。