Coredns 添加主机名解析,无法解析

2023-10-18 12:47:23 浏览数 (3)

在 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 Address: 169.254.25.10#53 *** Can't find api-server01: No answer

通过 coredns 却是正常的

1 2 3 4 5 6 7

nslookup api-server01 11.253.0.3 Server: 11.253.0.3 Address: 11.253.0.3#53 Name: api-server01 Address: 10.10.10.155

原因分析:

查看 nodelocaldns 的 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

Corefile: | cluster.local:53 { errors cache { success 9984 30 denial 9984 5 } reload loop bind 169.254.25.10 forward . 11.253.0.3 { force_tcp } prometheus :9253 health 169.254.25.10:9254 } …… .:53 { errors cache 30 reload loop bind 169.254.25.10 forward . /etc/resolv.conf prometheus :9253 }

可以看到符合 k8s cluster.local 格式的域名 forward 是 coredns ,而其他的域名 forward 是 /etc/resolv.conf (主机系统的 dns),所以是解析不到自己添加在 coredns 中的主机名的。

解决方法:修改其他域名的 forward 也走 coredns

1 2 3 4 5 6 7 8 9 10

.:53 { errors cache 30 reload loop bind 169.254.25.10 forward . 11.253.0.3 { force_tcp } prometheus :9253

0 人点赞