KubeVela 稳定性及可扩展性评估

💡 原文中文,约15200字,阅读约需37分钟。
📝

内容提要

本文介绍了 KubeVela 应用程序交付项目的性能优化策略和实验结果,包括状态保持并行化、索引 AppKey、过滤不必要的更新、直接连接到集群网关和减少 informer cache。实验结果表明,KubeVela v1.8.0 的性能比 v1.7.5 好得多,能够处理包括单集群、大型应用程序、多集群部署、持续更新在内的 3k 个应用程序。在大规模负载测试中,KubeVela 控制平面可以满足管理海量集群的需要。

🎯

关键要点

  • KubeVela v1.8.0 的性能优化策略包括状态保持并行化、索引 AppKey、过滤不必要的更新、直接连接到集群网关和减少 informer cache。
  • KubeVela 经过负载测试,能够处理 3000 个应用程序,包括单集群、大型应用程序和多集群部署。
  • KubeVela 的负载测试历史显示,过去的版本在性能上存在瓶颈,特别是在节点数量和应用程序更新方面。
  • KubeVela 应用的基本流程涉及用户请求、Webhook 验证、事件推送和状态更新等步骤。
  • 为了提高 KubeVela 的性能,建议启用可观测性插件、删除 Webhook、启用多分片功能和使用内网连接。
  • 负载测试工具包括 kubemark 和 k3d/KinD,用于模拟 Kubernetes 节点和托管集群。
  • 在 KubeVela v1.8 中,状态保持并行化提高了约 30% 的性能,索引 AppKey 显著减少了 CPU 使用时间。
  • 过滤不必要的更新和直接连接到集群网关也显著降低了延迟和协调时间。
  • 通过减少 informer cache 的大小,KubeVela 在内存使用上取得了显著改善,特别是在持续更新的场景中。
  • KubeVela v1.8.0 支持控制器分片,能够横向扩展应用程序容量,且性能优于 v1.7.5。
  • 在多集群场景下,KubeVela v1.8.0 的性能表现优于 v1.7.5,能够处理 3000 个多集群应用程序。
  • 大规模负载测试表明,KubeVela 控制平面能够管理 40 万个应用程序,且在适当配置下表现良好。
  • KubeVela 的性能瓶颈可能来自托管集群的响应速度,未来将持续关注系统的底层性能。
➡️

继续阅读