第 4 章 使用 ovnkube-trace 追踪 Openflow
OVN 和 OVS 流量流可以在一个名为 ovnkube-trace
的单个实用程序中模拟。ovnkube-trace
工具运行 ovn-trace
、ovs-appctl ofproto/trace
和 ovn-detrace
,并在单个输出中关联这些信息。
您可以从专用容器执行 ovnkube-trace
二进制文件。对于 OpenShift Container Platform 4.7 后的版本,您还可以将该二进制文件复制到本地主机中,并从该主机执行它。
4.1. 在本地主机上安装 ovnkube-trace 复制链接链接已复制到粘贴板!
ovnkube-trace
工具跟踪在 OVN-Kubernetes 驱动的 OpenShift Container Platform 集群中点之间的任意 UDP 或 TCP 流量的数据包模拟。将 ovnkube-trace
二进制文件复制到本地主机,使其可以针对集群运行。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
使用具有
cluster-admin
权限的用户登陆到集群。
流程
使用以下命令创建 pod 变量:
POD=$(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -o name | head -1 | awk -F '/' '{print $NF}')
$ POD=$(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -o name | head -1 | awk -F '/' '{print $NF}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本地主机上运行以下命令,从
ovnkube-control-plane
pod 复制二进制文件:oc cp -n openshift-ovn-kubernetes $POD:/usr/bin/ovnkube-trace -c ovnkube-cluster-manager ovnkube-trace
$ oc cp -n openshift-ovn-kubernetes $POD:/usr/bin/ovnkube-trace -c ovnkube-cluster-manager ovnkube-trace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您使用 Red Hat Enterprise Linux (RHEL) 8 运行
ovnkube-trace
工具,您必须将文件/usr/lib/rhel8/ovnkube-trace
复制到本地主机。运行以下命令,使
ovnkube-trace
可执行:chmod +x ovnkube-trace
$ chmod +x ovnkube-trace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,显示
ovnkube-trace
可用的选项:./ovnkube-trace -help
$ ./ovnkube-trace -help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 支持的命令行参数是熟悉的 Kubernetes 构造,如命名空间、Pod、服务,因此您不需要查找 MAC 地址、目标节点的 IP 地址或 ICMP 类型。
日志级别为:
- 0 (最小输出)
- 2 (显示 trace 命令结果的详细输出)
- 5 (调试输出)