对上游 OVS/OVN 修改¶
上游 OVN/OVS 最初设计目标为通用 SDN 控制器和数据平面。由于 Kubernetes 网络存在一些特殊的用法, 并且 Kube-OVN 只重点使用了部分功能,为了达到更好的性能、稳定性和特定的功能,Kube-OVN 对上游 OVN/OVS 做了部分修改。用户如果使用自己的 OVN/OVS 配合 Kube-OVN 的控制器进行工作时需要注意 下述的改动可能造成的影响。
未合入上游修改:
- 4228eab1d7 修复 vswitchd ofport_usage 内存泄露并定期修剪内存。
- 54056ea65d 调整选举 timer,避免大规模集群选举抖动。
- 6b4dcb311f 添加 fdb 更新日志。
- f627b7721e 修复 hairpin 环境下 fdb 学习错误的问题。
- 3f3e3a436f 为 ovsdb-tool 的 join-cluster 子命令添加 Server ID 参数。
- a6cb8215a8 修复 QoS 内存泄露问题。
- d4d76ddb2e ovsdb-tool:添加 fix-cluster 命令。
- ffd2328d4a netdev:减少获取设备地址的 CPU 利用率。
- d088c5d8c2 ovs-router:跳过获取 kube-ipvs0 的源地址。
- 1b31f07dc6 增加大规模集群的默认探测间隔。
- 54b7678229 更新 ovs-sandbox 以支持 docker run。
- 9ee66bd91b 修改源路由优先级。
- e889d46924 修复 Underlay 模式下达到 resubmit 限制的问题。
- f9e97031b5 ovn-controller:不为 Kube-OVN 端口在 localnet 上发送 GARP。
- 78cade0187 添加有条件跳过 conntrack 的支持。
- 85aa6263ad northd:访问节点本地 DNS IP 时跳过 conntrack。
- 34dc3e3fcf lflow:不将 lport 之间的直接流量发送到 conntrack。
- a297b840c2 在逻辑交换机入口管道中将 DNAT 数据包直接输出到 lsp。
- 03e35ed9c5 ovn-controller:使激活策略在单机箱环境下工作。
- e7d3ba53cd 设置 ACL 时跳过节点本地 DNS IP 的 conntrack。
- 9286e1fd57 优先选择本地后端。
- e5916eb53a 修复具有多个分布式网关端口的 lr-lb DNAT 问题。
- e4e6ea9c5f 支持专用的 BFD LRP。
- e76880e792 northd:添加 nb 选项 version_compatibility。
- 477695a010 northd:跳过从 localnet 端口对 lrp 地址的 arp/nd 请求。
已合入上游修改:
- 20626ea909 组播流量绕过 LB 和 ACL 处理阶段,以提高特定数据链路性能。
- a2d9ff3ccd Deb 构建增加编译优化选项。