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 之一:
NetworkPolicy
、AdminNetworkPolicy
、BaselineNetworkPolicy
、UserDefinedNetwork
隔离、多播或出口防火墙。
流程
要使用 OVS 抽样功能启用
OVNObservability
,请输入以下命令在名为cluster
的FeatureGate
CR 中启用TechPreviewNoUpgrade
功能集:oc patch --type=merge --patch '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' featuregate/cluster
$ oc patch --type=merge --patch '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' featuregate/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
featuregate.config.openshift.io/cluster patched
featuregate.config.openshift.io/cluster patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令确认启用了
OVNObservability
功能:oc get featuregate cluster -o yaml
$ oc get featuregate cluster -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
featureGates: # ... enabled: - name: OVNObservability
featureGates: # ... enabled: - name: OVNObservability
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令,获取命名空间中的 pod 列表,在其中创建了其中一个相关网络 API。请注意 pod 的
NODE
名称,因为以下步骤中使用它们。oc get pods -n <namespace> -o wide
$ oc get pods -n <namespace> -o wide
Copy 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 wide
Copy 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-node
pod 中打开 bash shell:oc exec -it <pod_name> -n openshift-ovn-kubernetes -- bash
$ oc exec -it <pod_name> -n openshift-ovn-kubernetes -- bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
ovnkube-node
pod 中,您可以运行ovnkube-observ -add-ovs-collector
脚本来显示使用 OVS 收集器的网络事件。例如:/usr/bin/ovnkube-observ -add-ovs-collector
# /usr/bin/ovnkube-observ -add-ovs-collector
Copy 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
传递的标记的完整列表,请参阅 "OVN-Kubernetes 网络流量带有 OVS sampling 标记"。
3.7.1. 使用 OVS 抽样标记的 OVN-Kubernetes 网络流量 复制链接链接已复制到粘贴板!
以下标记可用于使用 CLI 查看 OVN-Kubernetes 网络流量。在 ovnkube-node
pod 中打开 bash shell 后,将这些标记附加到终端中的以下语法中:
命令语法
/usr/bin/ovnkube-observ <flag>
# /usr/bin/ovnkube-observ <flag>
标记 | 描述 |
---|---|
|
返回可用于 |
| 添加 OVS 收集器以启用抽样。请谨慎使用。确保其他人没有使用可观察性。 |
|
通过 NBDB 数据丰富样本。默认值为 |
| 仅将数据包过滤到给定目标 IP。 |
| 仅过滤来自给定源 IP 的数据包。 |
| 使用 psample group_id 打印原始示例 Cookie。 |
| 将示例写入的输出文件。 |
| 打印完整接收的数据包.为 false 时,每个示例仅打印源和目标 IP。 |