Coredns
Contents
CoreDns
Pod 内/etc/resolv.conf详解
|
|
- nameserver 定义DNS服务器的IP地址。
- search 设置域名的查找后缀规则,查找配置越多,说明域名解析查找匹配次数越多。集群匹配有
kube-system.svc.cluster.local.
、svc.cluster.local.
、cluster.local.
3个后缀,最多进行8次查询才能得到正确解析结果,因为集群里面进行IPV4和IPV6查询各四次。 - options 定义域名解析配置文件选项,支持多个KV值。例如该参数设置成ndots:5,说明如果访问的域名字符串内的点字符数量超过ndots值,则认为是完整域名,并被直接解析;如果不足ndots值,则追加search段后缀再进行查询。
集群DnsPolicy
- ClusterFirst: 通过CoreDNS来做域名解析,Pod内/etc/resolv.conf配置的DNS服务地址是集群DNS服务的kube-dns地址。该策略是集群工作负载的默认策略。
- None: 忽略集群DNS策略,需要您提供dnsConfig字段来指定DNS配置信息。
- Default:Pod直接继承集群节点的域名解析配置,即服务器的/etc/resolv.conf
- ClusterFirstWithHostNetwork:强制在hostNetWork网络模式下使用ClusterFirst策略(默认使用Default策略)。
CoreDns Configurtion
|
|
额外配置
参数 | 说明 |
---|---|
errors | 错误信息到标准输出。 |
health | CoreDNS自身健康状态报告,默认监听端口8080,一般用来做健康检查。您可以通过http://localhost:8080/health获取健康状态。 |
ready | CoreDNS插件状态报告,默认监听端口8181,一般用来做可读性检查。可以通过http://localhost:8181/ready获取可读状态。当所有插件都运行后,ready状态为200。 |
kubernetes | CoreDNS kubernetes插件,提供集群内服务解析能力。 |
prometheus | CoreDNS自身metrics数据接口。可以通过http://localhost:9153/metrics获取prometheus格式的监控数据。 |
forward(或proxy) | 将域名查询请求转到预定义的DNS服务器。默认配置中,当域名不在kubernetes域时,将请求转发到预定义的解析器(/etc/resolv.conf)中。默认使用宿主机的/etc/resolv.conf配置。 |
cache | DNS缓存。 |
loop | 环路检测,如果检测到环路,则停止CoreDNS。 |
reload | 允许自动重新加载已更改的Corefile。编辑ConfigMap配置后,请等待两分钟以使更改生效。 |
loadbalance | 循环DNS负载均衡器,可以在答案中随机A、AAAA、MX记录的顺序。 |
log |
如果需将CoreDNS每次域名解析的日志打印出来,您可以开启log插件,在Corefile里加上log。 |
host |
自定义hosts,需要配置fallthrough,否则会造成非定制hosts域名解析失败 |
rewrite stop |
将www.baidu.com CAME到 startup.default.svc.cluster.local服务 |
外部服务访问k8s service
把coredns的service_ip 填写到Ecs的/etc/resolv.conf,需要Ecs到k8s的网络是通的
nameserver 22.68.0.2
service调用最佳实践
在k8s内调用对方的svc,如果域名的.
少于5个,他会根据/etc/resolv.conf依次search,最多会解析8次分别为ipv4&v6
各4次,如果.
大于等于5会直接解析。
|
|
同命名空间填写test
or test.bar.svc.cluster.local.
都会解析2次,test
虽然不满足5个.
,他第一次会直接search test.bar.svc.cluster.local.
|
|
跨命名空间填写test.bar
会解析4次,第二次ipvd会search到 test.bar.svc.cluster.local.
无论是跨命名还是同命名空间填写test.bar.svc.cluster.local.
都会search一次ipv4&v6即为两次。
集群外的域名例如www.google.com
他会解析8次,如果以.
结尾www.google.com.
他只会解析两次。
Author Ren Hao
LastMod 2021-03-23