Lazy loaded image
部署 Kubernetes Dashboard 访问 Kubernetes 仪表盘
Words 545Read Time 2 min
2025-10-10
2025-11-10
date
related_level
slug
k8s_dashboard
type
Post
relate_date
summary
部署 Kubernetes Dashboard,创建管理员账户与访问令牌,通过 port-forward 或 Ingress 访问
status
Published
tags
k8s
系统管理
前端
category
运维管理
last_updated
Nov 10, 2025 10:02 PM
是否已更新
orginal_page
是否推荐
参考资料
  • KubernetesKubernetes部署和访问 Kubernetes 仪表板(Dashboard)
部署 Dashboard UI
  • helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
  • helm upgrade --install kubernetes-dashboard \ kubernetes-dashboard/kubernetes-dashboard \ --create-namespace --namespace kubernetes-dashboard
查看运行情况和 endpoint 信息
  • kubectl get -n kubernetes-dashboard pod -l app.kubernetes.io/instance=kubernetes-dashboard -o wide
  • kubectl get -n kubernetes-dashboard svc -l app.kubernetes.io/name=kong -o wide
  • kubectl describe -n kubernetes-dashboard svc/kubernetes-dashboard-kong-proxy
kubectl 创建绑定 cluster-admin 权限的管理员服务帐户
如果不存在 cluster-admin 集群角色权限,需要先手动创建 cluster-admin
  • kubectl get clusterroles -o yaml | grep admin
vim ClusterRole.cluster-admin.yaml
  • kubectl --context=default apply -f ClusterRole.cluster-admin.yaml
vim ServiceAccount.admin-user.yaml
  • 在命名空间kubernetes-dashboard中创建名为 admin-user 服务帐户
  • 创建 ClusterRoleBinding 绑定 cluster-admin 权限
  • kubectl --context=default apply -f admin-user.yaml
kubectl 检查帐户
  • kubectl -n kubernetes-dashboard get serviceaccount admin-user -o yaml
  • kubectl get clusterrolebinding | grep cluster-admin
创建用于登录的访问令牌
  • kubectl create token admin-user -n kubernetes-dashboard
    (可选)为服务帐户生成长期有效的令牌
    参考资料
    创建一个与服务账号绑定的 Secret,令牌会保存在 Secret 中
    • 获取 Secret 中的令牌
      建立端口转发 port-forward 来访问仪表盘
      • kubectl get svc -n kubernetes-dashboard
        • 查看端口
      • kubectl port-forward svc/kubernetes-dashboard-kong-proxy 9443:443 -n kubernetes-dashboard
        • 转发到端口 9443,通过 https://localhost:9443 访问
        • --address 0.0.0.0 监听 0.0.0.0,可通过主机名访问
        • --address localhost,10.19.21.23 同时监听指定 IP
      (可选)k3s 集群直接使用 traefik 的 IngressRoute 建立到仪表盘的路由
      • k3s 自带 traefik 作为 Ingress Controller,通过 IngressRoute 可以路由到对应服务
        • 如果使用 nginx 则需要配置 Ingress
      vim ~/.config/k3s/IngressRoute.k8s-dboard.yaml
      • 由于是自签证书且不包含对应 IP 的 san 记录,traefik 验证时会报错,需要配置 serversTransport 来禁用证书验证
      • kubectl apply -f ~/.config/k3s/IngressRoute.k8s-dboard.yaml
      • kubectl get ingressroute -A
      添加对应域名的 DNS 记录到 /etc/hosts
      • kubectl -n kube-system get svc -l app.kubernetes.io/name=traefik -o wide
        curl 测试
        • curl -kv https://dashboard.traefik.cluster.local/
        卸载 Dashboard
        • helm uninstall kubernetes-dashboard
        • kubectl delete serviceaccount/admin-user -n kubernetes-dashboard
          • 会自动清除绑定的令牌
        • kubectl delete clusterrolebinding admin-user
          • kubectl get clusterrolebinding | grep cluster-admin
         
        上一篇
        Docker 配置和使用
        下一篇
        k8s traefik TCP 负载均衡

        Comments
        Loading...