无法查看Kubernetes UI Dashboard求助:Azure双节点集群配置说明
解决Kubernetes Dashboard无法访问的问题
你的Kubernetes集群(v1.10.0,基于Azure Ubuntu虚拟机搭建,Canal作为网络组件)已经正常运行,但无法访问Dashboard,我来帮你一步步排查解决:
1. 确认Dashboard是否已部署
首先检查kube-system命名空间中是否存在Dashboard相关资源:
kubectl get pods -n kube-system | grep dashboard
如果没有任何输出,说明你还未部署Dashboard。由于你的K8s版本是v1.10.0,需要使用**对应版本的Dashboard(v1.10.x系列)**来避免兼容性问题,你可以使用官方提供的同版本部署清单进行安装。
2. 检查Dashboard服务状态
如果Dashboard已部署,检查其服务的类型和状态:
kubectl get svc -n kube-system | grep dashboard
- 如果服务类型是
ClusterIP(默认):只能在集群内部访问,需要通过端口转发暴露到本地 - 如果是
NodePort:可以通过虚拟机IP+NodePort端口访问 - 如果是
LoadBalancer:可以通过Azure分配的公网IP访问
3. 通过端口转发快速访问(ClusterIP场景)
执行端口转发命令,将Dashboard的443端口映射到本地8001端口:
kubectl port-forward -n kube-system service/kubernetes-dashboard 8001:443
然后在本地浏览器访问https://localhost:8001,浏览器会提示证书不安全,选择"继续访问"即可进入登录页面。
4. 解决RBAC权限问题(关键步骤)
Kubernetes v1.10默认开启RBAC,默认的Dashboard账户权限不足,会导致登录后无法查看资源。你需要创建一个拥有管理员权限的服务账户:
- 创建一个
admin-user.yaml文件,内容如下:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kube-system
- 应用该配置:
kubectl apply -f admin-user.yaml
- 获取登录用的令牌:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
复制输出中的token字段内容,粘贴到Dashboard登录界面的令牌输入框即可登录。
5. 排查Dashboard Pod异常(如果Pod未Running)
如果Dashboard Pod状态不是Running,查看Pod的详细事件和日志:
# 查看Pod状态 kubectl get pods -n kube-system | grep dashboard # 查看Pod详细信息 kubectl describe pod <dashboard-pod-name> -n kube-system # 查看Pod日志 kubectl logs <dashboard-pod-name> -n kube-system
常见问题包括镜像拉取失败、资源不足、配置错误等,根据日志信息针对性解决。
6. Azure网络配置检查(NodePort/LoadBalancer场景)
如果使用NodePort或LoadBalancer方式访问:
- NodePort:确保Azure虚拟机的网络安全组(NSG)开放了对应的NodePort端口(默认范围30000-32767)
- LoadBalancer:确认Azure负载均衡器已正确配置规则,并且公网IP处于可用状态
内容的提问来源于stack exchange,提问作者aniket kshirsagar
相关产品推荐
相关产品推荐

