通过 Virtualbox 运行 Kubernetes;Pod 无法访问互联网服务

通过 Virtualbox 运行 Kubernetes;Pod 无法访问互联网服务

系统:VirtualBox、Debian 10 Server、带有 kubeadm 的 Kubernetes

我已经设置了部署和服务,并通过 NodePort 公开它,但我的 Pod 不知何故无法访问互联网。但是,运行 Pod 的工作节点有互联网连接。我通过 exec 进入正在运行的 Pod 并 curl 网页对此进行了测试。

Pod

root@master:/home/user# kubectl get pods
NAME                               READY   STATUS      RESTARTS   AGE
my-website-6d8f7c7bfb-sdtrh        1/1     Running     1          6d1h

从主机卷曲

root@master:/home/user# curl https://wikipedia.org
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://www.wikipedia.org/">here</a>.</p>
</body></html>

Exec Pod - Curl

root@master:/home/user# kubectl exec -it my-website-6d8f7c7bfb-sdtrh /bin/bash
root@my-website-6d8f7c7bfb-sdtrh:/sbin# curl https://wikipedia.org
curl: (6) Could not resolve host: wikipedia.org

有人知道那是什么吗?我对 DevOps 还不太熟悉,所以我对这一切还不太了解。

编辑 Howard_Roark

  1. 我已检查过并且两者/etc/resolv.conf确实不同。

在工作节点上

root@worker:~# cat /etc/resolv.conf 
# Generated by NetworkManager
search fritz.box
nameserver 192.168.178.1

舱内

/ # cat /etc/resolv.conf 
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local fritz.box
options ndots:5
  1. 我可以从节点本身进入另一个名称服务器,但不能从 pod 进入。
root@worker:~# nslookup wikipedia.org 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   wikipedia.org
Address: 91.198.174.192
Name:   wikipedia.org
Address: 2620:0:862:ed1a::1


root@worker:~# nslookup wikipedia.org 1.1.1.1
Server:     1.1.1.1
Address:    1.1.1.1#53

Non-authoritative answer:
Name:   wikipedia.org
Address: 91.198.174.192
Name:   wikipedia.org
Address: 2620:0:862:ed1a::1
  1. 因此 2 也可能会失败。但我现在会测试它。

答案1

解决方案

在我移至合适的开发服务器后,问题就消失了。显然,Kubernetes 集群无法在 Virutalbox 中的桥接 AirPort 网络环境中正常运行。

相关内容