在Kubernetes集群中配置和使用Dashboard进行管理,需遵循以下步骤及注意事项:
-
安装Dashboard
- 使用官方YAML部署:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
- 注意版本兼容性,建议选择与集群版本匹配的Dashboard版本。
- 使用官方YAML部署:
-
访问方式
- 本地代理:
kubectl proxy
后通过http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
访问。 - NodePort/Ingress暴露:生产环境建议结合HTTPS及访问控制,避免直接暴露。
- 本地代理:
-
权限配置(RBAC)
- 创建ServiceAccount(如dashboard-admin)及绑定ClusterRole(cluster-admin),示例YAML:
apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: dashboard-admin-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kubernetes-dashboard
- 最小权限原则:根据团队职责细化角色,避免过度授权。
- 创建ServiceAccount(如dashboard-admin)及绑定ClusterRole(cluster-admin),示例YAML:
-
登录认证
- Token方式:通过
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')
获取Token。 - Kubeconfig:可配置文件直连,适合自动化场景。
- Token方式:通过
-
安全建议
- 启用集群内网络策略,限制Dashboard的入口流量。
- 定期审计访问日志,排查异常登录。
- 生产环境避免长期保留默认服务端口开放。
实践经验表明,Dashboard适合可视化查看资源状态,但复杂操作仍建议结合kubectl或CI/CD工具。部署后需定期更新版本以修复安全漏洞。