切换到新路由器后,我发现我的 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 集群。