Kubernetes Dashboard 生成token

本文详细介绍如何在Kubernetes环境中生成用于Dashboard登录的Token。包括创建Service Account、配置Cluster Role Binding以及获取Token的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚装完dashboard打开页面是这样的,需要token 才可以进入

生成token

  1. 根据官方文档
  2. 创建dashboard-adminuser.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: admin-user
    namespace: kubernetes-dashboard
    
  • 执行 kubectl apply -f dashboard-adminuser.yaml
  1. 创建admin-user-role-binding.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
    
    
  • 执行kubectl create -f admin-user-role-binding.yaml
    clusterrolebinding.rbac.authorization.k8s.io/admin-user created
    
  1. 生成token

    ➜ kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
    
    eyJcdGciOiJSUzI1NiIsImtpZCI6IjByaWotQUN0TWVxTUZwNXlTaFJKMzZaTlpuNmliSWRCQ0NnaldNYWV3eUEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTc1anhyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiM2ZlMjYxMi1iODIzLTRhOGMtYWU3MS05ZjBiODNhYTE2YTUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.VHJrN23QG8xvl5ervkDVhzZ6PoB1-mOJR418YyF6-DJ1TLMr_imZE8-z8TKMUyg61JWliu2aboibyLrOOAZCfRIv33AhntOGhoj9vYDP6HdnvOYEEwsHlGF1gPE19ENijh83GqNaTIIsAJwz1dV-Koif8lzermpaV0Qsy2FnWyzorEKEv4aZ5kOxcWrOdCcyGzhA7jKdK--vI6suIUxPeKho2w_mrkNlWv4Tk_g9Y0NwVhy6IRYpsLtOJsCyUEdcLiIxhf9-VBAgR1EOxM6913Mgo3AaCHmlAAPBzFcued4yMrynbRnlRo3maHjS5T0h2FKRvj_Sedi6jX1v1QNKhg
    
  2. 输入token

  3. 点击登录显示如下页面

### Kubernetes Dashboard 的安装与基本配置步骤 Kubernetes Dashboard 是一个基于 Web 的用户界面,允许通过图形化操作对集群进行管理和容器应用的部署。以下是详细的安装和基本配置流程: #### 1. 安装 Kubernetes Dashboard Kubernetes Dashboard 支持使用 Helm 进行安装,这种方式能够更高效地管理其依赖项。 - **添加官方 Helm 仓库**: ```bash helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ ``` - **更新 Helm 仓库信息**: ```bash helm repo update ``` - **创建命名空间**(可选): 为了更好地隔离资源,可以为 Dashboard 创建一个独立的命名空间,例如 `kubernetes-dashboard`。 ```bash kubectl create namespace kubernetes-dashboard ``` - **安装 Dashboard**: 使用以下命令在指定的命名空间中安装 Dashboard: ```bash helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --namespace kubernetes-dashboard ``` #### 2. 配置访问方式 安装完成后,需要配置访问方式以确保可以通过浏览器访问 Dashboard。 - **检查服务状态**: 安装完成后,确认 Dashboard 对应的服务是否已成功运行: ```bash kubectl get services -n kubernetes-dashboard ``` 默认情况下,Dashboard 会暴露为 ClusterIP 类型的服务,仅支持集群内部访问。 - **修改服务类型为 NodePort**(适用于单节点或测试环境): 编辑 Dashboard 的服务定义,将类型从 ClusterIP 修改为 NodePort: ```bash kubectl edit service kubernetes-dashboard -n kubernetes-dashboard ``` 找到 `type: ClusterIP` 并将其更改为 `type: NodePort`,保存并退出后,Kubernetes 会自动分配端口。 - **获取访问地址**: 再次运行 `kubectl get services -n kubernetes-dashboard` 查看分配的端口,然后通过任意节点的 IP 地址加上该端口访问 Dashboard。 #### 3. 认证与权限配置 由于 Dashboard 提供了对集群的管理功能,因此需要配置认证机制来确保安全性。 - **创建 ServiceAccount 和 RoleBinding**: 创建一个具有适当权限的 ServiceAccount,并绑定到相应的角色。例如: ```yaml apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: dashboard-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kube-system ``` 应用上述配置: ```bash kubectl apply -f dashboard-rbac.yaml ``` - **获取 Token**: 生成的 ServiceAccount Token 可用于登录 Dashboard。运行以下命令获取 Token: ```bash kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep dashboard-admin | awk '{print $1}') ``` 复制输出中的 `token` 字段值,在登录 Dashboard 时选择 "Token" 并粘贴此值。 #### 4. 使用 Ingress 暴露 Dashboard(可选) 如果希望使用域名访问 Dashboard,可以通过 Ingress 控制器实现。 - **创建 Ingress 资源**: 定义一个 Ingress 资源文件,例如 `dashboard-ingress.yaml`: ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashboard-ingress namespace: kubernetes-dashboard annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - http: paths: - path: /dashboard pathType: Prefix backend: service: name: kubernetes-dashboard port: number: 80 ``` 应用此配置: ```bash kubectl apply -f dashboard-ingress.yaml ``` - **配置 DNS**: 确保你的域名解析指向 Ingress 控制器的外部 IP 地址,然后通过 `http://<your-domain>/dashboard` 访问 Dashboard。 #### 5. 常见问题排查 - **无法访问 Dashboard**:检查服务类型是否正确,以及防火墙规则是否允许相应端口通信。 - **Token 登录失败**:确认 Token 是否过期,或者尝试重新生成 Token。 - **RBAC 权限不足**:确保 ServiceAccount 具有适当的 ClusterRole 绑定,如 `cluster-admin`。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值