第一章:部署CoreDNS的正确姿势

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        errors
        health {               # 健康检查端点
            lameduck 15s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure      # 允许直接查询Pod记录
            fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153       # 监控指标端口
        forward . /etc/resolv.conf  # 上游DNS设置
        cache 30               # 查询结果缓存
        loop
        reload
        loadbalance
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: coredns
  namespace: kube-system
spec:
  # 省略部署配置细节约8行...

第二章:实现多集群解析

详细配置示例,包含Hosts插件使用、特定域名转发规则、区域文件配置等

# 多集群DNS解析配置片段
kubernetes cluster.local {
    kubeconfig /etc/coredns/kubeconfig  # 主集群配置
    pods verified
}
kubernetes test.cluster.local {
    kubeconfig /etc/coredns/kubeconfig-test  # 次集群配置
    upstream 10.96.0.10      # 指定上游解析地址
}

第三章:服务发现的内在逻辑

DNS记录生成机制,包含服务A记录、Pod A记录、SRV记录等内容,配实际查询示例

# 服务发现调试命令示例
# 查询web服务的集群IP
nslookup web.default.svc.cluster.local 

# 查询带端口号的SRV记录
dig +short SRV _http._tcp.web.default.svc.cluster.local

# 查询Pod直接解析(需开启pod insecure模式)
host 10-244-0-5.web.default.pod.cluster.local

第四章:技术选型的多维对比

(从性能、可扩展性、资源消耗三个维度与kube-dns对比,含压力测试数据说明)

查询类型 QPS(CoreDNS) QPS(kube-dns)
A记录查询 15,000 9,800
SRV记录查询 12,500 7,200
反向解析 11,000 6,500

第五章:实践出真知的应用场景

微服务架构、多租户环境、混合云部署等6个典型场景,各场景配置要点说明

混合云特殊案例

# 混合云DNS转发规则示例
corp.local:53 {
    forward . 10.100.0.10 10.100.0.11  # 企业内网DNS服务器
    cache 60
    reload
}

第六章:必须知道的三个注意事项

  1. 版本兼容性陷阱:Kubernetes 1.18+需要CoreDNS 1.6.6+支持EDNS0
  2. 缓存时间玄学:默认30秒缓存可能导致服务发现延迟,需根据业务调整
  3. 安全加固要点:限制外部访问的核心配置项说明