ノードの問題のデバッグ

このページでは、プリインストールされたデバッグツールのスイートを使用して Anthos clusters on VMware(GKE On-Prem)のノードの問題をデバッグする方法について説明します。

概要

作成する Anthos clusters on VMware(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 接続を閉じます。

ノードの問題の検出機能

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

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

Anthos clusters on VMware バージョン 1.5 以降では、ノードの問題の検出機能で、kubelet と docker systemd サービスの自動修復が有効になっています。Node Problem Detector はノードで KubeletUnhealthy 状態または ContainerRuntimeUnhealthy 状態を検出すると、最後の再起動からの経過時間が特定のしきい値を超えた場合に、kubelet または Docker サービスの再起動を自動的に試行します。