更新时间: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
以上参数可以根据业务需要进行优化或修改。
场景一:解析外部域名慢
优化方案:
- 如果此工作负载不需要访问集群内的k8s服务,可以参考如何设置容器内的DNS策略?。
- 如果此工作服务访问其他的k8s服务时,使用的域名中“.”的个数小于2,可以将ndots参数设置为2。
场景二:解析外部域名超时
优化方案:
- 通常业务内的超时时间要大于timeout * attempts的时间。
- 如果解析此域名通常要超过2s,可以将timeout改大。