如何在CoreDNS中通过CoreFile实现类似hosts文件的自定义域名解析
实现方案:使用CoreDNS内置hosts插件
有完全等价于系统hosts文件的简便实现方式,直接用CoreDNS自带的hosts插件即可,不需要额外部署任何组件,修改现有CoreFile配置就能完成。
步骤1:修改CoreDNS配置
在你现有CoreFile的. :53插件块中,添加静态hosts映射规则,修改后的完整配置如下:
.:53 { errors health { lameduck 5s } ready # 新增静态映射配置,写法和系统/etc/hosts完全一致 hosts { 192.168.49.2 myapi.local ttl 60 fallthrough } kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 loop reload loadbalance }
配置参数说明
- 映射规则行
192.168.49.2 myapi.local写法和系统hosts文件完全一致,后续需要新增其他静态域名映射,直接换行追加即可 ttl 60指定该静态解析结果的缓存有效期为60秒,可根据需求调整,缩短TTL可以让后续修改映射配置快速生效fallthrough为必加参数:如果hosts插件没有匹配到请求的域名,会继续交给后面的kubernetes、forward等插件处理,不会影响集群内部服务、外部公网域名的正常解析
生效与验证
- 原有配置已开启
reload插件,修改完CoreDNS对应的ConfigMap后,CoreDNS会自动热加载配置,无需重启Pod,几秒内即可全局生效 - 验证方式:任意启动一个测试Pod,执行
nslookup myapi.local,返回结果为192.168.49.2即为配置成功
内容的提问来源于stack exchange,提问作者qkhanhpro
相关产品推荐
相关产品推荐

