k8s宿主机dns解析正常,pod中dns解析ip地址与宿主机不同

k8s pod解析域名地址错误

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search DHCP HOST
nameserver 223.5.5.5
# 这里忽略其他 nameserver

如果存在 search HOST 则可能导致域名解析错误,search HOST带来的副作用自行查阅资料补充

运行以下命令查看 NetworkManager 的当前配置:

[root@localhost ~]# nmcli dev show | grep 'DNS\|DOMAIN'
IP4.DNS[1]:                             114.114.114.114
IP4.DNS[2]:                             223.5.5.5
IP4.DNS[3]:                             192.168.44.1
IP4.DNS[4]:                             192.168.1.1
IP4.DOMAIN[1]:                          DHCP
IP4.DOMAIN[2]:                          HOST

<连接名> 使用 实际外网使用的网卡名,本例以 enp1s0 为例

检查 NetworkManager 的连接配置

nmcli connection show
nmcli connection show <连接名> | grep 'ipv4.dns\|ipv4.ignore-auto-dns'

[root@localhost ~]# nmcli connection show enp1s0 | grep 'ipv4.dns\|ipv4.ignore-auto-dns'
ipv4.dns:                               114.114.114.114,223.5.5.5
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.ignore-auto-dns:                   否    # 这里要改成yes

如果 ipv4.ignore-auto-dns 为 no,表示 NetworkManager 会使用 DHCP 下发的 DNS。

永久生效的配置命令

nmcli connection modify <连接名> ipv4.ignore-auto-dns yes  # 忽略 DHCP 的 DNS
nmcli connection down <连接名> && nmcli connection up <连接名>  # 重启连接

[root@localhost ~]# nmcli connection modify enp1s0  ipv4.ignore-auto-dns yes
[root@localhost ~]# nmcli connection down enp1s0 && nmcli connection up enp1s0
成功停用连接 "enp1s0"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)

再次查看resolv.conf文件,此时 search 项的 HOST 没了,就可以了

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 223.5.5.5

重启dnspod,重启自己的应用pod

[root@localhost ~]# kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
bx-devops     bx-devops-agent-75bb9fd997-2xfzb          1/1     Running     0          120m
kube-system   coredns-56f6fc8fd7-rpnws                  1/1     Running     0          123m
kube-system   helm-install-traefik-crd-zvg8l            0/1     Completed   0          123m
kube-system   helm-install-traefik-gkpl8                0/1     Completed   1          123m
kube-system   local-path-provisioner-5cf85fd84d-bghzr   1/1     Running     0          123m
kube-system   metrics-server-5985cbc9d7-c9vpg           1/1     Running     0          123m
kube-system   svclb-traefik-86e9ba2c-nswnq              2/2     Running     0          122m
kube-system   traefik-57b79cf995-nsspr                  1/1     Running     0          122m
# coredns-56f6fc8fd7-rpnws 为dns服务,需要删除pod,让他重启
[root@localhost ~]# kubectl delete pod coredns-56f6fc8fd7-rpnws -n kube-system
pod "coredns-56f6fc8fd7-rpnws" deleted


[root@localhost ~]# kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
bx-devops     bx-devops-agent-75bb9fd997-2xfzb          1/1     Running     0          120m
kube-system   coredns-56f6fc8fd7-mr7w8                  1/1     Running     0          5s
kube-system   helm-install-traefik-crd-zvg8l            0/1     Completed   0          123m
kube-system   helm-install-traefik-gkpl8                0/1     Completed   1          123m
kube-system   local-path-provisioner-5cf85fd84d-bghzr   1/1     Running     0          123m
kube-system   metrics-server-5985cbc9d7-c9vpg           1/1     Running     0          123m
kube-system   svclb-traefik-86e9ba2c-nswnq              2/2     Running     0          123m
kube-system   traefik-57b79cf995-nsspr                  1/1     Running     0          123m
# bx-devops-agent-75bb9fd997-2xfzb 需要重启
[root@localhost ~]# kubectl delete pod  bx-devops-agent-75bb9fd997-2xfzb -n bx-devops
pod "bx-devops-agent-75bb9fd997-2xfzb" deleted
posted @ 2025-06-14 10:29  gui.h  阅读(47)  评论(0)    收藏  举报