让 KubeDNS 工作的问题

Issue getting KubeDNS to work

所以我不确定如何继续进行故障排除,但我整天都在做这件事,到处搜索。

我无法让 KubeDNS pod 工作。我在裸机上安装的 Fedora 25 上进行部署。我目前在集群中只有一个盒子,主服务器上有 kubelet 运行ning。我不是 运行ning kubelet 或容器中的其他 Kubernetes 服务。

当我尝试 运行 在 kubernetes.default 服务(nslookup kubernetes.default.svc.cluster.local 127.0.0.1nslookup kubernetes.default.svc.cluster.local 127.0.0.1:10053)上的 kubedns 容器内进行 DNS 查找时,它失败了。

我最终在 kube-apiserver 日志中发现的是如下消息,当我尝试进行查找时按时间排列:

kube-apiserver[20876]: E0315 01:09:16.134237 20876 proxy.go:193] Error proxying data from client to backend: write tcp 192.168.1.203:33074->192.168.1.203:10250: write: broken pipe

我使用的服务和复制控制器配置来自 https://coreos.com/kubernetes/docs/latest/deploy-addons.html#deploy-the-dns-add-onclusterIP 设置显然已更改以匹配我的环境。

我不太确定在故障排除方面还可以查看其他什么地方,因此非常感谢您的帮助。我会 post 提供任何有用的配置,但我认为猜测这些配置是什么对我来说不是毫无用处。

我最终通过反复试验解决了这个问题。

按照 Fedora 的裸机节点设置指南,问题是我没有为 kube-apiserver 配置 TLS。

这些选项都是必需的(很久以前就修复了,我不记得缺少哪些):

  • --服务账户密钥文件
  • --tls-cert-file
  • --tls-私钥文件
  • --client-ca-file