Kubernetes Service Account无Token,如何创建并登录Dashboard?
问题
我拥有多个Kubernetes Service Account,想要登录Kubernetes Dashboard。执行命令查看kubernetes-dashboard命名空间下的Service Account:
$ kubectl get sa -n kubernetes-dashboard NAME SECRETS AGE whitebear 0 9m37s default 0 15m kubernetes-dashboard 0 15m
发现这些Service Account都没有Token,查看whitebear账号详情:
$ kubectl describe sa whitebear -n kubernetes-dashboard Name: whitebear Namespace: kubernetes-dashboard Labels: <none> Annotations: <none> Image pull secrets: <none> Mountable secrets: <none> Tokens: <none> Events: <none>
请问如何为该账号创建Token?我使用的是Docker Desktop for Mac本地环境。
解决方案
感谢@Sai Chandini Routhu提供的思路,以下是实现步骤:
- 生成Token
执行命令创建Token(若需为whitebear账号生成,可替换命令中的default并指定-n kubernetes-dashboard命名空间):
kubectl create token default
- 创建ClusterRole
创建一个拥有核心API组全资源操作权限的ClusterRole,保存为yaml文件:
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: default name: service-reader rules: - apiGroups: [""] # "" 表示核心API组 resources: ["*"] verbs: ["*"]
执行应用命令:
kubectl apply -f <文件名>.yaml
- 绑定ClusterRole到Service Account
将创建好的ClusterRole绑定到目标Service Account:
kubectl create clusterrolebinding service-reader-pod \ --clusterrole=service-reader \ --serviceaccount=default:whitebear
完成以上操作后,即可使用生成的Token登录并正常操作Kubernetes Dashboard。
内容的提问来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

