kubernetes-dashboard 是 k8s 官方提供的集群 Web UI,可以查看集群详细的信息,比如集群的 api 资源,pod 日志,工作负载,节点资源利用率等等。在部署 kubernetes-dashboard 前需要先安装 heapster ,heapster 用于收集数据,而 dashboard 是展示数据的界面。关于 heapster 的安装见之前文章「helm 部署 heapster 组件,k8s-1.8已经移除heapster 组件并使用 metrics-server 替代」。如果没有部署 heapster 组件,kubernetes-dashboard 的 pod 会报错:

2019/08/06 10:30:06 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.

使用官方提供的 Chart:https://github.com/helm/charts/tree/master/stable/kubernetes-dashboard对 values 文件进行一些定制:

  • docker 镜像地址改为阿里云镜像地址,国内访问不了默认的镜像地址;
  • service 类型改为 NodePort,并指定 nodePort 端口为 30000;

    下载kubernetes-dashboard chart包

    1. [root@k8s-master01 metrics-server]# helm search repo kubernetes-dashboard
    2. NAME CHART VERSION APP VERSION DESCRIPTION
    3. aliyun/kubernetes-dashboard 0.6.0 1.8.3 General-purpose web UI for Kubernetes clusters
    4. [root@k8s-master01 metrics-server]# helm pull aliyun/kubernetes-dashboard
    5. [root@k8s-master01 metrics-server]# ll
    6. 总用量 16
    7. -rw-r--r-- 1 root root 3507 5 5 12:55 components.yaml
    8. -rw-r--r-- 1 root root 3335 4 5 2020 components.yaml.1
    9. -rw-r--r-- 1 root root 5286 5 5 13:12 kubernetes-dashboard-0.6.0.tgz
    10. [root@k8s-master01 metrics-server]# tar -xvf kubernetes-dashboard-0.6.0.tgz
    11. [root@k8s-master01 metrics-server]# cd kubernetes-dashboard
    12. [root@k8s-master01 kubernetes-dashboard]# ls
    13. Chart.yaml README.md templates values.yaml

    自定义配置文件

    ```shell cat < my-values.yaml image: repository: registry.cn-shanghai.aliyuncs.com/zdl_work/kubernetes-dashboard-amd64 tag: v1.10.1

ingress: enabled: true annotations: kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: ‘true’ nginx.ingress.kubernetes.io/backend-protocol: “HTTPS” paths:

- /

hosts:

- dashboard.guangyang.shen

tls:

- secretName: kubernetes-dashboard-tls
  hosts:
    - dashboard.guangyang.shen

rbac: clusterAdminRole: true

serviceAccount: name: dashboard-admin EOF ```

rbac.clusterAdminRole=true:让 dashboard 的权限够大,这样我们可以方便操作多个 namespace serviceAccount.name=dashboard-admin:配置一个名称,自动创建,方便用脚本查询登录令牌

安装kubernetes-dashboard