CoreDNS自定义配置

更新时间:2025-01-17 06:19

ACK Edge集群默认采用CoreDNS作为DNS服务器,并且采用DaemonSet方式将CoreDNS部署在每个边缘节点上。本文主要介绍ACK Edge集群中CoreDNS的默认配置以及CoreDNS扩展配置中如何自定义配置Hosts。

CoreDNS配置入口

kube-system命名空间下的coredns配置项主要用于管理和配置CoreDNS服务,配置项操作入口如下:

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择配置管理 > 配置项

  3. 配置项页面顶部设置命名空间为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
}

关键参数说明如下:

参数

描述

参数

描述

errors

错误信息到标准输出。

health

CoreDNS自身健康状态报告,默认监听端口8080,一般用来做健康检查。您可以通过http://localhost:8080/health获取健康状态。

hosts

CoreDNS Hosts插件,指定域名与地址的映射关系。

重要

ACK Edge集群占用了此处默认域的Hosts配置,请勿在此处添加额外配置。如有Hosts配置需求,请参见下文Hosts自定义配置

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记录的顺序。

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配置说明

相关文档

  • 本页导读 (1)
  • CoreDNS配置入口
  • CoreDNS默认配置
  • Hosts自定义配置
  • 配置示例
  • 相关文档
文档反馈
phone 联系我们

立即和Alibaba Cloud在线服务人员进行交谈,获取您想了解的产品信息以及最新折扣。

alicare alicarealicarealicare