AKS中Retina Agent导致节点网络吞吐量下降30%的问题分析

AKS中Retina Agent导致节点网络吞吐量下降30%的问题分析

AKS Azure Kubernetes Service AKS 项目地址: https://gitcode.com/gh_mirrors/ak/AKS

问题背景

在Azure Kubernetes Service(AKS)环境中,用户在进行控制平面升级后,发现部分集群出现了网络吞吐量显著下降的情况。经过排查,发现问题与Retina Agent的自动安装有直接关联。当Retina Agent被部署到节点后,网络密集型Pod的带宽性能下降至原有水平的30%左右。

技术现象

通过观测数据可以清晰地观察到:

  1. Retina Agent部署后,节点网络吞吐量立即出现明显下降
  2. 移除Retina Agent后,网络性能恢复到正常水平
  3. 问题在Kubernetes 1.29及以上版本中较为突出

根本原因分析

Retina Agent是AKS中与Azure Monitor集成的一个组件,主要用于网络可观测性。它基于eBPF技术实现,能够提供深入的网络观测能力。然而,eBPF程序在内核层面的运行会带来一定的性能开销:

  1. 内核处理开销:eBPF程序需要在内核空间对每个网络包进行处理,增加了CPU使用率
  2. 锁竞争:网络数据包处理路径上的额外锁可能导致性能瓶颈
  3. 缓存失效:额外的处理步骤可能导致CPU缓存效率降低

微软内部测试数据显示:

  • 同一节点内Pod间通信(INTRA节点流量)性能下降约20%
  • 跨节点Pod间通信(INTER节点流量)影响较小

解决方案

目前官方提供的解决方案包括:

  1. 禁用Azure Monitor Metrics: 通过AKS CLI工具执行命令可禁用观测功能,这也会连带移除Retina Agent。但此方案会同时失去控制平面观测能力。

  2. 使用准入控制Webhook: 通过自定义准入控制器添加节点选择器,阻止Retina Agent调度到节点。这种方法可以保留观测功能的同时避免性能影响。

  3. 等待官方修复: 微软Retina团队正在构建性能测试管道,未来版本可能会优化eBPF程序的性能影响。

最佳实践建议

对于生产环境中的网络敏感型应用:

  1. 在升级到Kubernetes 1.29+版本前,评估网络观测需求
  2. 如果必须使用观测功能,考虑在非关键节点部署Retina Agent
  3. 密切观测节点网络性能指标,建立性能基线
  4. 关注AKS更新日志,及时获取Retina Agent的性能优化版本

未来展望

随着eBPF技术的不断成熟和优化,预计此类性能问题将逐步缓解。微软已公开表示正在建设专门的性能测试管道,未来Retina Agent的性能特性将更加透明和可预测。

AKS Azure Kubernetes Service AKS 项目地址: https://gitcode.com/gh_mirrors/ak/AKS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈玥予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值