CoreDNS域名解析 本文主要介绍CoreDNS域名解析插件。 插件简介 CoreDNS域名解析插件是一款通过链式插件的方式为Kubernetes提供域名解析服务的DNS服务器。 CoreDNS是由CNCF孵化的开源软件,用于CloudNative环境下的DNS服务器和服务发现解决方案。CoreDNS实现了插件链式架构,能够按需组合插件,运行效率高、配置灵活。在kubernetes集群中使用CoreDNS能够自动发现集群内的服务,并为这些服务提供域名解析。同时,通过级联云上DNS服务器,还能够为集群内的工作负载提供外部域名的解析服务。 该插件为系统资源插件,kubernetes 1.11及以上版本的集群在创建时默认安装。 目前CoreDNS已经成为社区kubernetes 1.11及以上版本集群推荐的DNS服务器解决方案。 CoreDNS官网: 开源社区地址: 说明 DNS详细使用方法请参见 。 约束与限制 CoreDNS正常运行或升级时,请确保集群中的可用节点数大于等于CoreDNS的实例数,且CoreDNS的所有实例都处于运行状态,否则将导致插件异常或升级失败。 安装插件 本插件为系统默认安装,若因特殊情况卸载后,可参照如下步骤重新安装。 步骤 1 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“插件管理”,在右侧找到 coredns ,单击“安装”。 步骤 2 在安装插件页面,选择插件规格,并配置相关参数。 coredns插件参数配置 参数 参数说明 :: 插件规格 并发域名解析能力,请根据业务需求选择插件规格。 如选择“自定义qps”,CoreDNS所能提供的域名解析QPS与CPU消耗成正相关,请根据业务需求,合理调整插件实例数和容器CPU/内存配额。 实例数 选择上方插件规格后,显示插件中的实例数。 容器 选择插件规格后,显示插件容器的CPU和内存配额。 参数配置 parameterSyncStrategy:插件升级时是否配置一致性检查。 ensureConsistent:表示启用配置一致性检查,如果集群中记录的配置和实际生效配置不一致,插件将无法升级。 force:表示升级时忽略配置一致性检查。请您自行确保当前生效配置和原配置一致。插件升级完毕后,需恢复parameterSyncStrategy值为ensureConsistent,重新启用配置一致性检查。 stubdomains:存根域,您可对自定义的域名配置域名服务器,格式为一个键值对,键为DNS后缀域名,值为一个或一组DNS IP地址。 upstreamnameservers:上游域名服务器地址。 servers: coredns 1.23.1插件版本开始开放servers配置,用户可对servers做定制化配置,参见dnscustomnameservers,其中plugins为coredns中各组件配置(参考< $name $parameters { $configBlock } 示例: { "servers": [ { "plugins": [ { "name": "bind", "parameters": "{$PODIP}" }, { "name": "cache", "parameters": 30 }, { "name": "errors" }, { "name": "health", "parameters": "{$PODIP}:8080" }, { "configBlock": "pods insecurenfallthrough inaddr.arpa ip6.arpa", "name": "kubernetes", "parameters": "cluster.local inaddr.arpa ip6.arpa" }, { "name": "loadbalance", "parameters": "roundrobin" }, { "name": "prometheus", "parameters": "{$PODIP}:9153" }, { "configBlock": "policy random", "name": "forward", "parameters": ". /etc/resolv.conf" }, { "name": "reload" }, { "name": "log" } ], "port": 5353, "zones": [ { "zone": "." } ] } ], "stubdomains": { "acme.local": [ "1.2.3.4", "6.7.8.9" ] }, "upstreamnameservers": ["8.8.8.8", "8.8.4.4"] } coredns主zone默认plugin配置说明 plugin名称 描述 bind coredns 侦听的hostIP配置,建议保持当前默认值{$PODIP}。 cache 启用DNS缓存。 errors 错误信息到标准输出。 health coredns健康检查配置,当前侦听{$PODIP}:8080,请保持此默认值,否则导致coredns健康检查失败而不断重启 kubernetes CoreDNS Kubernetes插件,提供集群内服务解析能力。 loadbalance 轮转式DNS 负载均衡器, 在应答中随机分配 A、AAAA 和 MX 记录的顺序。 prometheus CoreDNS自身metrics数据接口, 默认zone侦听{$PODIP}:9153,请保持此默认值,否则普罗无法采集coredns metrics数据。 forward 不在Kubernetes 集群域内的任何查询都将转发到默认的解析器 (/etc/resolv.conf)。 reload 允许自动重新加载已更改的Corefile。 编辑 ConfigMap 配置后,请等待两分钟,以使更改生效。 步骤 3 完成以上配置后,单击“安装”。