【发布时间】:2017-08-23 21:02:45
【问题描述】:
所以我不知道如何进行故障排除,但我整天都在做这件事,并且到处搜索。
我无法让 KubeDNS pod 工作。我正在安装在裸机上的 Fedora 25 上进行部署。我目前在集群中只有一个盒子,kubelet 在 master 上运行。我没有在容器中运行 kubelet 或其他 Kubernetes 服务。
当我尝试在 kubernetes.default 服务(nslookup kubernetes.default.svc.cluster.local 127.0.0.1 和 nslookup 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-on,clusterIP 设置显然已更改以匹配我的环境。
我不太确定在故障排除方面还有什么需要注意的地方,因此感谢您提供任何帮助。我会发布任何有用的配置,但我认为猜测这些配置对我来说是无用的。
【问题讨论】:
-
您使用的是什么 Pod 网络?您是否已连接到所有 pod?
-
我正在使用 Flannel 作为我的网络。我在这里浏览了指南 - kubernetes.io/docs/getting-started-guides/fedora/… - 在设置它时,对我自己的命名约定进行了调整,并将主节点和一个节点放在同一个盒子上。我没有连接到其他 pod,通过 ping 检查。
-
经过 两天 天的故障排除后,我唯一的想法来自这些日志消息:
kube-apiserver[27115]: I0315 18:40:06.628204 27115 logs.go:41] http: TLS handshake error from 172.16.40.7:47094: remote error: tls: bad certificate听起来,kube-dns 无法使用 kube- 进行身份验证api服务器。但是,我可以找到零文档,了解如何为 kube-dns 提供令牌、机密或其他任何东西以向 kube-apiserver 进行身份验证。 -
由于您似乎在使用 https,您可能想尝试在容器中挂载一个 kubeconfig 文件,然后将其作为参数传递给 kubedns 命令。这修复了我的 SSL 错误,尽管我的 kubedns 版本比您链接的页面中的版本新。此 kubeconfig 应包含 API 服务器 url/ip 和一些凭据。
标签: kubernetes kube-dns fedora-25