您的位置:首页 >Linux系统安装Kubernetes Dashboard 可视化管理面板教程【详解】
发布于2026-05-06 阅读(0)
扫一扫,手机访问

直接使用 kubectl apply -f 部署官方的 recommended.yaml 文件,看起来是最简单的路径。但这里有个关键点:默认创建的服务类型是 ClusterIP,这意味着它只能在集群内部访问。如果你不修改 Service 类型或者使用 port-forward 进行端口转发,那么从浏览器是无论如何也连不上的,相当于白忙活一场。
一个非常典型的场景是这样的:执行完 kubectl apply -f recommended.yaml 后,你用 kubectl get svc -n kubernetes-dashboard 命令查看,会发现 kubernetes-dashboard 服务的 TYPE 一栏赫然写着 ClusterIP,而 PORT(S) 也只有 443/TCP,没有任何对外暴露的端口。
port-forward,也没有修改 Service 类型,那么用浏览器访问任何 IP 和端口组合,结果都只会是“连接被拒绝”。kubectl logs -n kubernetes-dashboard deploy/kubernetes-dashboard 很可能显示一切正常,这很容易让人误以为服务已经“准备就绪”。最直接的解决方案,是修改 recommended.yaml 文件中的 Service 定义。你需要把 type: ClusterIP 改成 type: NodePort,并且最好指定一个可用的端口号,比如 31313。
kind: Service 下面的 spec 部分,确保它包含类似下面的配置:ports: - port: 443 targetPort: 8443 nodePort: 31313 type: NodePort
nodePort 的取值范围必须是 30000–32767。如果你指定了一个低于 30000 的端口,就会收到类似 error validating data: ValidationError(Service.spec.ports[0]): invalid type for io.k8s.api.core.v1.ServicePort.nodePort 的报错。Bind failed on port 31313,那说明宿主机上的这个端口已经被占用了,换个端口再试即可。kubectl apply -f recommended.yaml 就行。不用担心旧的资源,apply 命令会自动完成更新。服务能访问了,但拿到 token 粘贴到登录页后,却依然提示 Unauthorized 或 Forbidden?别急,这大概率是权限绑定或者 token 本身出了问题。
kubectl create serviceaccount dashboard-admin-sa 创建服务账户是远远不够的。必须补上关键的一步:kubectl create clusterrolebinding dashboard-admin-sa --clusterrole=cluster-admin --serviceaccount=default:dashboard-admin-sa,将管理员权限绑定给这个账户。kubectl create token 命令生成的 token 默认有效期只有 1 小时,很容易过期。对于需要长期使用的场景,建议创建 Secret 类型的 token,或者改用 kubeadm token create --ttl 0 生成的永久 token。kubectl create token 时,必须用 -n kubernetes-dashboard 指定 Dashboard 服务账户所在的命名空间,而不是默认的 default 空间。否则生成的 token 根本没有权限访问 Dashboard 的后端服务。在开发或者测试阶段,其实更推荐使用 port-forward 的方式。它既不需要暴露节点端口,也免去了修改 YAML 文件的麻烦。
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard 8443:443。https://localhost:8443,并接受自签名证书的安全风险提示即可。& 放到后台,但这个进程很容易随着 shell 退出而终止。kubectl 工具和集群 API Server 保持连接,一旦网络波动或者 kubeconfig 的权限发生变更,访问会立刻中断。说到底,部署 Dashboard 真正的难点,往往不在于那几个步骤本身,而在于每一个环节都紧密依赖着前序配置的准确性:cgroup driver 是否和 Docker 保持一致、必要的 sysctl 参数是否已经生效、节点 hostname 里是否包含了不被允许的下划线、甚至 /etc/hosts 里 master 和 node 的解析能否双向可达……漏掉其中任何一环,Dashboard 就可能卡在永恒的 “Loading…” 状态,或者陷入登录重定向循环。因此,在动手应用 YAML 之前,花点时间确保 kubectl get nodes 和 kubectl get pods -A 都能正常返回结果,往往比急于求成更能节省你的时间。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9