kubernetes - Kubernetes-dashboard - 尝试访问服务时出错:dial tcp 10.36.0.1:8443: i/o timeout
问题描述
我用谷歌搜索了我的困境的答案,我能找到的所有答案都不适用,但他们说这已经讨论过很多次了。
下面是我的实际集群设置。4 个工作节点、两个主节点和一个负载均衡器。
我安装了仪表板
XXXX@master01:~$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default busybox 1/1 Running 30 30h
kube-system coredns-78cb77577b-lbp87 1/1 Running 0 30h
kube-system coredns-78cb77577b-n7rvg 1/1 Running 0 30h
kube-system weave-net-d9jb6 2/2 Running 7 31h
kube-system weave-net-nsqss 2/2 Running 0 39h
kube-system weave-net-wnbq7 2/2 Running 7 31h
kube-system weave-net-zfsmn 2/2 Running 0 39h
kubernetes-dashboard dashboard-metrics-scraper-7b59f7d4df-dhcpn 1/1 Running 0 28h
kubernetes-dashboard kubernetes-dashboard-665f4c5ff-6qnzp 1/1 Running 7 28h
我安装了我的服务帐户并为其分配了集群管理员角色
XXXX@master01:~$ kubectl get sa -n kubernetes-dashboard
NAME SECRETS AGE
default 1 28h
kube-apiserver 1 25h
kubernetes-dashboard 1 28h
我正在使用 kube-apiserver 用户服务帐户,因为在我已经拥有它们的浏览器中加载证书很容易。
现在我尝试使用负载均衡器访问仪表板: https://loadbalancer.local:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
在这一点上,人们会认为我应该得到仪表板,我遇到的每个问题都做出了这个假设,但我得到了以下错误:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "error trying to reach service: dial tcp 10.36.0.1:8443: i/o timeout",
"code": 500
}
所以我决定拉日志:
kubectl logs -n kubernetes-dashboard service/kubernetes-dashboard
Error from server: Get "https://worker04:10250/containerLogs/kubernetes-dashboard/kubernetes-dashboard-665f4c5ff-6qnzp/kubernetes-dashboard": x509: certificate signed by unknown
authority
我得到的只是这一行,我想找出来自此工作节点的证书的问题:worker04:10250 我使用 OpenSSL 检查证书,发现以下内容:worker04 已生成自己的证书好吧,但它也生成了自己的 CA。
这就是我不知道如何解决这个问题并调出仪表板的地方。我还在master01上尝试了代理:
kubectl -v=9 proxy --port=8001 --address=192.168.1.24
我得到的只是403 Forbidden!
解决方案
我在这方面取得了一些进展,我发现当一个节点生成并将自己注册到集群时,它正在生成由它自己生成的 CA 签名的自己的证书 CSR,为了解决这个问题,我为所有由集群 CA 并简单地替换自动生成的证书并重新启动节点..
推荐阅读
- python - 将文件发送到电子邮件 python
- bash - 更优雅地编写 bash 脚本
- javascript - 加密缺少全局变量名
- asp.net-mvc-5 - 从数据库 ASP.NET MVC 中获取 Azure AD 选项
- javascript - 使用 aspx 和下拉列表优化搜索
- python - 错误:命令出错,退出状态为 1:python setup.py egg_info 检查日志以获取完整的命令输出。尝试安装 ping 模块时
- opencv - opencv 选择性搜索不返回区域建议(静默失败)
- java - Eclipse 插件开发:扩展点 org.eclipse.ui.bindings 上的上下文菜单不包含 New -> Key
- python-3.x - 在 Python 中引发异常
- r - 偏差无选择选项和线性属性