You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS集群使用Calico CNI时StatefulSet(STS) Pod DNS解析异常求助

EKS集群Calico v3.20.0下StatefulSet Pod DNS解析异常解决方案

问题根因

Calico v3.20.0 VXLAN模式下存在已知的端点同步bug,StatefulSet默认关联Headless Service时,DNS流量无法匹配到正确的CNI转发规则。Deployment无强制绑定Headless Service的逻辑,因此配置hostNetwork: true可以生效,该逻辑对StatefulSet不适用。

修复方案

方案1:升级Calico补丁版本(优先推荐)

  • Calico v3.20.x分支的v3.20.6及以上补丁版本已修复该STS端点同步问题,无需修改现有工作负载配置,直接升级集群内Calico相关组件的镜像版本即可
  • 升级完成后重启所有异常的StatefulSet Pod,验证DNS解析恢复正常

方案2:v3.20.0版本临时适配(无需升级Calico)

  • 单独配置hostNetwork: true对STS无效,需要同步修改STS的dnsPolicy字段为ClusterFirstWithHostNet,配置示例:
apiVersion: apps/v1
kind: StatefulSet
spec:
  template:
    spec:
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      containers:
      # 原有容器配置保持不变
  • 检查STS绑定的Headless Service是否添加了publishNotReadyAddresses: true配置,未配置的情况下会出现DNS解析到未就绪IP导致解析失败的问题
  • 检查Calico网络策略规则,确认已放行kube-system命名空间下CoreDNS服务的53端口UDP/TCP流量,避免STS Pod的DNS请求被拦截

方案3:调整Calico VXLAN模式

  • 如果上述方案均无效,修改Calico VXLAN配置,将vxlanMode从Always调整为CrossSubnet
  • 重启calico-node守护进程集的所有Pod,待所有节点Calico组件恢复正常后,验证STS Pod的DNS解析状态

内容的提问来源于stack exchange,提问作者jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:36:03