我是 Kubernetes 新手,正在尝试部署一个主节点和两个节点。我在主节点中完成了安装,Pod 正在运行。
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-node-g2fxl 1/1 Running 0 5m56s
kube-system coredns-86c58d9df4-2jpfq 1/1 Running 0 7m59s
kube-system coredns-86c58d9df4-bxvct 1/1 Running 0 7m59s
kube-system etcd-master 1/1 Running 0 7m19s
kube-system kube-apiserver-master 1/1 Running 0 7m16s
kube-system kube-controller-manager-master 1/1 Running 0 7m7s
kube-system kube-proxy-jg2cp 1/1 Running 0 7m59s
kube-system kube-scheduler-master 1/1 Running 0 7m8s
我可以成功 curl localhost:8001,但无法使用该服务器的私有 IP 从我的笔记本电脑访问 kube 仪表板(我已使用该私有 IP 连接到 VPN 并通过 SSH 连接到该主 VM)。检查日志显示:
Metric client health check failed: the server is currently unable to handle the request (get services heapster). Retrying in 30 seconds.
谷歌搜索并找到了这些(https://brookbach.com/2018/10/29/Heapster-on-Kubernetes-1.11.3.html和https://elatov.github.io/2018/06/installing-heapster-for-kubernetes/)。但仍然无法从外部获取仪表板。有人可以正确指导我吗?
答案1
如果您想通过集群节点的私有 IP 访问仪表板 UI(service/kubernetes-dashboard),则应在 NodePort 类型的服务上公开仪表板 UI(service/kubernetes-dashboard),而不是 ClusterIP,如前所述这里。
确认在以下配置下工作正常:
Kubernetes:v1.13.4
Heapster 镜像:k8s.gcr.io/heapster-amd64:v1.5.3
仪表板:k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
答案2
请检查此解决方案:
kubectl -n kube-system edit service kubernetes-dashboard
更改:
type: ClusterIP
到
type: NodePort
接下来检查端口映射
kubectl -n kube-system get service kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.103.252.123 <none> 443:30287/TCP 6m51s
在这种情况下,使用连接https://_MASTER_IP_:30287
这对我有用..
答案3
当它发生在我身上时,我只是将其添加hostNetwork : True
到 yaml 文件并重新应用它。