在 coredns 的 configmap 添加了主机名解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | .:53 { errors health { lameduck 5s } ready kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } hosts { 10.10.10.155 api-server01 #添加了这些 10.10.10.156 api-server02 10.10.10.157 api-server03 10.10.10.158 api-server04 10.10.10.159 api-server05 fallthrough } prometheus :9153 forward . /etc/resolv.conf { max_concurrent 1000 } cache 30 loop reload loadbalance } |
---|
通过 nodelocaldnscache 无法解析此主机名
1 2 3 4 5 6 | nslookup api-server01 169.254.25.10 Server: 169.254.25.10 *** Can't find api-server01: No answer |
---|
通过 coredns 却是正常的
1 | nslookup api-server01 11.253.0.3 Server: 11.253.0.3 Name: api-server01 |
---|
原因分析:
查看 nodelocaldns 的 configmap 有如下部分
1 | Corefile: | |
---|
可以看到符合 k8s cluster.local 格式的域名 forward 是 coredns ,而其他的域名 forward 是 /etc/resolv.conf (主机系统的 dns),所以是解析不到自己添加在 coredns 中的主机名的。
解决方法:修改其他域名的 forward 也走 coredns
1 | .:53 { |
---|