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]