下面是在 Mac M1/M2 + Docker Desktop 环境中安装和部署 Kubernetes Dashboard 的详细教程(适用于学习和本地调试场景):
✅ 环境准备
1. 安装 Docker Desktop(含 K8s)
前往 Docker Desktop 官网 下载适用于 macOS (Apple Silicon/M1/M2) 的版本并安装。
-
打开 Docker Desktop,进入 Settings > Kubernetes,启用 Kubernetes:
✅ 勾选 “Enable Kubernetes”,等待初始化完成(首次可能需要几分钟)。
验证 Kubernetes 是否正常运行:
kubectl version --short
kubectl get nodes
🚀 安装 Kubernetes Dashboard
2. 部署 Dashboard(使用官方 YAML)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
执行完成后,资源会部署在 kubernetes-dashboard 命名空间下:
kubectl get all -n kubernetes-dashboard
3. 创建访问 Dashboard 的用户
创建一个具有 admin 权限的 ServiceAccount 和 ClusterRoleBinding:
# dashboard-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
执行命令创建:
kubectl apply -f dashboard-admin.yaml
4. 获取登录令牌(token)
kubectl -n kubernetes-dashboard create token admin-user
会输出一段长 token,复制备用(用于登录 Dashboard)。
🔐 启动本地访问通道(kubectl proxy)
kubectl proxy
此命令会监听 http://localhost:8001
访问 Dashboard 地址:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
🌟 登录 Dashboard
打开浏览器 → 输入上面地址 → 选择 Token 登录 → 粘贴 token 登录即可。
✅ 可选优化项(开发调试建议)
✅ 配置 Dashboard 使用 NodePort(跳过 kubectl proxy)
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
将 type: ClusterIP 改为:
type: NodePort
保存退出后执行:
kubectl get svc -n kubernetes-dashboard
你将看到分配的 NodePort,比如 32455,可以通过:
https://localhost:32455/
直接访问 Dashboard(需跳过浏览器证书警告)。
🧹 卸载 Kubernetes Dashboard
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl delete -f dashboard-admin.yaml
📌 常见问题
❓ Dashboard 页面无法访问?
确保 kubectl proxy 正常运行。
Dashboard 默认使用的是 HTTPS,如果手动配置 NodePort,需要跳过浏览器证书警告。
可尝试 curl localhost:8001 检查代理是否工作。
❓ Mac M1/M2 Docker Desktop Kubernetes 很慢?
确保分配的资源充足(建议在 Docker Desktop 设置中将内存调高如 4G+)。
关闭多余容器,保持资源充足。
**❓ apply recommended.yaml 报错
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Unable to connect to the server: net/http: TLS handshake timeout
这是国内网络不通的原因。
可以使用这样的执行命令:
curl -x socks5h://127.0.0.1:8119 -O https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl apply -f recommended.yaml
其中 socks5h://127.0.0.1:8119 为本地代理,8119对应代码的端口,要改成自己本机代理端口。