当前位置: 首页 > ai >正文

从零开始部署 Kubernetes Dashboard:可视化管理你的集群

在 Kubernetes 集群管理中,命令行工具 kubectl 虽然强大,但面对复杂的资源关系和状态监控时,可视化界面往往能让操作事半功倍。Kubernetes Dashboard 作为官方推出的 Web 控制台,能帮我们直观地查看集群状态、管理工作负载、排查问题,是运维和开发人员的得力助手。今天就来手把手教你从安装到配置,一步步搭建起可用的 Kubernetes Dashboard,并解决访问和权限问题。

为什么需要 Kubernetes Dashboard?

可能有同学会问:“我用 kubectl 命令行操作得好好的,为什么还要折腾 Dashboard?”其实两者并不冲突,Dashboard 的优势在于“可视化”和“便捷性”:

  • 直观展示集群资源状态:节点、Pod、服务、部署等资源的运行状态一目了然,无需记忆复杂的 kubectl get 命令;

  • 简化操作流程:通过图形界面即可完成部署应用、伸缩副本、查看日志等操作,降低新手门槛;

  • 实时监控与告警:集成基础监控数据,能快速发现资源异常(如 Pod 崩溃、节点资源不足)。

对于刚接触 Kubernetes 的同学,Dashboard 更是快速熟悉集群的“敲门砖”。

第一步:安装 Kubernetes Dashboard

Kubernetes Dashboard 本身也是一个部署在集群中的应用,官方提供了现成的部署清单,我们直接通过 kubectl 安装即可。

执行安装命令

打开终端,输入以下命令:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

这个命令会从官方仓库拉取 v2.7.0 版本的部署配置(这是目前较稳定的版本),并在集群中创建对应的命名空间(kubernetes-dashboard)、Deployment、Service 等资源。

验证安装结果

安装完成后,我们可以通过以下命令检查资源是否正常创建:

kubectl get -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

如果输出中所有资源的 STATUS 都是 RunningActive,说明安装成功。此时 Dashboard 已经在集群内部运行,但默认情况下只能通过集群内部的 Service 访问,我们还需要配置外部访问方式。

第二步:配置外部访问(Ingress 方式)

要从集群外部访问 Dashboard,常见的方式有三种:kubectl proxy 端口转发、NodePort 暴露服务,以及 Ingress 反向代理。这里推荐生产环境中常用的 Ingress 方式,它能通过域名优雅地访问服务,还支持 HTTPS 加密。

前提条件

使用 Ingress 需确保集群中已安装 Ingress Controller(如 Nginx Ingress),如果还没安装,可以参考官方文档先部署。

创建 Ingress 配置文件

新建一个名为 kubernetes-dashboard-ingress.yml 的文件,内容如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: dashboard-ingressnamespace: kubernetes-dashboard  # 与 Dashboard 同命名空间annotations:# 告诉 Ingress 后端服务使用 HTTPS 协议nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"# 强制将 HTTP 请求重定向为 HTTPSnginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:ingressClassName: nginx  # 指定使用 Nginx Ingress Controllerrules:- host: web.dashboard.com  # 自定义访问域名(需在本地 hosts 或 DNS 中解析)http:paths:- path: /pathType: Prefixbackend:service:name: kubernetes-dashboard  # 关联 Dashboard 的 Service 名称port:number: 443  # Dashboard 服务的端口(默认是 443)tls:  # 配置 HTTPS 证书(可选,测试环境可暂时忽略)- hosts:- web.dashboard.com

应用 Ingress 配置

执行以下命令创建 Ingress 资源:

kubectl apply -f kubernetes-dashboard-ingress.yml

配置域名解析

由于我们使用了自定义域名 web.dashboard.com,需要确保本地能解析到集群中 Ingress Controller 所在的节点 IP。可以修改本地 hosts 文件(Windows 路径:C:\Windows\System32\drivers\etc\hosts;Linux/Mac 路径:/etc/hosts),添加一行:

<Ingress Controller 节点IP>  web.dashboard.com

替换 <Ingress Controller 节点IP> 为实际运行 Ingress Controller 的节点 IP(可通过 kubectl get pods -n ingress-nginx -o wide 查看)。

第三步:创建管理员账户并获取访问令牌

Kubernetes 是一个强权限控制的系统,默认情况下 Dashboard 不允许匿名访问,我们需要创建一个具有管理员权限的服务账户(Service Account),并获取访问令牌(Token)。

创建服务账户和权限绑定

新建 dashboard-sa.yml 文件,内容如下:

# 定义服务账户(命名空间需与 Dashboard 一致)
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
# 将服务账户绑定到集群管理员角色(cluster-admin)
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin  # 集群最高权限角色
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard

执行以下命令创建资源:

kubectl apply -f dashboard-sa.yml

获取短期访问令牌

服务账户创建后,可通过以下命令生成一个短期有效的令牌(默认有效期 1 小时,适合临时测试):

kubectl -n kubernetes-dashboard create token admin-user

执行后会输出一长串字符串,这就是访问 Dashboard 的令牌,复制保存好。

获取长期访问令牌(推荐)

