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
本文来自博客园,作者:gui.h,转载请注明原文链接:https://www.cnblogs.com/springhgui/p/18863078

浙公网安备 33010602011771号