CoreDNS 说明
更新时间:2024-07-04
组件介绍
CoreDNS提供了Kubernetes集群内部服务的域名解析能力。CoreDNS版本与Kubernetes版本存在对应关系。在创建和升级您的集群时,将会遵循CoreDNS version in Kubernetes中版本对应关系为您安装兼容版本的CoreDNS。关于版本对应关系的更多信息,请参见CoreDNS version in Kubernetes。
使用说明
CoreDNS默认配置在kube-system的命名空间下,关于CCE集群中的CoreDNS配置项如何查看和修改,请参考CoreDNS组件手动升级指南。CoreDNS会基于该配置项启用和配置插件。需要强调的是,不同CoreDNS版本的配置项有略微差异,修改配置前请仔细阅读CoreDNS官方文档和CoreDNS组件手动升级指南。以下是一个1.20.3版本CoreDNS默认采用的配置文件:
.:53 {
errors
health {
lameduck 10s
}
ready
log
kubernetes {{.ClusterDomain}} in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
说明: 配置文件中ClusterDomain代指集群创建过程中填写的集群本地域名,默认值为cluster.local。
参数 | 描述 |
---|---|
errors | 错误信息到标准输出。 |
health | CoreDNS自身健康状态报告,默认监听端口8080,一般用来做健康检查。您可以通过http://localhost:8080/health 获取健康状态。 |
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记录的顺序。 |
限制说明
CoreDNS是系统组件,因为升级时可能会造成5分钟内全集群范围内的解析超时或失败的情况,所以暂不支持在控制台自动升级,请合理安排升级时间,进行手动升级。
安装组件
CoreDNS作为系统组件在创建集群时会默认安装,所以此处无需关注安装。
- CCE集群版本>=1.20,默认部署1.20.2版本,镜像版本为1.9.4-baidu
- CCE集群版本<1.20,默认部署1.0.0版本,镜像版本为1.7.1
版本记录
版本号 | 镜像版本 | 适配集群版本 | 更新时间 | 更新内容 | 影响 |
---|---|---|---|---|---|
1.20.4 | 1.9.4-baidu-1 | CCE/v1.20/v1.22/v1.22/v1.26 | 2024.07.02 | 取消通配符查询功能 | -- |
1.20.3 | 1.9.4-baidu | CCE/v1.20/v1.22/v1.22/v1.26 | 2024.02.06 | 暴露configmap参数 | -- |
1.20.2 | 1.9.4-baidu | CCE/v1.20/v1.22/v1.22/v1.26 | 2024.01.08 | 支持高版本集群 | -- |
1.0.0 | 1.7.1 | CCE/v1.18 | 2022.06.21 | 首次上线 | -- |