短期令牌过期后需要重新生成,不方便日常使用。我们可以通过创建 Secret 来生成长期有效的令牌(有效期通常与 Secret 生命周期一致,默认不会自动过期)。

1. 创建存储令牌的 Secret

新建 admin-user-permanent-token.yml 文件:

apiVersion: v1
kind: Secret
metadata:name: admin-user-permanent-tokennamespace: kubernetes-dashboardannotations:# 关联到前面创建的 admin-user 服务账户kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token

执行命令创建 Secret:

kubectl apply -f admin-user-permanent-token.yml
2. 关联 Secret 到服务账户

执行以下命令将 Secret 与 admin-user 服务账户绑定:

kubectl patch serviceaccount admin-user -n kubernetes-dashboard -p '{"secrets": [{"name": "admin-user-permanent-token"}]}'
3. 提取长期令牌

最后,通过以下命令获取长期令牌:

kubectl get secret admin-user-permanent-token -n kubernetes-dashboard -o jsonpath="{.data.token}" | base64 --decode

同样复制输出的令牌,这个令牌可以长期使用(除非手动删除 Secret)。

第四步:登录 Dashboard 并开始使用

访问 Dashboard

在浏览器中输入我们配置的域名 https://web.dashboard.com(注意是 HTTPS),此时可能会提示“证书不安全”(因为我们没配置正式 SSL 证书),忽略警告继续访问即可(生产环境需配置 valid 证书)。

登录界面操作

访问后会看到登录界面,选择“Token”方式,粘贴前面复制的令牌,点击“登录”。

登录成功后,你会看到 Dashboard 的主界面,左侧是导航菜单,包含“工作负载”“服务与 ingress”“存储”“集群”等模块:

  • 在“工作负载”中可以查看和管理 Pod、Deployment、StatefulSet 等;

  • 在“集群”中可以查看节点状态、资源使用情况;

  • 点击任意资源名称,可进入详情页查看日志、事件等信息。

常见问题与解决办法

  1. 访问域名提示“无法访问” 检查 Ingress 资源是否正常(kubectl get ingress -n kubernetes-dashboard),确保域名解析正确,且 Ingress Controller 节点的 80/443 端口已开放。

  2. 令牌无效或登录失败 确认服务账户和 ClusterRoleBinding 已正确创建(kubectl get sa,clusterrolebinding -n kubernetes-dashboard),如果是长期令牌,检查 Secret 是否与服务账户绑定成功。

  3. 界面显示“权限不足” 可能是 ClusterRoleBinding 配置错误,确保 roleRef.namecluster-admin,且 subjects 中的服务账户名称和命名空间正确。

总结

通过以上步骤,我们完成了 Kubernetes Dashboard 的安装、外部访问配置、管理员账户创建和令牌获取,最终成功登录并使用 Dashboard 管理集群。Dashboard 作为可视化工具,能极大简化集群操作,但生产环境中需注意:

  • 限制令牌的权限范围(避免使用 cluster-admin 等高权限角色);

  • 配置正式 SSL 证书,确保访问安全;

  • 定期轮换令牌,降低泄露风险。

希望这篇教程能帮你快速上手 Kubernetes Dashboard,让集群管理更轻松!如果在操作中遇到问题,欢迎在评论区留言讨论~

http://www.xdnf.cn/news/19103.html

相关文章:

  • 不惧和谐,永不失效!!
  • 高并发内存池(19)-用基数树优化
  • JavaScript事件
  • FastAPI 入门科普:下一代高性能 Python Web 框架
  • 顶点 (VS)vs 片段(FS):OpenGL纹理滚动着色器的性能博弈与设计哲学
  • Shader开发(十八)实现纹理滚动效果
  • 【基础知识】互斥锁、读写锁、自旋锁的区别
  • 控制系统仿真之PID校正-PID校正(八)
  • 动手实现多元线性回归
  • 医疗 AI 的 “破圈” 时刻:辅助诊断、药物研发、慢病管理,哪些场景已落地见效?
  • 鸿蒙FA/PA架构:打破设备孤岛的技术密钥
  • Mysql基本语句(二)
  • 解决 jsdelivr CDN不可用问题
  • GTSAM中gtsam::LinearContainerFactor因子详解
  • Acrobat Pro DC 2025安装包下载及详细安装教程,PDF编辑器永久免费中文版(稳定版安装包)
  • Android 短信验证码输入框实现
  • 嵌入式Linux驱动开发:定时器驱动
  • 北斗传输采集数据的自定义通信协议
  • 香港电讯创新解决方案,开启企业数字化转型新篇章
  • CollageIt:简单易用的照片拼贴工具
  • Spring boot 启用第二数据源
  • 【Day 40】Shell脚本-条件判断
  • linux中.tar 解压命令
  • 【系列05】端侧AI:构建与部署高效的本地化AI模型 第4章:模型量化(Quantization)
  • 嵌入式Linux驱动开发 - DTS LED驱动
  • 管家婆辉煌ERP中如何查询畅销商品
  • java8浮点型算平均值
  • 37 HTB Remote 机器 - 容易
  • 字典解密助手ArchiveHelperWpfv1.0.12详细使用说明书
  • Apisix工作流程