5.8. ホストのネットワークトレースの収集
ネットワーク関連の問題のトラブルシューティングは、ネットワーク通信を追跡して複数のノードで同時にパケットをキャプチャーすることで簡素化されます。
oc adm must-gather
コマンドおよび registry.redhat.io/openshift4/network-tools-rhel8
コンテナーイメージの組み合わせを使用して、ノードからパケットキャプチャーを収集できます。パケットキャプチャーの分析は、ネットワーク通信の問題のトラブルシューティングに役立ちます。
oc adm must-gather
コマンドは、特定のノードの Pod で tcpdump
コマンドの実行に使用されます。tcpdump
コマンドは、Pod でキャプチャーされたパケットを記録します。tcpdump
コマンドを終了すると、oc adm must-gather
コマンドは、Pod からクライアントマシンにキャプチャーされたパケットが含まれるファイルを転送します。
ヒント
以下の手順で使用するコマンド例は、tcpdump
コマンドを使用してパケットキャプチャーを実行する方法を示しています。ただし、--image
引数で指定したコンテナーイメージでコマンドを実行すると、複数のノードから同時にトラブルシューティング情報を収集できます。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。
手順
以下のコマンドを実行して、一部のノードでホストネットワークからパケットキャプチャーを実行します。
$ oc adm must-gather \ --dest-dir /tmp/captures \ 1 --source-dir '/tmp/tcpdump/' \ 2 --image registry.redhat.io/openshift4/network-tools-rhel8:latest \ 3 --node-selector 'node-role.kubernetes.io/worker' \ 4 --host-network=true \ 5 --timeout 30s \ 6 -- \ tcpdump -i any \ 7 -w /tmp/tcpdump/%Y-%m-%dT%H:%M:%S.pcap -W 1 -G 300
- 1
--dest-dir
引数では、oc adm must-gather
の実行時に、クライアントマシンの/tmp/captures
と相対パスにあるディレクトリーに、キャプチャーしたパケットを保存することを指定します。書き込み可能なディレクトリーを指定できます。- 2
tcpdump
がoc adm must-gather
の起動先のデバッグ Pod で実行される場合に、--source-dir
引数は、パケットが Pod の/tmp/tcpdump
ディレクトリーに一時保存するように指定します。- 3
--image
引数は、tcpdump
コマンドが含まれるコンテナーイメージを指定します。- 4
--node-selector
引数および example 値は、ワーカーノードでパケットキャプチャーを実行するように指定します。別の方法としては、代わりに--node-name
引数を指定して、1 つのノードでパケットキャプチャーを実行できます。--node-selector
と--node-name
引数の両方を省略すると、パケットキャプチャーはすべてのノードで実行されます。- 5
- パケットがノードのネットワークインターフェイスでキャプチャーされるようにするには、
--host-network=true
引数が必要です。 - 6
--timeout
引数および値を指定して、デバッグ Pod を 30 秒間実行します。--timeout
引数と期間を指定しない場合、デバッグ Pod は 10 分実行されます。- 7
tcpdump
コマンドの-i any
引数は、すべてのネットワークインターフェイスでパケットをキャプチャーするように指定します。また、ネットワークインターフェイス名を指定することもできます。
- ネットワークトレースがパケットをキャプチャーしている間に、ネットワーク通信の問題を発生させる、Web アプリケーションにアクセスするなど、特定のアクションを実行します。
oc adm must-gather
で Pod からクライアントマシンに転送したパケットキャプチャーファイルを確認します。tmp/captures ├── event-filter.html ├── ip-10-0-192-217-ec2-internal 1 │ └── registry-redhat-io-openshift4-network-tools-rhel8-sha256-bca... │ └── 2022-01-13T19:31:31.pcap ├── ip-10-0-201-178-ec2-internal 2 │ └── registry-redhat-io-openshift4-network-tools-rhel8-sha256-bca... │ └── 2022-01-13T19:31:30.pcap ├── ip-... └── timestamp