配置 MTU
在 Kube-OVN 中,MTU(最大传输单元)设置对于确保网络性能的最佳状态和避免数据包分片至关重要。
MTU 定义了网络中可传输的最大数据包大小。
默认情况下,Kube-OVN 会检测底层物理网络接口的 MTU,并相应地为虚拟网络接口设置 MTU。
但是,在某些场景下,您可能需要为 Kube-OVN 网络组件自定义 MTU 设置。
默认 MTU 行为
Kube-OVN 会自动检测主机物理网络接口的 MTU,
并相应地为 Pod 和 OVS 接口设置 MTU。
在覆盖网络中,Kube-OVN 会降低 MTU 以适应 VXLAN 或 Geneve 封装的开销。
MTU 的计算方式如下:
在底层网络中,MTU 设置为与物理网络接口 MTU 相同。
自定义 MTU 设置
MTU 设置可以全局自定义(针对覆盖网络),也可以针对每个子网单独设置。
WARNING
错误调整 MTU 设置可能导致网络性能问题,
包括数据包丢失和分片。请确保 MTU 设置与您的底层网络基础设施兼容后再进行修改。
NOTE
MTU 配置更改仅对新创建的 Pod 生效。
现有 Pod 将保留其原有的 MTU 设置,直到它们被重新创建。
建议在更改 MTU 设置时规划 Pod 重启。
全局 MTU 配置
要为覆盖网络设置全局 MTU,您可以修改 kube-ovn-cni DaemonSet 的命令参数。
例如,要将全局 MTU 设置为 1400,可以按如下方式更新 DaemonSet:
然后,在容器的参数中添加或更新 --mtu=1400:
NOTE
全局 MTU 设置仅影响覆盖网络。对于底层网络,
MTU 默认保持与物理网络接口 MTU 相同。
按子网 MTU 配置
您也可以通过在子网配置中指定 mtu 字段,为单个子网设置 MTU。
例如,要将某个子网的 MTU 设置为 1450,可以使用以下命令:
该设置将覆盖该子网的全局 MTU 设置。