首页
/ Kube-OVN 中大规模子网策略路由添加性能问题分析

Kube-OVN 中大规模子网策略路由添加性能问题分析

2025-07-04 18:43:37作者:郦嵘贵Just

在 Kube-OVN 网络插件中,当集群规模较大时,添加策略路由的操作可能会遇到严重的性能问题。本文将深入分析这一问题的根源,并探讨可能的优化方向。

问题现象

在包含 10 个节点、260 个子网和约 5000 个端口的 Kube-OVN 集群中,用户观察到以下现象:

  1. 控制器重启后,"add policy route"操作执行极其缓慢,每条策略路由添加耗时 1-3 秒
  2. 工作队列深度下降缓慢,处理 100 个子网需要约 27 分钟
  3. 存在大量重复的策略路由添加操作
  4. 在添加策略路由和重置 ACL 之间存在约 10 秒的延迟

根本原因分析

策略路由检查机制

Kube-OVN 在添加每条策略路由前,都需要执行 listLogicalRouterPoliciesByFilter 操作来检查该路由是否已存在。在 v1.12.28 版本中,这一操作平均耗时约 600ms。

对于包含 10 个节点和 260 个子网的集群,理论上需要执行 260×10=2600 次策略路由添加操作。每次操作都需要检查所有现有策略路由,导致总检查次数达到 260×260×10=676,000 次,这是性能瓶颈的主要原因。

ACL 处理延迟

在子网创建过程中,ResetLogicalSwitchAclSuccess 事件与 ValidateLogicalSwitchSuccess 之间存在约 10 秒的延迟。这表明 ACL 处理可能也存在类似的性能问题,特别是在集群配置了大量安全组(约 300 个)的情况下。

缓存失效问题

虽然 Kube-OVN 使用了 whereCache 机制来缓存策略路由查询结果,但每次添加新策略路由都会使缓存失效,导致后续查询需要重新获取完整路由列表。

优化方案

策略路由查询优化

在较新版本(如 v1.14.0)中,通过优化 listLogicalRouterPoliciesByFilter 的实现,将查询时间从 600ms 降低到约 10ms。用户可以通过 cherry-pick 相关提交(如 a6f13a6 和 b76c044)到旧版本中获得这一改进。

批量处理机制

当前实现是逐个添加策略路由,可以考虑改为批量处理模式:

  1. 预先收集所有需要添加的策略路由
  2. 一次性查询现有路由状态
  3. 批量添加缺失的路由

ACL 处理优化

对于 ACL 处理延迟问题,可以考虑:

  1. 并行处理不同子网的 ACL
  2. 优化 ACL 查询机制,减少全量查询
  3. 实现增量更新机制,避免每次重置所有 ACL

总结

Kube-OVN 在大规模集群中的策略路由添加性能问题主要源于重复的全量查询操作。通过优化查询实现、引入批量处理机制和改进缓存策略,可以显著提升性能。对于生产环境中的大规模集群,建议升级到包含这些优化的新版本,或手动应用相关补丁。

未来,Kube-OVN 可以考虑实现更智能的路由管理机制,如基于事件触发的增量更新、更细粒度的缓存策略等,以进一步提升大规模集群下的网络配置性能。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
197
2.17 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
208
285
pytorchpytorch
Ascend Extension for PyTorch
Python
59
94
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
973
574
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
549
81
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.02 K
399
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
393
27
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
1.2 K
133