Azure AKS 中 Windows 节点 AMA 日志组件 CPU 资源过度分配问题分析
AKS Azure Kubernetes Service 项目地址: https://gitcode.com/gh_mirrors/ak/AKS
问题背景
在 Azure Kubernetes Service (AKS) 中使用 Windows 节点池并启用 Azure Monitor 功能时,系统会自动部署名为 ama-logs-windows 的 DaemonSet。该 DaemonSet 包含两个关键容器:ama-logs-windows 和 addon-token-adapter-win。这两个容器当前配置了过高的 CPU 资源请求,导致集群资源利用率低下和成本浪费。
技术细节分析
资源请求配置现状
当前部署的 AMA 日志组件存在以下资源请求配置问题:
- ama-logs-windows 容器配置了 500m CPU 请求
- addon-token-adapter-win 容器配置了 400m CPU 请求
- 实际监控数据显示:
- ama-logs-windows 实际 CPU 使用量约为 40m
- addon-token-adapter-win 实际 CPU 使用量约为 106m
资源浪费影响
这种过度配置的资源请求导致了严重的资源浪费:
- 以 DS2_v2 节点类型(2 CPU)为例,启用 Azure Monitor 后节点数量从 8-9 个激增至 18 个
- 每个节点浪费约 0.75 CPU 资源(900m 请求 - 150m 实际需求)
- 对于 20 个 DS2_v2 节点的集群,潜在可节省约 7 个节点(35% 资源)
问题根源
- 资源请求值设置不合理,远高于实际使用量
- addon-token-adapter-win 容器仅配置了 CPU 限制而未设置请求,导致 Kubernetes 默认使用限制值作为请求值
- Windows 节点上的配置与 Linux 节点不一致(Linux 节点 AMA 容器仅请求约 170m CPU)
解决方案与进展
微软团队已确认该问题,并计划在近期发布修复版本:
- 将调整 AMA 日志组件的 CPU 请求至更合理的水平(约 150m)
- 明确为 addon-token-adapter-win 容器设置适当的请求值
- 预计修复将在 6 月底前完成部署
临时缓解措施
在官方修复发布前,用户可以采取以下措施:
- 监控 AMA 容器的实际资源使用情况
- 考虑手动调整节点池规模以平衡资源利用率
- 评估是否可暂时降低监控粒度以减少资源消耗
技术建议
- 定期检查系统组件的资源请求与实际使用情况
- 对于关键生产环境,建议在非高峰时段进行监控功能测试
- 关注官方更新日志,及时应用修复版本
该问题的解决将显著提升 Windows 节点池的资源利用效率,为 AKS 用户带来可观的成本节约。
AKS Azure Kubernetes Service 项目地址: https://gitcode.com/gh_mirrors/ak/AKS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考