ACK Edge集群默认采用CoreDNS作为DNS服务器,并且采用DaemonSet方式将CoreDNS部署在每个边缘节点上。本文主要介绍ACK Edge集群中CoreDNS的默认配置以及CoreDNS扩展配置中如何自定义配置Hosts。
CoreDNS配置入口
在kube-system命名空间下的coredns配置项主要用于管理和配置CoreDNS服务,配置项操作入口如下:
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在配置项页面顶部设置命名空间为kube-system,搜索coredns配置项,单击coredns右侧操作列下的YAML 编辑,查看或自定义CoreDNS配置信息。 
CoreDNS默认配置
不同CoreDNS版本的配置项略有差异,以下是ACK Edge集群中,1.11版本CoreDNS的默认配置。
.:53 {
    errors
    health {
       lameduck 15s
    }
    hosts /etc/edge/tunnel-nodes {
        reload 300ms
        fallthrough
    }        
    ready
    kubeapi
    k8s_event {
      level info error warning
    }
    kubernetes cluster.local in-addr.arpa ip6.arpa {
      pods disabled
      ttl 30
      fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    forward . /etc/resolv.conf {
      prefer_udp
    }
    cache 30
    log
    loop
    reload
    loadbalance
}关键参数说明如下:
| 参数 | 描述 | 
| 
 | 错误信息到标准输出。 | 
| 
 | CoreDNS自身健康状态报告,默认监听端口8080,一般用来做健康检查。您可以通过 | 
| 
 | CoreDNS Hosts插件,指定域名与地址的映射关系。 重要  ACK Edge集群占用了此处默认域的Hosts配置,请勿在此处添加额外配置。如有Hosts配置需求,请参见下文Hosts自定义配置。 | 
| 
 | CoreDNS插件状态报告,默认监听端口8181,一般用来做可读性检查。可以通过 | 
| 
 | CoreDNS Kubernetes插件,提供集群内服务解析能力。 | 
| 
 | CoreDNS自身metrics数据接口。可以通过 | 
| 
 | 将域名查询请求转到预定义的DNS服务器。默认配置中,当域名不在Kubernetes域时,将请求转发到预定义的解析器(/etc/resolv.conf)中。默认使用宿主机的/etc/resolv.conf配置。 | 
| 
 | DNS缓存。 | 
| 
 | 环路检测,如果检测到环路,则停止CoreDNS。 | 
| 
 | 允许自动重新加载已更改的Corefile。编辑ConfigMap配置后,请等待两分钟以使更改生效。 | 
| 
 | 循环DNS负载均衡器,可以在答案中随机A、AAAA、MX记录的顺序。 | 
Hosts自定义配置
如果您需要为特定域名指定Hosts,例如为www.hello.example.com指定IP为127.0.0.1,您可以使用Hosts插件进行配置,修改配置前请仔细阅读CoreDNS官方文档。
由于ACK Edge集群占用了默认域的Hosts配置,您需要新建一个域,例如 example.com:53表示匹配后缀为example.com的域名,然后在新建的域名中配置Hosts www.hello.example.com和地址127.0.0.1。
配置示例
.:53 {
    errors
    health {
       lameduck 15s
    }
    hosts /etc/edge/tunnel-nodes {
        reload 300ms
        fallthrough
    }        
    ready
    kubeapi
    k8s_event {
      level info error warning
    }
    kubernetes cluster.local in-addr.arpa ip6.arpa {
      pods disabled
      ttl 30
      fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    forward . /etc/resolv.conf {
      prefer_udp
    }
    cache 30
    log
    loop
    reload
    loadbalance
}
example.com:53 {   # 新增域名。
    errors
    hosts {
      127.0.0.1 www.hello.example.com  # 域名解析。
      fallthrough
    }
    cache 30
    forward . /etc/resolv.conf {
      prefer_udp
    }
}更多CoreDNS配置,请参见CoreDNS配置说明。
相关文档
- 关于CoreDNS升级,请参见CoreDNS自动升级、CoreDNS手动升级。 
- 如需分析和监控CoreDNS日志,请参见分析和监控CoreDNS日志。