更新时间:2021-12-25 GMT+08:00
分享

故障排除

问题一:OVS启动过程提示“ovs-ctl command not found”

现象描述

输入命令ovs-ctl start,显示ovs-ctl command not found。

可能原因

未设置工具路径至环境变量,参考OVS默认配置启动中的描述设置环境变量。

处理步骤

  1. 确认Open vSwitch安装路径,例如“/usr/local/share”
  2. 设置环境变量。
    1
    export PATH=$PATH:/usr/local/share/openvswitch/scripts
    
  3. 重新启动OVS组件。
    1
    ovs-ctl start
    

问题二:K8s部署OVS网络平面后,节点间网络互通异常

现象描述:

K8S部署OVS网络平面后,运行iperf/qperf类业务,Pod间网络带宽不正常,显示为0。

可能原因:

容器内网络接口默认MTU与宿主机侧保持一致,为1500,而数据包从容器内发出后将在宿主机侧OVS网桥进行GRE/VxLAN Overlay的二次封装,封装后数据包将超过1500,导致宿主机发送网络包异常。

处理步骤:

建议在Docker启动命令中添加网口MTU配置,配置容器内网络接口MTU为1400。

问题三:K8s部署Calico后显示Calico-node处于Running但一直无法Ready

现象描述

K8S部署Calico后显示Calico-node处于Running但一直无法Ready。

可能原因

如下图所示,查看Docker logs发现一直在进行dataplane updates操作,resync同步始终无法建立连接;此时在Master节点上使用calicoctl工具查询node信息,发现有部分节点存在网络双平面,而calico组件部署时一般默认采用AUTO_DETECTION来发现BGP网络接口,在这些节点选错了对外网络接口,因此导致了网络无法互通。

处理步骤

建议采用nodeSelector + IP_AUTODETECTION_METHOD结合的方式,区分这些节点,来实现BGP网络接口的手动识别。

问题四:K8s部署Calico后运行业务节点网络中断

现象描述

K8S部署Calico后运行业务节点网络中断。

可能原因

排查环境网络平面是否有采用1822网卡。

Calico组件默认使用IPIP(IP Tunnel模式),而1822网卡固件版本不支持IP隧道报文的校验和卸载功能,以及TSO功能;如果网卡使能发送方向校验和卸载功能,以及TSO功能时,如果系统发送IP隧道报文,会导致网卡功能性异常,导致网卡硬件不从主机侧取包发往网络侧,驱动侧报TX timeout。

具体体现为业务网络中断,与网关断开连接,只有重启才能够恢复正常使用。

处理步骤

建议首先排查网卡,若为1822网卡,建议使用ethtool关闭TX方向校验和卸载。

1
ethtool -K <eth-port> tx off
分享:

    相关文档

    相关产品

close