文档首页/ 云容器引擎 CCE/ 常见问题/ 域名DNS/ 解析外部域名很慢或超时,如何优化配置?
更新时间:2024-07-02 GMT+08:00

解析外部域名很慢或超时,如何优化配置?

工作负载的容器内的resolv.conf文件,示例如下:

其中:

  • nameserver:DNS服务器的IP地址,此处为coredns的ClusterIP。
  • search:域名的搜索列表,此处为Kubernetes的常用后缀。
  • ndots:“.”的个数小于它的域名,会优先使用search进行解析。
  • timeout:超时时间。
  • single-request-reopen:发送A类型请求和AAAA类型请求使用不同的源端口。

在界面创建工作负载时,以上几项配置默认都会创建,具体参数如下:

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

以上参数可以根据业务需要进行优化或修改。

场景一:解析外部域名慢

优化方案:

  1. 如果此工作负载不需要访问集群内的k8s服务,可以参考如何设置容器内的DNS策略?
  2. 如果此工作服务访问其他的k8s服务时,使用的域名中“.”的个数小于2,可以将ndots参数设置为2。

场景二:解析外部域名超时

优化方案:

  1. 通常业务内的超时时间要大于timeout * attempts的时间。
  2. 如果解析此域名通常要超过2s,可以将timeout改大。