当前位置:首页 > 问答 > 正文

Kubernetes仪表盘安装全流程,教你一步步搞定可视化界面搭建

我们要明确一点,Kubernetes仪表盘(Kubernetes Dashboard)是一个官方的Web用户界面,它让你能够通过直观的图形化方式,而不是复杂的命令行,来管理和监控你的Kubernetes集群,你可以把它想象成是你集群的“驾驶舱”,里面可以看到节点、Pod、服务、存储等各种资源的运行状态,并且还能进行一些创建、删除的操作。

整个安装过程可以分为几个大步骤:安装Dashboard本身、配置访问权限、以及安全地访问界面,下面我们一步一步来。

第一步:安装Dashboard

最直接的方式就是使用Kubernetes官方提供的配置文件,你只需要在你的机器上,确保已经配置好kubectl命令并且能够连接到你的集群(无论是本地的Minikube集群还是云上的集群),然后执行一条命令即可。

根据Kubernetes Dashboard官方GitHub仓库的说明,你可以使用以下命令来部署最新版本的Dashboard:

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

(来源:Kubernetes Dashboard官方GitHub仓库的安装指南)

这条命令会从网上拉取一个预设好的配置文件(YAML文件),并在你的集群里创建一系列必要的资源,包括一个叫做kubernetes-dashboard的命名空间(Namespace),以及在这个命名空间下的Pod、服务(Service)、账号等。

执行完后,你可以用kubectl get pods -n kubernetes-dashboard命令查看一下Dashboard的Pod是否已经正常运行,如果状态是“Running”,那就说明安装成功了。

第二步:配置访问权限(最关键的一步)

安装好Dashboard只是第一步,但你现在还无法访问它,因为Kubernetes有一套严格的权限控制系统(RBAC),默认安装的Dashboard服务账户(Service Account)权限很小,我们需要给它分配合适的权限,才能让它有资格去查看和管理集群里的资源。

这里为了演示方便,我们创建一个拥有集群最高权限(cluster-admin)的服务账户。在生产环境中,出于安全考虑,你应该根据“最小权限原则”分配精确的权限。

  1. 创建服务账户:我们先在kubernetes-dashboard命名空间下创建一个专用的服务账户,可以创建一个文件,比如叫dashboard-adminuser.yaml如下:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kubernetes-dashboard

    然后执行kubectl apply -f dashboard-adminuser.yaml

  2. 绑定集群角色:我们需要将这个服务账户和集群最高权限角色绑定在一起,再创建一个文件,比如叫cluster-role-binding.yaml如下:

    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 cluster-role-binding.yaml

    (以上两个YAML文件的配置思路来源于Kubernetes官方文档中关于RBAC的说明和Dashboard项目的访问控制指南)

这样,我们就创建了一个名为admin-user的服务账户,并赋予了它管理整个集群的权力。

第三步:获取令牌(Token)并访问Dashboard

现在权限有了,我们怎么登录呢?Dashboard支持多种登录方式,这里我们使用最常用的Token方式。

  1. 获取Token:我们需要获取刚才创建的admin-user服务账户对应的令牌,执行以下命令:

    kubectl -n kubernetes-dashboard create token admin-user

    这条命令会直接在你的终端里打印出一长串非常复杂的字符,这就是你的登录令牌,复制它,一会儿要用。

    (这种方法来源于Kubernetes官方文档中关于ServiceAccount Token的管理方式)

  2. 访问Dashboard界面

    • API Server代理(推荐用于测试) 这是最安全的方式之一,因为它通过kubectl在你的本地和集群API服务器之间建立了一条加密的隧道,执行命令:

      kubectl proxy

      这个命令会启动一个代理服务,通常监听在你本地的8001端口,你可以在浏览器中访问以下地址:

      http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

      浏览器会打开Dashboard的登录界面。

    • 修改Service类型(不推荐用于生产) 你也可以将Dashboard的Service类型从默认的ClusterIP改为NodePort,这样就能通过集群任何节点的IP和分配的端口来访问。

      kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec": {"type": "NodePort"}}'

      然后使用kubectl get svc -n kubernetes-dashboard查看分配给kubernetes-dashboard服务的端口号(在30000-32767之间),再通过https://<你的节点IP>:<端口号>来访问。

    (这两种访问方式在Kubernetes Dashboard官方文档的“访问Dashboard”章节中有详细描述)

  3. 登录: 在浏览器打开的登录页面中,选择“Token”登录方式,将刚才复制的那一长串令牌粘贴进去,点击登录,你就可以看到完整的Kubernetes仪表盘界面了,你可以一览无余地看到整个集群的健康状态、资源使用情况,以及所有部署的应用。

就是从零开始安装和配置Kubernetes Dashboard的完整流程,核心就是三步:一键安装、精细授权、安全访问,希望这个流程能帮助你顺利搭建起自己的Kubernetes可视化管理系统。

Kubernetes仪表盘安装全流程,教你一步步搞定可视化界面搭建