このページでは、プリインストールされたデバッグツールのスイートを使用して Anthos clusters on VMware(GKE on VMware)のノードの問題をデバッグする方法について説明します。
概要
作成する 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
の使用
toolbox
コマンドを実行します。sudo toolbox
このコマンドは、
debug-toolbox
コンテナを開始します。コンテナ内で、いずれかのツールを実行します。例:
tcpdump
完了したら、コンテナを終了してノードへの 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 サービスの再起動を自動的に試行します。