凯发k8国际娱乐官网入口-k8凯发> 云容器引擎 cce> > > 域名解析失败,如何定位处理?
更新时间:2024-01-16 gmt 08:00

域名解析失败,如何定位处理?-凯发k8国际娱乐官网入口

排查项一:检查是否已安装coredns插件

  1. 登录cce控制台,进入集群。
  2. 在左侧导航栏中选择“插件中心”,确认异常的集群是否已安装coredns插件。
  3. 如果未安装,请安装。详情请参见

排查项二:检查coredns实例是否已到达性能瓶颈

coredns所能提供的域名解析qps与cpu消耗成正相关,如遇qps较高的场景,需要根据qps的量级调整coredns实例规格。集群超过100节点时,推荐使用nodelocal dnscache提升dns性能,详情请参见。

  1. 登录cce控制台,进入集群。
  2. 在左侧导航栏中选择“插件中心”,确认coredns插件状态为“运行中”
  3. 单击coredns插件名称,查看插件实例列表。
  4. 单击coredns实例的“监控”按钮,查看实例cpu、内存使用率。
    如实例已达性能瓶颈,则需调整coredns插件规格。
    1. 在“已安装插件”下,单击coredns插件的“编辑”按钮,进入插件详情页。
    2. 在“规格配置”下配置coredns参数规格。您可以根据业务需求选择coredns所能提供的域名解析qps。
    3. 您也可以选择自定义qps,通过选择不同的实例数、cpu配额和内存配额,来定制集群的coredns参数规格。

    4. 单击“确定”,完成配置下发。

排查项三:解析外部域名很慢或超时

如果域名解析失败率低于1/10000,请参考进行参数优化,或在业务中增加重试。

排查项四:概率性出现unknownhostexception

集群中的业务请求到外部域名服务器时发生域名解析错误,概率性出现unknownhostexception。unknownhostexception是一个常见的异常,发生该异常时优先检查域名是否存在问题或键入错误。

您可根据以下步骤进行排查:

  1. 仔细检查主机名是否正确,检查域名的拼写并删除多余的空格。
  2. 检查dns设置。在运行应用程序之前,通过ping hostname命令确保dns服务器已启动并正在运行。如果主机名是新的,则需要等待一段时间才能访问dns服务器。
  3. 检查coredns实例的cpu、内存使用率监控,确认是否已到达性能瓶颈,具体操作步骤请参见排查项二:检查coredns实例是否已到达性能瓶颈
  4. 检查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:被限流的总时间长度(纳秒)。

如果检查后无上述问题,可采用下方优化策略。

优化策略:

  1. 修改coredns的缓存时间
  2. 配置存根域
  3. 修改ndots
  • 增加coredns的缓存时间:有利于同一个域名的第n次解析,减少级联dns的请求数量。
  • 配置存根域:有利于减少dns请求链路。

修改方式

  1. 修改coredns缓存时间及配置存根域

    修改方法请参见。

    修改完成后重启coredns。

  2. 修改ndots

    修改方法请参见。

    示例:

          dnsconfig:
            options:
              - name: timeout
                value: '2'
              - name: ndots
                value: '5'
              - name: single-request-reopen

    建议值修改成:2

分享:

more

网站地图