更新时间:2024-08-09 gmt 08:00
cce集群内域名解析失败,如何定位处理?-九游平台
排查项一:检查是否已安装coredns插件
- 登录cce控制台,进入集群。
- 在左侧导航栏中选择“插件中心”,确认异常的集群是否已安装coredns插件。
- 如果未安装,请安装。详情请参见
排查项二:检查coredns实例是否已到达性能瓶颈
coredns所能提供的域名解析qps与cpu消耗成正相关,如遇qps较高的场景,需要根据qps的量级调整coredns实例规格。集群超过100节点时,推荐使用nodelocal dnscache提升dns性能,详情请参见。
- 登录cce控制台,进入集群。
- 在左侧导航栏中选择“插件中心”,确认coredns插件状态为“运行中”。
- 单击coredns插件名称,查看插件实例列表。
- 单击coredns实例的“监控”按钮,查看实例cpu、内存使用率。
如实例已达性能瓶颈,则需调整coredns插件规格。
- 单击coredns插件的“编辑”按钮,进入插件详情页。
- 在“规格配置”下配置coredns参数规格。您可以根据业务需求选择coredns所能提供的域名解析qps。
- 您也可以选择自定义qps,通过选择不同的实例数、cpu配额和内存配额,来定制集群的coredns参数规格。
- 单击“确定”,完成配置下发。
排查项三:解析外部域名很慢或超时
如果域名解析失败率低于1/10000,请参考进行参数优化,或在业务中增加重试。
排查项四:概率性出现unknownhostexception
集群中的业务请求到外部域名服务器时发生域名解析错误,概率性出现unknownhostexception。unknownhostexception是一个常见的异常,发生该异常时优先检查域名是否存在问题或键入错误。
您可根据以下步骤进行排查:
- 仔细检查主机名是否正确,检查域名的拼写并删除多余的空格。
- 检查dns设置。在运行应用程序之前,通过ping hostname命令确保dns服务器已启动并正在运行。如果主机名是新的,则需要等待一段时间才能访问dns服务器。
- 检查coredns实例的cpu、内存使用率监控,确认是否已到达性能瓶颈,具体操作步骤请参见排查项二:检查coredns实例是否已到达性能瓶颈。
- 检查coredns是否有发生限流,如果触发限流可能出现部分请求处理时间延长,需要调整coredns插件规格。
登录coredns pod所在节点,查看以下文件内容:
cat /sys/fs/cgroup/cpu/kubepods/pod
/ /cpu.stat 为coredns的pod uid,可通过以下命令获取: kubectl get po
-nkube-system -ojsonpath='{.metadata.uid}{"\n"}' 以上命令中的
需要是在当前节点上运行的coredns pod名称。 需要是完整的容器id,可通过以下命令获取: docker节点:
docker ps --no-trunc | grep k8s_coredns | awk '{print $1}'
containerd节点:
crictl ps --no-trunc | grep k8s_coredns | awk '{print $1}'
完整的命令示例如下:
cat /sys/fs/cgroup/cpu/kubepods/pod27f58662-3979-448e-8f57-09b62bd24ea6/6aa98c323f43d689ac47190bc84cf4fadd23bd8dd25307f773df25003ef0eef0/cpu.stat
请关注以下指标:
- nr_throttled:被限流次数。
- throttled_time:被限流的总时间长度(纳秒)。
如果检查后无上述问题,可采用下方优化策略。
优化策略:
- 修改coredns的缓存时间
- 配置存根域
- 修改ndots
- 增加coredns的缓存时间:有利于同一个域名的第n次解析,减少级联dns的请求数量。
- 配置存根域:有利于减少dns请求链路。
修改方式:
- 修改coredns缓存时间及配置存根域
修改方法请参见。
修改完成后重启coredns。
- 修改ndots
修改方法请参见。
示例:
dnsconfig: options: - name: timeout value: '2' - name: ndots value: '5' - name: single-request-reopen
建议值修改成:2
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