删除 Kubernetes pod 的 /etc/resolv.conf 中的搜索域

删除 Kubernetes pod 的 /etc/resolv.conf 中的搜索域

切换到新路由器后,我发现我的 Kind Kubernetes 集群内的 pod 无法访问互联网。

$ kubectl run --rm utils2 -it --image arunvelsriram/utils bash

# inside the container now
$ ping google.com
PING google.com.www.tendawifi.com (192.168.1.1) 56(84) bytes of data.

不知何故,ping 到google.com.www.tendawifi.com

我认为这是因为一些奇怪的事情/etc/resolv.conf

$ cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local www.tendawifi.com

当我在主机 Linux 机器上进行相同检查时,我看到了正确的结果。

要检查什么?

答案1

我找到了。

www.tendawifi.com我的路由器以某种方式在主机上使用 DHCP设置为搜索域。Kind Kubernetes 集群正在继承该搜索域,最终/etc/resolv.conf在我的 pod 中出现这种情况:

$ cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local www.tendawifi.com

我找不到在路由器上禁用它的方法。因此,我最终修改了 Linux 机器上的 DHCP 客户端设置。

/etc/dhcp/dhclient.conf文件中,确保没有domain-search询问。我最新的配置如下:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

之后我需要终止并重新创建我的 Kind 集群。

相关内容