3.7. CLI を使用して OVS サンプリングで OVN-Kubernetes ネットワークトラフィックを確認する
OVS サンプリングによる OVN-Kubernetes ネットワークトラフィックのチェックは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OVN-Kubernetes ネットワークトラフィックは、CLI を介した次のネットワーク API の OVS サンプリングで表示できます。
-
NetworkPolicy -
AdminNetworkPolicy -
BaselineNetworkPolicy -
UserDefinedNetwork分離 -
EgressFirewall - マルチキャスト ACL。
これらのネットワークイベントのスクリプトは、各 OVN-Kubernetes ノードの /usr/bin/ovnkube-observ パスにあります。
Network Observability Operator と OVS サンプリングによる OVN-Kubernetes ネットワークトラフィックのチェックは、どちらもデバッグに適していますが、Network Observability Operator はネットワークイベントの監視を目的としています。または、CLI を使用して OVS サンプリングで OVN-Kubernetes ネットワークトラフィックをチェックすると、パケットトレースに役立ちます。Network Observability Operator がインストールされている場合にも使用できますが、必須ではありません。
管理者は、--add-ovs-collect オプションを追加してノード全体のネットワークトラフィックを表示したり、追加のフラグを渡して特定の Pod の結果をフィルタリングしたりできます。追加のフラグは、「OVS サンプリングフラグを使用した OVN-Kubernetes ネットワークトラフィック」セクションを参照してください。
CLI を使用して OVN-Kubernetes ネットワークトラフィックを表示するには、次の手順に従います。
前提条件
-
cluster-admin権限を持つユーザーとしてクラスターにログインしている。 - ソース Pod と宛先 Pod を作成し、それらの間でトラフィックを実行した。
-
NetworkPolicy、AdminNetworkPolicy、BaselineNetworkPolicy、UserDefinedNetworkの分離、マルチキャスト、または Egress ファイアウォールのいずれかのネットワーク API を 1 つ以上作成した。
手順
OVS サンプリング機能を使用して
OVNObservabilityを有効にするには、次のコマンドを入力して、clusterという名前のFeatureGateCR でTechPreviewNoUpgrade機能セットを有効にします。oc patch --type=merge --patch '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' featuregate/cluster$ oc patch --type=merge --patch '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' featuregate/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
featuregate.config.openshift.io/cluster patched
featuregate.config.openshift.io/cluster patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
OVNObservability機能が有効になっていることを確認します。oc get featuregate cluster -o yaml
$ oc get featuregate cluster -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
featureGates: # ... enabled: - name: OVNObservabilityfeatureGates: # ... enabled: - name: OVNObservabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、関連するネットワーク API の 1 つを作成した namespace 内の Pod のリストを取得します。次の手順で使用するために、Pod の
NODE名をメモします。oc get pods -n <namespace> -o wide
$ oc get pods -n <namespace> -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES destination-pod 1/1 Running 0 53s 10.131.0.23 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> <none> source-pod 1/1 Running 0 56s 10.131.0.22 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES destination-pod 1/1 Running 0 53s 10.131.0.23 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> <none> source-pod 1/1 Running 0 56s 10.131.0.22 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、OVN-Kubernetes Pod のリストを取得し、前の手順の Pod と同じ
NODEを共有する Pod を見つけます。oc get pods -n openshift-ovn-kubernetes -o wide
$ oc get pods -n openshift-ovn-kubernetes -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME ... READY STATUS RESTARTS AGE IP NODE NOMINATED NODE ovnkube-node-jzn5b 8/8 Running 1 (34m ago) 37m 10.0.128.2 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> ...
NAME ... READY STATUS RESTARTS AGE IP NODE NOMINATED NODE ovnkube-node-jzn5b 8/8 Running 1 (34m ago) 37m 10.0.128.2 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
ovnkube-nodePod 内で bash シェルを開きます。oc exec -it <pod_name> -n openshift-ovn-kubernetes -- bash
$ oc exec -it <pod_name> -n openshift-ovn-kubernetes -- bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow ovnkube-nodePod 内では、ovnkube-observ -add-ovs-collectorスクリプトを実行し、OVS コレクターを使用してネットワークイベントを表示できます。以下に例を示します。/usr/bin/ovnkube-observ -add-ovs-collector
# /usr/bin/ovnkube-observ -add-ovs-collectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -filter-src-ipフラグと Pod の IP アドレスを指定して次のコマンドを入力すると、ソース Pod などのタイプ別にコンテンツをフィルタリングできます。以下に例を示します。/usr/bin/ovnkube-observ -add-ovs-collector -filter-src-ip <pod_ip_address>
# /usr/bin/ovnkube-observ -add-ovs-collector -filter-src-ip <pod_ip_address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/bin/ovnkube-observで渡すことができるフラグの完全なリストは、「OVS サンプリングフラグを持つ OVN-Kubernetes ネットワークトラフィック」を参照してください。
3.7.1. OVS サンプリングフラグを持つ OVN-Kubernetes ネットワークトラフィック リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して OVN-Kubernetes ネットワークトラフィックを表示するには、次のフラグを使用できます。ovnkube-node Pod 内で bash シェルを開いた後、ターミナルで次の構文にこれらのフラグを追加します。
コマンド構文
/usr/bin/ovnkube-observ <flag>
# /usr/bin/ovnkube-observ <flag>
| フラグ | 説明 |
|---|---|
|
|
|
|
| サンプリングを有効にするために OVS コレクターを追加します。注意して使用してください。他のユーザーが可観測性を使用していないことを確認します。 |
|
|
NBDB データでサンプルを補完します。デフォルトは |
|
| 指定された宛先 IP へのパケットのみをフィルタリングします。 |
|
| 指定された送信元 IP からのパケットのみをフィルタリングします。 |
|
| psample group_id を使用して生のサンプル Cookie を出力します。 |
|
| サンプルの書き込み先となる出力ファイル。 |
|
| 受信したパケット全体を出力します。false の場合、すべてのサンプルで送信元 IP と宛先 IP のみが出力されます。 |