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

基于Alpine的k8s kube-scheduler Pod访问服务出现DNS解析错误

根因定位

你的问题与Alpine系统DNS缺陷无关,核心原因是kube-scheduler Pod开启了hostNetwork: true配置:

  • 开启hostNetwork的Pod默认dnsPolicy为Default,会直接复用所在宿主机的/etc/resolv.conf配置,不会自动注入集群CoreDNS地址、集群域名搜索域、ndots参数
  • 普通工作负载Pod默认dnsPolicy为ClusterFirst,会自动使用集群DNS配置,因此dnsutils测试解析正常

最优解决方案(无需手动修改配置,改一次manifest永久生效)

直接在kube-scheduler的Pod manifest中新增dnsPolicy: ClusterFirstWithHostNet配置即可,该参数专门适配hostNetwork模式下需要使用集群DNS的场景。
修改后的spec片段示例:

spec:
  hostNetwork: true
  dnsPolicy: ClusterFirstWithHostNet # 新增这一行即可
  priorityClassName: system-node-critical
  # 其余原有配置保持不变

配置更新后重启Pod,kubelet会自动为Pod生成包含集群DNS配置的/etc/resolv.conf,不需要手动修改任何文件,集群内域名解析即可恢复正常。


备选解决方案(仅当无法修改dnsPolicy时使用)

如果因业务限制不能修改dnsPolicy,也可以通过dnsConfig字段自定义Pod的DNS配置,直接把你手动添加的参数写入manifest即可:

spec:
  hostNetwork: true
  dnsConfig:
    nameservers:
      - 10.96.0.10 # 集群CoreDNS地址
    searches:
      - default.svc.cluster.local
      - svc.cluster.local
      - cluster.local
    options:
      - name: ndots
        value: "5"
  # 其余原有配置保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:24:03