在 NSX 4.1 中,Antrea 流跟踪不支持跟踪在 Antrea Kubernetes 集群与 NSX 覆盖网络之间传输的数据包路径。但是,本文档中介绍了一些可行的解决办法。
在按照本文档中的工作流说明进行操作之前,请仔细阅读以下重要说明,以确保在
NSX
流跟踪和
Antrea 流跟踪会话中正确配置
协议类型和
目标端口字段。
重要说明: 默认情况下,
流跟踪会话的
协议类型设置为
ICMP。如果将其更改为
TCP,
目标端口将默认设置为
0。请记住指定 Kubernetes 服务或
NSX 负载均衡器虚拟服务器的端口号。这是因为 K8s 服务和
NSX 负载均衡器虚拟服务器侦听特定的 TCP 端口。简言之,您必须在
流跟踪会话中准确指定所有信息(IP 地址、协议类型和目标端口),以确保注入的数据包由 K8s 服务或
NSX 负载均衡器处理。
跟踪从 NSX 虚拟机传输到 K8s Pod 的数据包路径
如果要跟踪从
NSX 覆盖网络中的虚拟机传输到
Antrea Kubernetes 集群中的 Pod 工作负载的数据包路径,请执行以下步骤:
- 导航到流跟踪卡中,单击开始。 ,然后在
- 在源区域中,从类型下拉菜单中选择虚拟机。
- 在目标区域中,选择 IP-Mac。单击 L3 选项,然后输入以下任一 IP 地址:
- Kubernetes Ingress IP 地址
- LoadBalancer 服务 IP 地址
- 节点 IP 地址
- Pod IP 地址(如果 Pod IP 在底层网络上可路由)
NSX 流跟踪将跟踪数据包路径,直到数据包离开 NSX 覆盖网络为止。
目前,
Antrea 流跟踪的
源中不支持以下组件:
- Kubernetes 服务(LoadBalancer、NodePort)
- Kubernetes Gateway
- Kubernetes Ingress
因此,在数据包到达 Antrea Kubernetes 集群后,无法跟踪该数据包的路径。
跟踪从 K8s Pod 传输到 NSX 虚拟机的数据包路径
如果要跟踪从
Antrea Kubernetes 集群中的 Pod 传输到
NSX 覆盖网络中的虚拟机的数据包路径,请执行以下步骤:
- 导航到流跟踪卡中,单击开始。 ,然后在
- 单击 Antrea 流跟踪选项卡。
- 在源区域中,从类型下拉菜单中选择 Pod。
- 在目标区域中,从类型下拉菜单中选择 IP 地址,然后输入 NSX 负载均衡器虚拟机的 IP 地址。
Antrea 流跟踪将跟踪数据包路径,直到数据包离开 Antrea Kubernetes 集群为止。
如本文档前面提供的重要说明中所述,请确保您在 Antrea 流跟踪会话中准确指定了所有信息(IP 地址、协议类型和目标端口)
- 现在,您可以使用 NSX 流跟踪功能跟踪从 Tier-0 网关接口传输到 NSX 覆盖网络中的目标虚拟机的数据包。按如下方式在 NSX 流跟踪中配置源:
- 类型:端口/接口
- 连接:Edge 上行链路
- 端口:从下拉菜单中选择 Tier-0 接口。
按如下方式在 NSX 流跟踪中配置 目标:- 类型:IP-Mac
- 层:L3(网络层)
- IP 地址:输入 NSX 负载均衡器虚拟机的 IP 地址。
跟踪结果将显示 NSX 负载均衡器如何选择虚拟机作为目标,以及数据包通过何种路径从 NSX 负载均衡器传输到目标虚拟机。