检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
基于HPA自动扩容CoreDNS 合理调整CoreDNS副本数 建议您在任何情况下设置CoreDNS副本数应至少为2,且副本数维持在一个合适的水位以承载整个集群的解析。CCE集群安装CoreDNS插件的默认实例数为2。 CoreDNS使用资源的规格与解析能力相关,修改CoreDNS副本数量、CPU/
②:NodeLocal DNSCache本地缓存如果无法解析请求,则会请求集群CoreDNS进行解析。 ③:对于非集群内的域名,CoreDNS会通过VPC的DNS服务器进行解析。 ④:已注入DNS本地缓存的Pod,如果无法连通NodeLocal DNSCache,则会直接通过CoreDNS解析域名。
并发请求/etc/resolve.conf中配置的多个DNS服务器,导致NodeLocal DNSCache的优化失效。 并发使用同一Socket请求A和AAAA记录,在旧版本内核上触发Conntrack源端口冲突导致丢包问题。 当使用Alpine作为容器基础镜像出现域名无法正常解析的情况下,建议更新容器基础镜像进行测试。
避免IPVS缺陷导致的DNS概率性解析超时 问题描述 当集群使用IPVS作为kube-proxy负载均衡模式时,您可能会在CoreDNS缩容或重启时遇到DNS概率性解析超时的问题。 该问题由社区Linux内核缺陷导致,具体信息请参见https://github.com/torva
CoreDNS视图 提供了负载域名解析的CoreDNS监控视图,包含请求、响应情况,以及缓存状况。 指标说明 CoreDNS视图暴露的指标如下: 图1 CoreDNS视图指标 表1 CoreDNS指标说明 指标名称 单位 说明 请求速率 个/秒 CoreDNS每秒请求个数 请求速率(记录类型)
使用节点DNS缓存NodeLocal DNSCache 应用现状 当集群中的DNS请求量增加时,CoreDNS将会承受更大的压力,可能会导致如下影响: 延迟增加:CoreDNS需要处理更多的请求,可能会导致DNS查询变慢,从而影响业务性能。 资源占用率增加:为保证DNS性能,CoreDNS往往需要更高规格的配置。
若nameserver设置为10.247.x.x说明DNS对接到集群的CoreDNS,需要确保集群CoreDNS工作负载运行正常。如果是其他IP地址,则表示采用云上DNS或者用户自建的DNS,请您自行确保解析正常。 更多域名解析异常的排查思路,请参见CCE集群中域名解析失败。 父主题: 网络异常问题排查
及时升级集群中的CoreDNS版本 CoreDNS功能较为单一,对不同的Kubernetes版本也实现了较好的兼容性,CCE会定期同步社区bug,升级CoreDNS插件的版本,建议客户定期升级集群的CoreDNS版本。CCE的插件管理中心提供了CoreDNS的安装及升级功能。您可以
客户端 优化域名解析请求 选择合适的镜像 避免IPVS缺陷导致的DNS概率性解析超时 使用节点DNS缓存NodeLocal DNSCache 及时升级集群中的CoreDNS版本 谨慎调整VPC和虚拟机的DNS配置 父主题: CoreDNS配置优化实践
节点DNS检查异常处理 检查项内容 当前检查项包括以下内容: 检查当前节点DNS配置是否能正常解析OBS地址 检查当前节点是否能访问存储升级组件包的OBS地址 解决方案 节点升级过程中,需要从OBS拉取升级组件包。此项检查失败,请联系技术人员支持。 父主题: 升级前检查异常问题排查
CoreDNS配置优化实践 CoreDNS配置优化概述 客户端 服务端 父主题: 网络
CoreDNS域名解析插件版本发布记录 表1 CoreDNS域名解析插件版本记录 插件版本 支持的集群版本 更新特性 社区版本 1.30.6 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 支持Corefile配置 适配CCE v1.30集群 1
节点本地域名解析加速 插件介绍 节点本地域名解析加速(node-local-dns)是基于社区NodeLocal DNSCache提供的插件,通过在集群节点上作为守护程序集运行DNS缓存代理,提高集群DNS性能。 字段说明 表1 参数描述 参数 是否必选 参数类型 描述 basic
IPVS缺陷导致节点上升级CoreDNS后出现概率性解析超时 故障现象 在集群使用IPVS转发的场景下,节点上升级CoreDNS后,可能出现概率性丢包,导致域名解析失败。 问题根因 该问题由IPVS缺陷导致,社区已在IPVS v5.9-rc1版本中修复该问题,详情请参见ipvs:
服务端 监控CoreDNS运行状态 调整CoreDNS部署状态 合理配置CoreDNS 父主题: CoreDNS配置优化实践
80/TCP 5s 创建一个Pod来查询DNS,可以看到能返回所有Pod的记录,这就解决了访问所有Pod的问题了。 $ kubectl run -i --tty --image tutum/dnsutils dnsutils --restart=Never --rm /bin/sh
oreDNS域名解析。 单击“确定”,等待插件升级完毕,检查CoreDNS各实例均可用,且Corefile符合预期。 kubectl get cm -nkube-system coredns -o jsonpath='{.data.Corefile}' 编辑CoreDNS插件配置
ster IP,通过iptables或IPVS规则转到Real Server,从而达到负载均衡的效果。例如:Service有2个EndPoint,但是DNS查询时只会返回Service的地址,具体client访问的是哪个Real Server,是由iptables或IPVS规则来
险) 集群外域名: 确定是否为自建DNS(容器如果未走coredns或者节点DNS非本region云解析的地址均属自建) coredns到自建DNS网络是否正常,工作负载到自建DNS的网络是否正常,如不正常: 请打通到自建DNS网络 请确保DNS的UDP53端口放行,需要对Pod网段安全组&ACL放通如下策略:
对于容器中的域名解析,可在创建Pod时将DNS Policy设置为ClusterFirst,这样容器中的域名解析直接走CoreDNS。 如果是需要解析集群内域名,则CoreDNS直接解析出结果返回。 如果是解析外部域名,则通过CoreDNS,转到IDC的域名解析服务器解析。 图3 容器同时访问华为云域名和外部域名