nodelocaldns导致coredns hosts配置失效
2022-05-22 本文已影响0人
wwq2020
背景
同事部署的k8s 域名是在各个node上/etc/hosts中静态添加的,而不是在dns server上,手动在coredns中添加域名解析后发现pod中依然解析不了
因为部署了nodelocaldns(nodelocaldns不支持hosts插件),pod对于集群本身的域名解析会先访问nodelocaldns然后是coredns,但是对于非集群本身的会先访问nodelocaldns然后是/etc/resolve.conf中对应的nameserver(也就是不会经过coredns),所以直接在coredns中配置pod中是依然解析不了此域名
解决方案
第一种
部署dns server,在dns server中配置k8s域名指向相应的节点
第二种
修改nodelocaldns对应的configmap
image.png
修改之前是forward . /etc/resolv.conf
10.22.0.3改为coredns实际的clusterip
补充
coredns中添加自定义域名解析
.:53 {
...
hosts {
yourip yourdomain
fallthrough
}
...
}