1.4. 已知问题
OVN-Kubernetes 在网络地址转换(NAT)表中设置 iptable 链,以处理到 NodePort 服务的传入流量。当 NodePort 服务无法访问或连接被拒绝时,请检查主机上的 iptable 规则,以确保正确插入相关的规则。
运行以下命令,查看 NodePort 服务的 iptable 规则:
$ sudo iptables-save | grep NODEPORT
输出示例
-A OUTPUT -j OVN-KUBE-NODEPORT -A OVN-KUBE-NODEPORT -p tcp -m addrtype --dst-type LOCAL -m tcp --dport 30326 -j DNAT --to-destination 10.43.95.170:80
OVN-Kubernetes 在 NAT 表中配置
OVN-KUBE-NODEPORT
iptable 链,以将数据包与目标端口和目标网络地址转换(DNAT)与数据包与clusterIP
服务匹配。数据包然后使用主机上的路由规则通过网关网桥br-ex
路由到 OVN 网络。运行以下命令来查看主机路由表:
$ ip route
输出示例
10.43.0.0/16 via 192.168.122.1 dev br-ex mtu 1400
此路由规则与 Kubernetes 服务 IP 地址范围匹配,并将数据包转发到网关网桥
br-ex
。您必须在主机上启用ip_forward
。数据包转发到 OVS 网桥br-ex
后,它由 OVS 中的 OpenFlow 规则处理。然后,OpenSSH 将数据包窃取到 OVN 网络,最终向 pod 窃取。