Azure AKS项目中azure-cns DaemonSet就绪探针配置错误问题分析

Azure AKS项目中azure-cns DaemonSet就绪探针配置错误问题分析

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

在Azure Kubernetes Service (AKS) 1.27-LTS版本中,使用AKSUbuntu-2204gen2containerd-202502.09.0节点镜像并启用Cilium网络策略时,系统部署的azure-cns DaemonSet出现了就绪探针配置错误的问题。这个问题会导致azure-cns Pod始终无法通过健康检查,影响集群网络功能的正常运行。

问题现象

azure-cns是AKS集群中负责容器网络服务的核心组件,以DaemonSet形式运行在每个节点上。在受影响的版本中,该组件的Pod会持续处于未就绪状态,通过检查发现是其就绪探针(Readiness Probe)配置存在问题。

根本原因分析

通过检查DaemonSet的配置清单,发现就绪探针的HTTP检查被错误地配置为访问"metrics"端口(10092)上的"/readyz"端点。而实际上,"/readyz"健康检查端点应该被配置在"api"端口(10090)上。

具体表现为:

  1. 正确的健康检查端点实际运行在10090端口,访问http://localhost:10090/readyz返回HTTP 200状态码和"OK"响应
  2. 当前配置尝试访问http://localhost:10092/readyz,这会返回HTTP 404状态码和"Not Found"响应
  3. 由于就绪探针持续失败,导致Pod无法进入就绪状态

影响范围

此问题特定于以下环境配置:

  • Kubernetes版本:1.27.102-LTS
  • 节点镜像:AKSUbuntu-2204gen2containerd-202502.09.0
  • 网络策略:Cilium
  • 网络插件:Azure CNI Overlay

该问题是在2025年2月20日的版本更新中引入的一个回归性问题。

解决方案

AKS团队已经识别并修复了此问题。解决方案包括两个可能的方向:

  1. 修正就绪探针端口配置:将就绪探针的端口从"metrics"改为"api",使其指向正确的10090端口
  2. 移除低版本集群的就绪探针:对于1.28以下版本的集群,直接移除就绪探针配置

最终,AKS团队选择了第二种方案,移除了受影响版本集群中azure-cns的就绪探针配置,这已经证实可以解决问题。

技术启示

这个案例提醒我们几个重要的Kubernetes运维实践:

  1. 探针配置验证:在部署或更新工作负载时,必须验证就绪探针和存活探针的配置是否正确指向实际的服务端点
  2. 版本兼容性测试:平台组件的更新需要进行全面的版本兼容性测试,特别是跨不同Kubernetes版本的情况
  3. 配置管理:对于由平台管理的系统组件,需要确保配置模板的正确性和一致性
  4. 监控机制:建立有效的监控机制,及时发现和诊断类似组件健康状态异常的问题

对于使用受影响版本的用户,建议升级到包含修复的后续版本,以确保集群网络功能的稳定性。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赖思岭Wide

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

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

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

打赏作者

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

抵扣说明:

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

余额充值