Skip to content

安装CoreDNS

1. 为什么要引入CoreDNS

看看豆包的回答:

引入 CoreDNS 主要是为了解决传统 DNS 服务在现代分布式系统(尤其是 Kubernetes 等容器编排环境)中存在的局限性,同时提供更灵活、可扩展、插件化的 DNS 解决方案。其核心价值体现在以下几个方面:

传统 DNS 服务的局限性

传统 DNS 服务(如 BIND)设计初衷是为静态网络环境提供域名解析,在动态、分布式的现代架构中存在明显不足:

  • 配置复杂:依赖大量静态文件(如 Zone 文件),修改需重启服务,难以应对频繁变化的网络(如容器的创建 / 销毁)。
  • 扩展性差:功能扩展需修改源码或依赖第三方补丁,无法按需组合功能。
  • 适配云原生场景弱:对服务发现、动态域名更新、多集群解析等云原生需求支持不足。
  • 性能与资源占用:部分传统 DNS 服务资源占用较高,在容器化环境中不够轻量。

CoreDNS 的引入本质上是 DNS 服务从 “静态、单一功能” 向 “动态、可扩展、云原生友好” 的演进。它通过插件化架构、动态更新能力、轻量部署特性,完美适配了现代分布式系统(尤其是 Kubernetes)的需求,同时兼顾了传统 DNS 场景的灵活性和可管理性,因此成为当前主流的 DNS 解决方案。

即解决传统DNS服务的局限性,适配现代化分布式系统的需求。

废话不多说,直接拿来用看看。

2. 下载和安装CoreDNS

当前最新的版本是1.13.1:

Snipaste_2025-11-13_22-36-25.png

点击页面的【Download】按钮,直接跳转到github下载页面:https://github.com/coredns/coredns/releases/tag/v1.13.1 .

下载第5项的 coredns_1.13.1_linux_amd64.tgz

Snipaste_2025-11-13_22-38-53.png

下载完成后,将其上传到Linux服务器上。

sh
# 查看上传的文件
[root@localhost ~]# ll coredns_1.13.1_linux_amd64.tgz
-rw-r--r-- 1 root root 22279119 2025-11-12 21:56 coredns_1.13.1_linux_amd64.tgz

# 查看压缩包的sha256哈希值
[root@localhost ~]# sha256sum coredns_1.13.1_linux_amd64.tgz
1693b2bc2091981bc870c89c69fba13bd97d985cb3486e0bc2e932d73964cca8  coredns_1.13.1_linux_amd64.tgz
[root@localhost ~]#

可以看到,与页面上面显示的哈希值sha256:1693b2bc2091981bc870c89c69fba13bd97d985cb3486e0bc2e932d73964cca8是一致的,说明文件是正常的。

解压文件:

sh
[root@localhost ~]# tar -zxvf coredns_1.13.1_linux_amd64.tgz
coredns
[root@localhost ~]# ll coredns
-rwxr-xr-x 1 1001 1001 75808952 2025-10-09 04:28 coredns
[root@localhost ~]#

修改文件所有者和所有组,并将coredns移动到/usr/bin目录下:

sh
# 修改文件所有者和所有组
[root@localhost ~]# chown root.root coredns
[root@localhost ~]# ll coredns
-rwxr-xr-x 1 root root 75808952 2025-10-09 04:28 coredns

# 移动文件到/usr/bin目录下
[root@localhost ~]# mv coredns /usr/bin/
[root@localhost ~]# ll /usr/bin/coredns
-rwxr-xr-x 1 root root 75808952 2025-10-09 04:28 /usr/bin/coredns
[root@localhost ~]#

可以看到解压后就一个文件。尝试执行coredns相关命令。

2.1 查看coredns版本和帮助信息

  • coredns -version可查看CoreDNS版本信息。
  • coredns -h可查看帮助信息。
sh
[root@localhost ~]# coredns -version
CoreDNS-1.13.1
linux/amd64, go1.25.2, 1db4568
[root@localhost ~]# coredns -h
Usage of coredns:
  -conf string
        Corefile to load (default "Corefile")
  -dns.port string
        Default port (default "53")
  -p string
        Default port (default "53")
  -pidfile string
        Path to write pid file
  -plugins
        List installed plugins
  -quiet
        Quiet mode (no initialization output)
  -version
        Show version
[root@localhost ~]#

本首页参考 https://notes.fe-mm.com/ 配置而成