5.9. ホストのネットワークトレースの収集
ネットワーク関連の問題のトラブルシューティングは、ネットワーク通信を追跡して複数のノードで同時にパケットをキャプチャーすることで簡素化されます。
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) がインストールされている。
手順
以下のコマンドを実行して、一部のノードでホストネットワークからパケットキャプチャーを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <.>
--dest-dir引数では、oc adm must-gatherの実行時に、クライアントマシンの/tmp/capturesと相対パスにあるディレクトリーに、キャプチャーしたパケットを保存することを指定します。書き込み可能な任意のディレクトリーを指定できます。<.>oc adm must-gatherが開始するデバッグ Pod でtcpdumpが実行される場合に、--source-dir引数は、パケットキャプチャーが Pod の/tmp/tcpdumpディレクトリーに一時的に保存されることを指定します。<.>--image引数は、tcpdumpコマンドを含むコンテナーイメージを指定します。<.>--node-selector引数とサンプル値は、ワーカーノードでパケットキャプチャーを実行するように指定します。別の方法としては、代わりに--node-name引数を指定して、1 つのノードでパケットキャプチャーを実行できます。--node-selectorと--node-name引数の両方を省略すると、すべてのノードでパケットキャプチャーが実行されます。<.> ノードのネットワークインターフェイスでパケットキャプチャーが実行されるように、--host-network=true引数が必要です。<.>--timeout引数と値は、デバッグ Pod を 30 秒間実行するように指定します。--timeout引数と期間を指定しない場合、デバッグ Pod は 10 分間実行されます。<.>tcpdumpコマンドの-i any引数は、すべてのネットワークインターフェイスでパケットをキャプチャーするように指定します。また、ネットワークインターフェイス名を指定することもできます。- ネットワークトレースがパケットをキャプチャーしている間に、ネットワーク通信の問題を発生させる、Web アプリケーションにアクセスするなど、特定のアクションを実行します。
oc adm must-gatherで Pod からクライアントマシンに転送したパケットキャプチャーファイルを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow