光之使者 发表于 5 天前

coredns设置文件详解

k8s域名剖析

2种方式

[*]集群内部域名(如 my-svc.default.svc.cluster.local)

[*]Pod → CoreDNS(10.96.0.10)
[*]CoreDNS 进入 kubernetes 插件
[*]插件查 K8s API:找到 Service → 拿到 ClusterIP
[*]直接返回给 Pod → 不走外网

[*]外网域名(如 www.baidu.com)

[*]Pod → CoreDNS
[*]kubernetes 插件不认识,交给 forward 插件
[*]forward 把哀求发给上游 DNS(你设置的)
[*]上游返回 IP → CoreDNS 复兴 Pod
[*]网络走宿主机网卡出去

coredns设置

# kubectl edit cm -n kube-system coredns

apiVersion: v1
data:
Corefile: |
    .:53 {
      errors
      health {
         lameduck 5s
      }
      ready
      kubernetes cluster.local in-addr.arpa ip6.arpa {
         pods insecure
         fallthrough in-addr.arpa ip6.arpa
         ttl 30
      }
      prometheus :9153
       forward . /etc/resolv.conf {
         max_concurrent 1000
       }
      cache 30
      loop
      reload
      loadbalance
    }
kind: ConfigMap
metadata:
creationTimestamp: "2026-05-10T08:02:36Z"
name: coredns
namespace: kube-system
resourceVersion: "33482"
uid: 9fc05c49-3b66-414b-b533-561334631418      forward . /etc/resolv.conf {
         max_concurrent 1000
       }

[*]. 匹配全部域名,全局匹配
[*]forward: coredns转发插件,意思是把剖析哀求转发到外部的dns服务器
[*]读取的是/etc/resolv.conf,这个设置作为上游的dns剖析地点
紧张作用:集群内全部pod的外网域名剖析,全部转发到k8s节点宿主机设置的dns服务器上
解释掉的话集群pod就上不了网了
# 注释后,还需要重启才能生效
# kubectl rollout restart deployment -n kube-system coredns 不依靠节点dns,指定公共的dns剖析外网

# 阿里云的dns解析
      forward . 223.5.5.5 {
          max_concurrent 1000
      }

# 重启
# kubectl rollout restart deployment -n kube-system coredns 业务pod--->节点网络--->coredns---> 宿主机网卡----> 公共dns

免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.
页: [1]
查看完整版本: coredns设置文件详解