docker - Kubernetes:容器无法 ping www.google.com

标签 docker networking kubernetes

我有 kubernetes集群运行在 4 Raspberry-pi设备,其中 1 个充当 master和其他 3 个工作为 workerw1 , w2 , w3 .我已经开始了一个守护进程集部署,所以每个工作人员都在运行一个包含 2 个容器的 pod。
w2正在运行 2 个容器的 pod。如果我 exec进入任何容器并ping www.google.com从容器中,我得到了响应。但如果我在 w1 上做同样的事情和 w3它说 temporary failure in name resolution . kube-system 中的所有 pod 都在运行。我正在使用 weave用于网络。以下是 kube-system 的所有 pod

NAME                                READY     STATUS    RESTARTS   AGE
etcd-master-pi                      1/1       Running   1          23h
kube-apiserver-master-pi            1/1       Running   1          23h
kube-controller-manager-master-pi   1/1       Running   1          23h
kube-dns-7b6ff86f69-97vtl           3/3       Running   3          23h
kube-proxy-2tmgw                    1/1       Running   0          14m
kube-proxy-9xfx9                    1/1       Running   2          22h
kube-proxy-nfgwg                    1/1       Running   1          23h
kube-proxy-xbdxl                    1/1       Running   3          23h
kube-scheduler-master-pi            1/1       Running   1          23h
weave-net-7sh5n                     2/2       Running   1          14m
weave-net-c7x8p                     2/2       Running   3          23h
weave-net-mz4c4                     2/2       Running   6          22h
weave-net-qtgmw                     2/2       Running   10         23h

如果我使用普通的 docker container 命令而不是从 kubernetes 部署启动容器,那么我看不到这个问题。我认为这是因为 kube-dns .我该如何调试这个问题。?

最佳答案

您可以先检查 dns 是否正常工作

从 pod 内部在 kubernetes.default 上运行 nslookup,检查它是否正常工作。

[root@metrics-master-2 /]# nslookup kubernetes.default
Server:     10.96.0.10
Address:    10.96.0.10#53

Name:   kubernetes.default.svc.cluster.local
Address: 10.96.0.1

检查 pod 内的本地 dns 配置:
[root@metrics-master-2 /]# cat /etc/resolv.conf 
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local ec2.internal
options ndots:5

最后,在运行 ping 命令时检查 kube-dns 容器日志,它将为您提供名称未解析的可能原因。
kubectl logs kube-dns-86f4d74b45-7c4ng -c kubedns -n kube-system

希望这可以帮助。

关于docker - Kubernetes:容器无法 ping www.google.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53313967/

相关文章:

spring - 跨多个 Azure 服务部署架构是一种不好的做法吗?

docker - 如何让两个 docker 容器在 kubernetes 上共享 sqlite 数据库?

kubernetes - 无法与来自对等 super 账本结构的排序者进行通信

networking - 带宽延迟产品背后的基本原理是什么

java - 语言之间的串行通信

java - 为什么我的回显服务器有时会在消息末尾出现垃圾数据?

amazon-web-services - 如何在 AWS 上设置 Kubernetes Master HA

Dockerfile 更改不在 Docker 镜像中

ubuntu - 错误 : The Docker Engine version is less than the minimum required by Compose

docker - 如何通过另一个容器的172.17.42.1:53:53/udp(docker0)通过暴露的端口访问容器(SkyDns)? Docker 1.7.1,Centos 7