K8s Dashboard 部署实操:从证书签发到访问验证

在 Kubernetes 集群中部署 Dashboard 通常需要解决三个问题:生成自签名证书、应用官方 YAML 文件、以及获取登录 Token。
本文按顺序梳理从零开始的部署流程,默认你已有一个可用的 K8s 集群和 kubectl 命令行工具。

环境检查与证书签发

开始之前,先确认集群版本和节点状态。
执行以下命令应能正常返回节点列表和版本号:

kubectl get nodes
kubectl version --short

Dashboard 默认使用 HTTPS 访问,需要准备 TLS 证书。
如果只是内部测试,可以用 OpenSSL 生成自签名证书。
先创建一个工作目录,例如 ~/dashboard-certs,然后执行:

mkdir ~/dashboard-certs && cd ~/dashboard-certs
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout dashboard.key -out dashboard.crt \
  -subj "/CN=dashboard.local"

将生成的 dashboard.crt 和 dashboard.key 导入为 Kubernetes Secret,供 Dashboard 容器挂载使用:

kubectl create namespace kubernetes-dashboard
kubectl -n kubernetes-dashboard create secret tls dashboard-tls \
  --cert=dashboard.crt --key=dashboard.key

如果命名空间已存在,跳过 create namespace 这一行。
执行后可用 kubectl -n kubernetes-dashboard get secret 确认 Secret 创建成功。

部署 Dashboard 资源

官方推荐通过 YAML 文件部署。
下载对应版本的 recommended.yaml(以官方仓库为准,不固定版本号):

curl -LO https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

打开文件,找到 kubernetes-dashboard 的 Deployment 部分,在 spec.template.spec.volumes 下添加证书卷,并在 containers 的 volumeMounts 中挂载。
同时把 Service 类型改为 NodePort 方便外部访问:

spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30443

保存后应用配置:

kubectl apply -f recommended.yaml

等待 Pod 启动,用 kubectl -n kubernetes-dashboard get pods 观察状态,直到显示 Running。

获取登录 Token

Dashboard 从 1.7 版本后默认使用 Token 登录。
创建一个 ServiceAccount 并绑定 cluster-admin 角色(仅测试环境建议,生产环境应细化权限):

kubectl -n kubernetes-dashboard create serviceaccount dashboard-admin
kubectl create clusterrolebinding dashboard-admin \
  --clusterrole=cluster-admin \
  --serviceaccount=kubernetes-dashboard:dashboard-admin

获取 Token 的命令:

kubectl -n kubernetes-dashboard create token dashboard-admin

复制输出的长字符串,在 Dashboard 登录页选择 Token 方式粘贴即可。

常见报错与避坑

Pod 一直处于 CrashLoopBackOff:多半是证书挂载路径不对,检查 volumeMounts 的 mountPath 是否与容器内实际读取证书的路径一致。

浏览器提示证书无效:自签名证书本身不被浏览器信任,这是正常现象。
内部测试可点击“继续访问”;
生产环境应换成受信任 CA 签发的证书。

访问 NodePort 超时:确认节点防火墙放行了 30443 端口,云服务器还需检查安全组规则。

Token 登录后提示权限不足:
检查 clusterrolebinding 是否绑定成功,
用 kubectl get clusterrolebinding dashboard-admin -o yaml 核对 ServiceAccount 名称和命名空间。

验证部署结果

在浏览器打开 https://<节点IP>:30443,出现登录页面即表示服务已启动。
粘贴 Token 后能进入集群概览页面,看到命名空间、节点和工作负载列表,说明部署完整可用。

如果页面能打开但数据加载失败,
通常是 Dashboard 与 API Server 通信问题,
检查 kubectl -n kubernetes-dashboard logs 中是否有连接拒绝或证书验证错误。

整个流程的核心是证书、YAML 和 Token 三部分。
证书决定能否建立 HTTPS 连接,YAML 决定资源如何创建,Token 决定能否通过认证。
任何一步出错,优先回看对应章节的检查项。

分享到:
上一篇
K8s ConfigMap配置实战:从创建到挂载环境变量与文件
下一篇
用 Rancher 管理 K8s 集群:从导入到验证的完整操作
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意