3.7. 使用 CLI 检查带有 OVS 抽样的 OVN-Kubernetes 网络流量


重要

使用 OVS 抽样检查 OVN-Kubernetes 网络流量只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

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,并在它们之间运行流量。
  • 您至少创建了以下网络 API 之一: NetworkPolicyAdminNetworkPolicyBaselineNetworkPolicyUserDefinedNetwork 隔离、多播或出口防火墙。

流程

  1. 要使用 OVS 抽样功能启用 OVNObservability,请输入以下命令在名为 clusterFeatureGate CR 中启用 TechPreviewNoUpgrade 功能集:

    $ oc patch --type=merge --patch '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' featuregate/cluster
    Copy to Clipboard Toggle word wrap

    输出示例

    featuregate.config.openshift.io/cluster patched
    Copy to Clipboard Toggle word wrap

  2. 输入以下命令确认启用了 OVNObservability 功能:

    $ oc get featuregate cluster -o yaml
    Copy to Clipboard Toggle word wrap

    输出示例

      featureGates:
    # ...
        enabled:
        - name: OVNObservability
    Copy to Clipboard Toggle word wrap

  3. 输入以下命令,获取命名空间中的 pod 列表,在其中创建了其中一个相关网络 API。请注意 pod 的 NODE 名称,因为以下步骤中使用它们。

    $ oc get pods -n <namespace> -o wide
    Copy to Clipboard Toggle word wrap

    输出示例

    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 Toggle word wrap

  4. 输入以下命令获取 OVN-Kubernetes pod 列表,并找到共享与上一步中的 pod 相同的 NODE 的 pod:

    $ oc get pods -n openshift-ovn-kubernetes -o wide
    Copy to Clipboard Toggle word wrap

    输出示例

    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 Toggle word wrap

  5. 输入以下命令在 ovnkube-node pod 中打开 bash shell:

    $ oc exec -it <pod_name> -n openshift-ovn-kubernetes -- bash
    Copy to Clipboard Toggle word wrap
  6. ovnkube-node pod 中,您可以运行 ovnkube-observ -add-ovs-collector 脚本来显示使用 OVS 收集器的网络事件。例如:

    # /usr/bin/ovnkube-observ -add-ovs-collector
    Copy to Clipboard Toggle word wrap

    输出示例

    ...
    2024/12/02 19:41:41.327584 OVN-K message: Allowed by default allow from local node policy, direction ingress
    2024/12/02 19:41:41.327593 src=10.131.0.2, dst=10.131.0.6
    
    2024/12/02 19:41:41.327692 OVN-K message: Allowed by default allow from local node policy, direction ingress
    2024/12/02 19:41:41.327715 src=10.131.0.6, dst=10.131.0.2
    ...
    Copy to Clipboard Toggle word wrap

  7. 您可以通过带有 -filter-src-ip 标志和 pod 的 IP 地址输入以下命令来根据类型(如源 pod)过滤内容。例如:

    # /usr/bin/ovnkube-observ -add-ovs-collector -filter-src-ip <pod_ip_address>
    Copy to Clipboard Toggle word wrap

    输出示例

    ...
    Found group packets, id 14
    2024/12/10 16:27:12.456473 OVN-K message: Allowed by admin network policy allow-egress-group1, direction Egress
    2024/12/10 16:27:12.456570 src=10.131.0.22, dst=10.131.0.23
    
    2024/12/10 16:27:14.484421 OVN-K message: Allowed by admin network policy allow-egress-group1, direction Egress
    2024/12/10 16:27:14.484428 src=10.131.0.22, dst=10.131.0.23
    
    2024/12/10 16:27:12.457222 OVN-K message: Allowed by network policy test:allow-ingress-from-specific-pod, direction Ingress
    2024/12/10 16:27:12.457228 src=10.131.0.22, dst=10.131.0.23
    
    2024/12/10 16:27:12.457288 OVN-K message: Allowed by network policy test:allow-ingress-from-specific-pod, direction Ingress
    2024/12/10 16:27:12.457299 src=10.131.0.22, dst=10.131.0.23
    ...
    Copy to Clipboard Toggle word wrap

    有关可以使用 /usr/bin/ovnkube-observ 传递的标记的完整列表,请参阅 "OVN-Kubernetes 网络流量带有 OVS sampling 标记"。

以下标记可用于使用 CLI 查看 OVN-Kubernetes 网络流量。在 ovnkube-node pod 中打开 bash shell 后,将这些标记附加到终端中的以下语法中:

命令语法

# /usr/bin/ovnkube-observ <flag>
Copy to Clipboard Toggle word wrap

Expand
标记描述

-h

返回可用于 usr/bin/ovnkube-observ 命令的完整列表标志。'

-add-ovs-collector

添加 OVS 收集器以启用抽样。请谨慎使用。确保其他人没有使用可观察性。

-enable-enrichment

通过 NBDB 数据丰富样本。默认值为 true

-filter-dst-ip

仅将数据包过滤到给定目标 IP。

-filter-src-ip

仅过滤来自给定源 IP 的数据包。

-log-cookie

使用 psample group_id 打印原始示例 Cookie。

-output-file

将示例写入的输出文件。

-print-full-packet

打印完整接收的数据包.为 false 时,每个示例仅打印源和目标 IP。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat