# Kubernetes中Dashboard如何安装 ## 目录 - [前言](#前言) - [Dashboard简介](#dashboard简介) - [安装准备](#安装准备) - [环境要求](#环境要求) - [工具准备](#工具准备) - [安装Dashboard](#安装dashboard) - [通过kubectl安装](#通过kubectl安装) - [通过Helm安装](#通过helm安装) - [配置访问权限](#配置访问权限) - [创建管理员账户](#创建管理员账户) - [获取访问令牌](#获取访问令牌) - [访问Dashboard](#访问dashboard) - [本地端口转发](#本地端口转发) - [Ingress暴露服务](#ingress暴露服务) - [NodePort方式](#nodeport方式) - [安全配置](#安全配置) - [启用HTTPS](#启用https) - [配置RBAC](#配置rbac) - [常见问题排查](#常见问题排查) - [最佳实践](#最佳实践) - [总结](#总结) ## 前言 Kubernetes Dashboard是Kubernetes官方提供的Web用户界面,用于可视化管理和监控Kubernetes集群。本文将详细介绍如何在不同环境中安装和配置Dashboard,并解决常见问题。 ## Dashboard简介 Kubernetes Dashboard提供以下核心功能: - 查看集群资源使用情况 - 部署和管理应用程序 - 故障排查和日志查看 - 资源创建和编辑 ## 安装准备 ### 环境要求 - 运行中的Kubernetes集群(v1.16+) - `kubectl`已配置并可以访问集群 - 集群有足够的资源(建议至少2CPU/4GB内存) ### 工具准备 ```bash # 验证kubectl配置 kubectl cluster-info # 检查Kubernetes版本 kubectl version --short
这是官方推荐的安装方式:
# 安装最新版Dashboard kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml # 验证安装 kubectl get pods -n kubernetes-dashboard --watch
安装的资源包括: - Deployment - Service - ServiceAccount - Secret - Role/RoleBinding - ClusterRole/ClusterRoleBinding
如需使用Helm安装:
# 添加仓库 helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ # 安装Chart helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \ --namespace kubernetes-dashboard \ --create-namespace \ --set=extraArgs[0]="--enable-skip-login" \ --set=service.type=NodePort
创建admin-user.yaml
文件:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- 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: kubernetes-dashboard
应用配置:
kubectl apply -f admin-user.yaml
kubectl -n kubernetes-dashboard create token admin-user
输出示例:
eyJhbGciOiJSUzI1NiIsImtpZCI6Il...
kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8443:443 --address 0.0.0.0
访问:https://localhost:8443
示例Ingress配置:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashboard-ingress namespace: kubernetes-dashboard annotations: nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" nginx.ingress.kubernetes.io/ssl-passthrough: "true" spec: ingressClassName: nginx rules: - host: dashboard.example.com http: paths: - path: / pathType: Prefix backend: service: name: kubernetes-dashboard port: number: 443
修改Service配置:
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
将type: ClusterIP
改为type: NodePort
Dashboard默认使用自签名证书,如需替换:
# 创建包含证书的Secret kubectl create secret tls dashboard-tls \ --cert=path/to/cert.pem \ --key=path/to/key.pem \ -n kubernetes-dashboard # 更新Deployment使用自定义证书 kubectl set env deployment/kubernetes-dashboard \ -n kubernetes-dashboard \ --containers="kubernetes-dashboard" \ ARGS="--tls-cert-file=/tls.crt --tls-key-file=/tls.key"
最小权限示例:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: read-only namespace: default rules: - apiGroups: [""] resources: ["pods", "services"] verbs: ["get", "list", "watch"]
无法访问Dashboard
kubectl get svc -n kubernetes-dashboard
kubectl logs -n kubernetes-dashboard <pod-name>
令牌无效
证书错误
--insecure
标志生产环境建议
监控集成 “`yaml
”`
定期升级
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Kubernetes Dashboard作为集群管理的可视化工具,通过本文介绍的多种安装方式和安全配置,可以满足从开发到生产的不同需求。建议结合企业实际安全要求,选择最适合的访问控制和认证方式。 “`
这篇文章包含了: 1. 详细的安装步骤(kubectl和Helm两种方式) 2. 多种访问方式配置 3. 安全配置建议 4. 常见问题解决方案 5. 生产环境最佳实践 6. 代码块和配置示例 7. 结构化的目录导航
全文约2900字,采用Markdown格式,可直接用于技术文档发布。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。