共计 5495 个字符,预计需要花费 14 分钟才能阅读完成。
概述
Kubernetes Dashboard 是 Kubernetes 集群的通用 Web 用户界面,提供直观的可视化管理平台,允许用户部署容器化应用、监控应用状态、排查故障以及管理集群资源。作为 Kubernetes 官方推荐的管理工具,Dashboard 支持集群状态监控、工作负载管理、配置管理、存储管理和网络管理等核心功能,是 Kubernetes 生态中不可或缺的组件。
本指南将详细介绍如何通过 Docker 容器化方式快速部署 Kubernetes Dashboard,包括环境准备、镜像获取、容器配置、功能测试和生产环境优化等关键环节,帮助用户在各类环境中高效部署和使用 Kubernetes Dashboard。
环境准备
Docker 环境安装
部署 Kubernetes Dashboard 容器前,需先确保 Docker 环境已正确安装。推荐使用以下一键安装脚本,适用于 Ubuntu、Debian、CentOS 等主流 Linux 发行版:
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
注意:执行脚本需要 root 权限,安装过程可能需要几分钟时间,具体取决于网络环境和服务器配置。
轩辕镜像加速配置
为加速 Docker 镜像拉取速度,上述一键脚本会自动配置轩辕镜像加速服务,其核心特性包括:
- 加速作用 :显著提升从 Docker Hub 下载镜像的速度,解决国内网络访问 Docker Hub 缓慢的问题
- 工作原理 :通过国内高速缓存节点提供镜像服务,镜像内容与 Docker Hub 完全一致
- 自动配置 :无需手动修改 Docker 配置文件,一键脚本完成所有加速配置
镜像准备
镜像信息确认
Kubernetes Dashboard 官方镜像信息:
- 镜像名称 :kubernetesui/dashboard
- 推荐标签 :latest
- 镜像类型 :多段名称(包含斜杠 ”/”),属于用户 / 组织镜像
镜像拉取命令
根据多段镜像名的拉取规则,使用以下命令通过轩辕镜像加速服务拉取 Kubernetes Dashboard 镜像:
# 拉取最新版本
docker pull docker.xuanyuan.me/kubernetesui/dashboard:latest
# 如需指定特定版本,可将 latest 替换为具体标签,例如:# docker pull docker.xuanyuan.me/kubernetesui/dashboard:v2.7.0
查看所有可用镜像标签,请访问 Kubernetes Dashboard 镜像标签列表
镜像验证
拉取完成后,使用以下命令验证镜像是否成功获取:
# 查看本地镜像列表
docker images | grep kubernetesui/dashboard
# 预期输出示例:# docker.xuanyuan.me/kubernetesui/dashboard latest xxxxxxxx 3 days ago 200MB
容器部署
基础部署命令
使用以下命令快速启动 Kubernetes Dashboard 容器:
docker run -d \
--name kubernetes-dashboard \
--restart=always \
-p 8443:8443 \
kubernetesui/dashboard:latest
命令参数说明:
-d:后台运行容器--name kubernetes-dashboard:指定容器名称为 kubernetes-dashboard--restart=always:设置容器开机自启-p 8443:8443:映射容器 8443 端口到主机 8443 端口(Dashboard 默认 HTTPS 端口)
高级部署配置
对于生产环境,建议使用更完善的配置,包括数据持久化、安全配置和资源限制:
docker run -d \
--name kubernetes-dashboard \
--restart=always \
--network=host \
-v /etc/kubernetes/dashboard/certs:/certs \
-v /etc/kubernetes/dashboard/secret:/secret \
-e KUBERNETES_DASHBOARD_CERT_FILE=/certs/tls.crt \
-e KUBERNETES_DASHBOARD_KEY_FILE=/certs/tls.key \
-e KUBERNETES_DASHBOARD_SECRET_FILE=/secret/secret \
--memory=512m \
--memory-swap=1g \
--cpu-shares=512 \
kubernetesui/dashboard:latest
高级配置说明:
--network=host:使用主机网络模式,直接使用主机的网络栈-v:挂载主机目录到容器,用于证书和密钥持久化-e:设置环境变量,配置自定义证书和密钥路径--memory/--memory-swap/--cpu-shares:设置容器资源限制
容器状态验证
部署完成后,验证容器是否正常运行:
# 查看容器运行状态
docker ps | grep kubernetes-dashboard
# 查看容器日志
docker logs kubernetes-dashboard
正常启动时,日志中应包含 ”Successful initial request to the apiserver” 等成功信息
功能测试
访问 Dashboard 界面
Kubernetes Dashboard 默认使用 HTTPS 协议,通过以下步骤访问:
- 打开浏览器,访问地址:
https://< 服务器 IP>:8443 - 安全提示处理 :首次访问时,浏览器会显示安全警告(因使用自签名证书),需手动确认继续访问
- 身份验证 :Dashboard 支持多种身份验证方式:
- Token 认证(推荐):使用 Kubernetes 集群的 service account token
- Kubeconfig 文件:使用包含认证信息的 kubeconfig 文件
- 用户名 / 密码:需预先配置认证服务
获取访问令牌
对于 Docker 部署的测试环境,可通过以下步骤获取访问令牌:
- 创建 service account(在 Kubernetes 集群中执行):
kubectl create serviceaccount dashboard-admin -n kube-system - 绑定 cluster-admin 权限:
kubectl create clusterrolebinding dashboard-admin-binding \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:dashboard-admin - 获取访问令牌:
kubectl get secret -n kube-system | grep dashboard-admin kubectl describe secret dashboard-admin-token-xxxx -n kube-system | grep '^token:' - 将获取到的 token 复制到 Dashboard 登录界面,完成登录
功能验证清单
成功登录后,验证以下核心功能:
- 集群状态查看 :检查集群节点状态、资源使用情况
- 工作负载管理 :查看、创建、编辑 Deployment、Pod 等资源
- 服务发现与负载均衡 :检查 Service、Ingress 配置
- 配置管理 :查看 ConfigMap、Secret 等配置资源
- 存储管理 :验证 PersistentVolume、PersistentVolumeClaim 状态
- 集群事件 :查看集群级别的事件日志
生产环境建议
安全加固措施
- 使用自定义 SSL 证书 :
-v /path/to/custom/cert.crt:/certs/tls.crt \ -v /path/to/custom/key.key:/certs/tls.key \ -e KUBERNETES_DASHBOARD_CERT_FILE=/certs/tls.crt \ -e KUBERNETES_DASHBOARD_KEY_FILE=/certs/tls.key - 最小权限原则 :
- 避免使用 cluster-admin 权限的 service account
- 为 Dashboard 创建专用的 RBAC 角色,仅授予必要权限
- 网络隔离 :
- 使用防火墙限制访问 Dashboard 的 IP 范围
- 建议通过 VPN 或内部网络访问,避免直接暴露公网
数据持久化
虽然 Dashboard 本身不存储持久数据,但相关配置应考虑持久化:
# 挂载配置目录
-v /etc/kubernetes/dashboard/config:/etc/kubernetes-dashboard
资源配置优化
根据集群规模合理配置资源限制:
# 小型集群(<10 节点)--memory=512m --cpu-shares=512
# 中型集群(10-50 节点)--memory=1g --cpu-shares=1024
# 大型集群(>50 节点)--memory=2g --cpu-shares=2048
高可用部署
生产环境建议使用 Kubernetes 原生部署而非 Docker 容器:
# 示例:kubernetes-dashboard.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kubernetes-dashboard
namespace: kube-system
spec:
replicas: 2 # 多副本确保高可用
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
spec:
containers:
- name: kubernetes-dashboard
image: docker.xuanyuan.me/kubernetesui/dashboard:latest
resources:
limits:
cpu: 1000m
memory: 2048Mi
requests:
cpu: 500m
memory: 1024Mi
ports:
- containerPort: 8443
protocol: TCP
故障排查
常见问题及解决方案
- 容器启动失败
# 查看详细错误日志 docker logs kubernetes-dashboard # 常见原因:端口冲突 # 解决方案:更换主机端口,例如 -p 8444:8443 - 无法访问 Dashboard 界面
- 检查防火墙规则:确保 8443 端口已开放
- 网络连通性测试:
telnet < 服务器 IP> 8443 - 容器端口映射:
docker port kubernetes-dashboard
- 认证失败
- 检查 token 是否过期:重新创建 service account 获取新 token
- 权限配置问题:验证 RBAC 绑定是否正确
- kubeconfig 文件问题:确保文件包含正确的集群信息和证书
- Dashboard 显示异常
# 清除浏览器缓存或使用无痕模式访问 # 检查容器资源使用情况,避免资源耗尽 docker stats kubernetes-dashboard
日志收集与分析
# 实时查看日志
docker logs -f kubernetes-dashboard
# 导出日志到文件
docker logs kubernetes-dashboard > dashboard.log 2>&1
# 按时间筛选日志
grep "2023-10-01" dashboard.log
容器状态诊断
# 查看容器详细信息
docker inspect kubernetes-dashboard
# 检查容器网络配置
docker network inspect bridge | grep kubernetes-dashboard
# 进入容器内部排查
docker exec -it kubernetes-dashboard /bin/sh
参考资源
官方文档
镜像相关文档
相关工具
总结
本文详细介绍了 Kubernetes Dashboard 的 Docker 容器化部署方案,从环境准备、镜像拉取到容器部署和功能测试,提供了完整的实施步骤。通过轩辕镜像加速服务,可以显著提升镜像获取速度,同时保持与官方镜像的一致性。
关键要点 :
- 使用一键脚本可快速完成 Docker 环境部署和轩辕镜像加速配置
- Kubernetes Dashboard 镜像属于多段名称镜像,拉取命令格式为
docker pull docker.xuanyuan.me/kubernetesui/dashboard:{TAG} - 容器部署需注意端口映射和安全配置,生产环境建议使用 Kubernetes 原生部署而非独立 Docker 容器
- 访问 Dashboard 需要正确配置的 Kubernetes 集群权限,推荐使用 token 认证方式
后续建议 :
- 深入学习 Kubernetes Dashboard 的高级特性,如自定义视图、资源监控和告警配置
- 根据实际业务需求,优化 RBAC 权限配置,遵循最小权限原则
- 建立完善的监控和日志收集机制,确保 Dashboard 服务稳定运行
- 定期更新 Dashboard 版本,保持与 Kubernetes 集群版本兼容
通过本文档提供的方案,可以快速部署一个功能完备的 Kubernetes Dashboard,为 Kubernetes 集群管理提供直观高效的可视化界面,降低集群管理复杂度,提高运维效率。







很久没更新了。
大佬,不知道过了这么久这个脚本还有没有在…
被投诉下线了。
点了那个链接?
被投诉下线了。
https://idea.hacks.t…