赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. ACK Edge集群
  4. 操作指南
  5. 网络管理
  6. 服务发现DNS
  7. CoreDNS自定义配置

CoreDNS自定义配置

  • 服务发现DNS
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

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

相关文档

  • 关于CoreDNS升级,请参见CoreDNS自动升级、CoreDNS手动升级。

  • 如需分析和监控CoreDNS日志,请参见分析和监控CoreDNS日志。

相关文章

CoreDNS自定义配置 2025-04-21 11:15

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

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号