跳过正文
  1. 所有文章/

11|Addons 部署(1):部署 Kubernetes Dashboard

·666 字·2 分钟
目录
K8S集群部署 - 这篇文章属于一个选集。
§ 11: 本文

在操作 Kubernetes 集群的过程中,我们可以通过 kube-apiserver 提供的 REST API 接口来操作。也可以通过 kubectl 命令行工具来操作。还有一种更便捷、更简单的操作方式便是通过前端来操作。

Kubernetes 提供了官方的 dashboard 组件,用来提供界面化访问 Kubernetes 集群的方式。本小节,我们就来部署 Kubernetes dashboard 组件。

部署 Dashboard
#

注意:Kubernetes Dashboard 项目已于 2026年1月归档,不再维护。官方推荐使用 Headlamp 替代。本文仍使用 v2.7.0 版本进行演示。

执行以下命令部署 Dashboard:

# 1. 部署 dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
# 2. 转发流量到 dashboard 控制面
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard 9443:443 --address 0.0.0.0

等待所有 Pod 都 Running:

$ kubectl -n kubernetes-dashboard get pods
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-5cb4f4bb9c-xxxxx   1/1     Running   0          2m
kubernetes-dashboard-6bc7b4d6d5-xxxxx        1/1     Running   0          2m

所有 Pod 都 Running 后,打开浏览器访问:https://192.168.100.101:9443/, 界面如下:

logger

出现登录界面,需要通过 Bearer token 来登录。所以,我们需要先生成一个 Bearer token。

创建登录 Dashboard 的 token 和 kubeconfig 配置文件
#

dashboard 默认只支持 token 认证(不支持 client 证书认证),所以如果使用 Kubeconfig 文件,需要将 token 写入到该文件。

你可以参考官方文档来创建:Creating sample user。也可以,跟随教程来创建。

创建登录 Bearer token
#

# 1. 创建 ServiceAccount
kubectl -n kubernetes-dashboard create sa dashboard-admin
# 2. 创建 ClusterRoleBinding
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
# 3. 创建 token
DASHBOARD_LOGIN_TOKEN=$(kubectl -n kubernetes-dashboard create token dashboard-admin)
echo ${DASHBOARD_LOGIN_TOKEN}

使用输出的 token 登录 Dashboard。这里,也需要把 token 保存起来,方便下次登录 dashboard。登录之后,界面如下:

dashboard

创建使用 token 的 KubeConfig 文件
#

创建命令如下:

source /opt/k8s/bin/environment.sh
# 设置集群参数
kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/cert/ca.pem \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=dashboard.kubeconfig

# 设置客户端认证参数,使用上面创建的 Token
kubectl config set-credentials dashboard_user \
  --token=${DASHBOARD_LOGIN_TOKEN} \
  --kubeconfig=dashboard.kubeconfig

# 设置上下文参数
kubectl config set-context default \
  --cluster=kubernetes \
  --user=dashboard_user \
  --kubeconfig=dashboard.kubeconfig

# 设置默认上下文
kubectl config use-context default --kubeconfig=dashboard.kubeconfig

用生成的 dashboard.kubeconfig 登录 Dashboard。

参考
#

  1. Access control - Kubernetes Dashboard
  2. kubernetes/dashboard#2558
  3. Organizing Cluster Access Using kubeconfig Files
  4. Accessing Dashboard 1.7.X and above
  5. kubernetes/dashboard#2540
K8S集群部署 - 这篇文章属于一个选集。
§ 11: 本文