用途:CoreDNS DNS 服务器管理,覆盖 Corefile 语法、插件链配置、Kubernetes 集群 DNS、递归解析、权威区域与指标监控。运行形态包括独立进程、systemd 服务与 Kubernetes 部署。
主要能力与常用命令:配置文件默认 /etc/coredns/Corefile(独立运行)或 kube-system 下的 coredns ConfigMap;二进制位于 /usr/local/bin/coredns(独立)或 /usr/bin/coredns(包安装)。校验配置用 coredns -conf /etc/coredns/Corefile -validate;重载配置可用 kill -SIGUSR1 $(pidof coredns) 或 systemctl reload coredns;查看编译插件用 coredns -plugins。健康端点 curl -s http://localhost:8080/health,就绪端点 curl -s http://localhost:8181/ready,指标 curl -s http://localhost:9153/metrics。日志:systemd 用 journalctl -u coredns -f,K8s 用 kubectl logs -n kube-system -l k8s-app=kube-dns。测试查询用 dig @127.0.0.1 example.com A 或 dig +tcp。Kubernetes 下编辑 ConfigMap:kubectl -n kube-system edit configmap coredns;重启用 kubectl -n kube-system rollout restart deployment/coredns。默认端口 53/UDP 与 53/TCP,9153/TCP 为 Prometheus 指标,8080/TCP 健康检查,8181/TCP 就绪检查,可用 ss -ulnp | grep coredns 验证。
适用场景:独立 DNS 解析、Kubernetes 集群 DNS 运维、递归与权威区域服务,以及指标与健康状态监控。
限制与注意事项:插件链在 zone 块内自上而下执行,顺序影响行为(如 cache 需在 forward 之前);1.5 起 forward 取代 proxy;health、ready、prometheus 为独立端点;Kubernetes 中 kubelet 的 clusterDNS 必须指向 kube-dns Service ClusterIP;自定义插件需用 xcorefile 重新编译,标准二进制与发行版包不含第三方插件;SIGUSR1 重载可能造成少量查询丢失,K8s 零丢失需滚动重启;loop 插件在集群中属关键保护。资料未提供收费、价格等信息。