k8s – coredns禁用ipv6解析

如果K8S集群宿主机没有关闭IPV6内核模块的话,容器请求coredns时的默认行为是同时发起IPV4和IPV6解析。

由于我们通常只使用IPV4地址,所以此时如果我们仅仅在coredns中配置DOMAIN -> IPV4地址的解析的话,当coredns收到IPV6解析请求的时候就会因为本地找不到配置而foward到upstream DNS服务器解析,从而导致容器的DNS解析请求变慢。

coredns提供了一种plugin叫做template,经过配置后可以给所有的IPV6请求立即返回一个空结果的应答,避免请求forward到上游DNS。

使用方法

template插件的文档地址:https://github.com/coredns/coredns/tree/master/plugin/template,coredns默认已携带此插件,大家只需要配置即可。

AAAA表示IPV6解析请求,rcode控制应答返回NXDOMAIN,即表示没有解析结果。

为了降低DNS查询压力,建议容器开启nscd本地化缓存,具体参考我的另外一篇博客:《K8S – 优化dns解析时间》

如果文章帮助了你,请帮我点击1次谷歌广告,或者微信赞助1元钱,感谢!

知识星球有更多干货内容,对我认可欢迎加入:

发表评论

电子邮件地址不会被公开。