「Kubernetes」- 创建 TOKEN 凭证、管理集群、用户授权

  CREATED BY JENKINSBOT

问题描述

在初始化集群后,我们使用 kubectl 命令能够控制整个集群,这是因为 ~/.kube/config 的凭证权限足够高。

但是,我们不能直接分发该凭证,应该创建新凭证并限制访问权限。比如,某些用户仅能访问和控制特定明明空间的资源;在访问 Dashboard 界面时,因该使用受限的 TOKEN 凭证。

该笔记将记录:在 Kubernetes 中,如何创建 TOKEN 来授权管理集群、管理特定命名空间等等操作,以及相关问题处理方法。

解决方案

第一步、创建 Admin Token(以管理整个集群)

# kubectl create serviceaccount "k8sadmin-foo" -n kube-system

# kubectl create clusterrolebinding "k8sadmin-foo" --clusterrole=cluster-admin --serviceaccount=kube-system:k8sadmin-foo

# secret=$(kubectl get -n kube-system serviceaccounts "k8sadmin-foo" -o jsonpath='{.secrets[0].name}')

# kubectl get -n kube-system secrets $secret -o jsonpath='{.data.token}' | base64 -d
eyJhbGciOiJSUzI1Ni...

第二步、在 kubectl 中,增加配置

我们需要在 .kube/config 中配置该 TOKEN(参考 Configure Access to Multiple Clusters 笔记),以使用 kubectl 管理集群。

参考文献

docker – How to get the admin-user token from kubectl – Super User
How To Create Admin User to Access Kubernetes Dashboard | ComputingForGeeks