如何从根本上导致(本地)kubernetes实例(sky DNS正常)中的DNS查找失败
看起来,ubuntu上kubernetes的本地up cluster在依赖群集DNS时无法解析DNS查询 设置 我正在运行一个ubuntu box,在本地up集群中设置了DNS的环境变量:如何从根本上导致(本地)kubernetes实例(sky DNS正常)中的DNS查找失败,dns,kubernetes,Dns,Kubernetes,看起来,ubuntu上kubernetes的本地up cluster在依赖群集DNS时无法解析DNS查询 设置 我正在运行一个ubuntu box,在本地up集群中设置了DNS的环境变量: # env | grep KUBE KUBE_ENABLE_CLUSTER_DNS=true KUBE_DNS_SERVER_IP=172.17.0.1 运行信息 天空似乎很高兴: I0615 00:04:13.563037 1服务器。转到:198]Skydns指标已启用/指标:10055 I0615
# env | grep KUBE
KUBE_ENABLE_CLUSTER_DNS=true
KUBE_DNS_SERVER_IP=172.17.0.1
运行信息
天空似乎很高兴:
I0615 00:04:13.563037 1服务器。转到:198]Skydns指标已启用/指标:10055
I0615 00:04:13.563051 1 dns.go:147]正在启动端点控制器
I0615 00:04:13.563054 1 dns.go:150]正在启动serviceController
I0615 00:04:13.563125 1日志。转到:41]skydns:准备好在cluster.local上进行查询。对于tcp://0.0.0.0:10053 [rcache 0]
I0615 00:04:13.563141 1日志。转到:41]skydns:准备好在cluster.local上进行查询。对于udp://0.0.0.0:10053 [rcache 0]
I0615 00:04:13.589840 1 dns.go:264]新服务:kubernetes
I0615 00:04:13.589971 1 dns.go:462]添加了SRV记录&{Host:kubernetes.default.svc.cluster.local.端口:443优先级:10权重:10文本:邮件:false Ttl:30 TargetStrip:0组:键:}
I0615 00:04:14.063246 1 dns.go:171]已从apiserver初始化服务和终结点
I0615 00:04:14.063267 1服务器。转到:129]设置Healthz处理程序/准备就绪
I0615 00:04:14.063274 1服务器。转到:134]设置缓存处理程序/缓存
I0615 00:04:14.063288 1服务器。转到:120]状态HTTP端口8081
库贝似乎很高兴:
I0615 00:03:53.448369 5706 proxier.go:864]为默认设置端点/kubernetes:https到[172.31.44.133:6443]
I0615 00:03:53.545124 5706控制器_utils.go:1001]已为服务配置控制器同步缓存
I0615 00:03:53.545146 5706 config.go:210]调用handler.OnServiceSynced
I0615 00:03:53.545208 5706 proxier.go:979]在从主服务器接收到服务和端点之前,不同步iptables
I0615 00:03:53.545125 5706控制器_utils.go:1001]为端点配置控制器同步缓存
I0615 00:03:53.545224 5706 config.go:110]调用处理程序。onendpoints同步
I0615 00:03:53.545274 5706 proxier.go:309]添加新服务端口默认值/kubernetes:https在10.0.0.1:443/TCP
I0615 00:03:53.545329 5706代理程序。转到:991]同步iptables规则
I0615 00:03:53.993514 5706代理程序。转到:991]同步iptables规则
I0615 00:03:54.008738 5706有界\u频率\u运行程序。转到:221]同步运行程序:运行,下一个可能在0秒后,周期在30秒后
I0615 00:04:24.008904 5706 proxier.go:991]同步iptables规则
I0615 00:04:24.023057 5706有界\u频率\u运行程序。转到:221]同步运行程序:运行,下一个可能在0秒后,周期在30秒后
结果
但是,我似乎无法解决集群内的任何问题,docker exec或kube exec的结果相同:
➜ kubernetes git:(master) kc exec --namespace=kube-system kube-dns-2673147055-4j6wm -- nslookup kubernetes.default.svc.cluster.local
Defaulting container name to kubedns.
Use 'kubectl describe pod/kube-dns-2673147055-4j6wm' to see all of the
containers in this pod.
nslookup: can't resolve '(null)': Name does not resolve
nslookup: can't resolve 'kubernetes.default.svc.cluster.local': Name does not resolve
问题:
进一步调试使用本地up cluster创建的系统的最简单方法是什么?DNS吊舱正在运行,但kubernetes.default.svc.cluster.local未解析?请注意,该集群的所有其他方面似乎都工作正常
系统信息:Linux ip-172-31-44-133 4.4.0-1018-aws 27 Ubuntu SMP Fri May 19 17:20:58 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
正在放置在我的容器中的resolv.conf示例
/etc/cfssl # cat /etc/resolv.conf
nameserver 172.17.0.1
search default.svc.cluster.local svc.cluster.local cluster.local dc1.lan
options ndots:5
我不能对你的帖子发表评论,所以我将尝试回答这个问题 首先,一些阿尔卑斯山的图片。DNS实际上可能在集群中正常工作 要验证这一点,请阅读与kube apiserver通信的POD日志,例如traefik、heapster、calico。如果没有观察到任何错误,那么您可能没有问题 如果你想更加确定,可以部署一个非阿尔卑斯吊舱并尝试nslookup 如果它真的是一个DNS问题,我将按此顺序进行调试 kubectl exec进入kube dns吊舱。运行nslookup kubernetes.default.svc.cluster.localhost。如果这样做有效,DNS实际上正在运行。如果没有,kube dns现在应该已经进入CrashLoopbackOff状态。 kubectl exec进入已部署的吊舱。运行nslookup kubernetes.default.svc.cluster.local。如果这行得通,你就可以走了。如果没有,吊舱网络就出了问题。没有细节,我无法推荐进一步的步骤。
好机会 我想我应该发布一个通常对我有效的系统性答案。我希望有更优雅的东西,但这并不理想,但我认为这是最好的开始 1确保您的DNS保姆和SkyDNS正在运行。nanny和Sky DNS都应该在docker日志中显示它们已绑定到某个端口 2创建新服务时,请确保SkyDNS正在将其写入日志并显示SRV的创建等 3查看docker容器中的/etc/resolv.conf。确保名称服务器看起来像内部docker IP地址上的某个内容,即10。。。。在fedora上的常规docker0配置中 有一些特定的环境变量需要正确导出:API\u HOST=true和KUBE\u ENABLE\u CLUSTER\u DNS=true <
p> 您可以使用很多更深层次的工具,如route-n等,来调试容器网络,但本地up cluster通常应该“正常工作”,如果上面的步骤出现问题,在kubernetes社区值得一提的是,这可能是一个bug。Hi Eugene:我确实尝试了不止一个映像,也尝试了dns吊舱的exec。它显然不起作用。这是否意味着步骤1中的nslookup不起作用?