---
vssueId: 126
description: Kubernetes升级_使用kubeadm升级K8S集群_到Kubernetes_v1.15.3
meta:
  - name: keywords
    content: Kubernetes Dashboard,安装Kubernetes Dashboard,K8S Dashboard,K8S管理界面
---

# 安装Kubernetes Dashboard

<AdSenseTitle/>

> 参考文档： [Web UI (Dashboard)](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/)

Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。使用 Kubernetes Dashboard，您可以：
* 向 Kubernetes 集群部署容器化应用
* 诊断容器化应用的问题
* 管理集群的资源
* 查看集群上所运行的应用程序
* 创建、修改Kubernetes 上的资源（例如 Deployment、Job、DaemonSet等）
* 展示集群上发生的错误

例如：您可以伸缩一个 Deployment、执行滚动更新、重启一个 Pod 或部署一个新的应用程序

以上文字翻译自 Kubernetes 官方文档。Kuboard 的定位和 Dashboard 是相似的，**主要的区别** 在于：
* Kuboard 关注微服务参考架构的视角对界面进行组织，参考 [Kuboard 简介](/overview/share-coder.html)
* Kuboard 中，不需要手工编写 YAML 文件，进一步降低 K8S 使用难度，提高便捷性
* Kuboard 可以导出整个微服务架构的部署信息，并在新的名称空间/集群导入配置信息
* Kuboard 的一个发展方向是，提供内建的 [监控套件](/guide/example/monitor.html)（目前的全局监控套件成熟度比较高）

为了帮助大家选择适合自己的工具，本文将详细描述如何在 Kubernetes 集群中安装 Kubernetes Dashboard。

## 安装

执行如下命令，以安装 Kubernetes Dashboard

``` sh
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
```

## 访问

Kubernetes Dashboard 当前，只支持使用 Bearer Token登录。
由于 Kubernetes Dashboard 默认部署时，只配置了最低权限的 RBAC。因此，我们要创建一个名为 `admin-user` 的 ServiceAccount，再创建一个 ClusterRolebinding，将其绑定到 Kubernetes 集群中默认初始化的 `cluster-admin` 这个 ClusterRole。

> 更多关于权限管理的信息，请参考 [Using RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)

* 创建 Service Account

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

* 创建 ClusterRoleBinding

  使用 `kubeadm` 安装集群时，默认创建了 ClusterRole `cluster-admin`。此时我们可以直接为刚才的 ServiceAccount 创建 ClusterRoleBinding。

  ``` 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
  ```

* 获取Bearer Token

  执行命令：
  ```sh
  kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
  ```

  输出信息如下所示：

  ``` {13}
  Name:         admin-user-token-v57nw
  Namespace:    kubernetes-dashboard
  Labels:       <none>
  Annotations:  kubernetes.io/service-account.name: admin-user
                kubernetes.io/service-account.uid: 0303243c-4040-4a58-8a47-849ee9ba79c1

  Type:  kubernetes.io/service-account-token

  Data
  ====
  ca.crt:     1066 bytes
  namespace:  20 bytes
  token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9. .Z2JrQlitASVwWbc-s6deLRFVk5DWD3P_vjUFXsqVSY10pbjFLG4njoZwh8p3tLxnX_VBsr7_6bwxhWSYChp9hwxznemD5x5HLtjb16kI9Z7yFWLtohzkTwuFbqmQaMoget_nYcQBUC5fDmBHRfFvNKePh_vSSb2h_aYXa8GV5AcfPQpY7r461itme1EXHQJqv-SN-zUnguDguCTjD80pFZ_CmnSE1z9QdMHPB8hoB4V68gtswR1VLa6mSYdgPwCHauuOobojALSaMc3RH7MmFUumAgguhqAkX3Omqd3rJbYOMRuMjhANqd08piDC3aIabINX6gP5-Tuuw2svnV6NYQ
  ```

* 执行 `kubectl proxy` 命令

  您必须能够在自己的笔记本（工作电脑）上运行 kubectl 并访问您的集群。可参考文档 [安装Kubectl](./install/install-kubectl.html)

  访问路径： `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/`

* 将上一个步骤中获得的 Token 输入到登录界面中，点击 **Sign in** 按钮，完成登录

  ![Kubernetes教程_安装KubernetesDashboard](./install-k8s-dashboard.assets/signin.png)

* 登录成功后，界面如下图所示：

  ![Kubernetes教程_登录KubernetesDashboard](./install-k8s-dashboard.assets/overview.png)

:tada: :tada: :tada: Have Fun!
