获取 K8S 集群管理员 Token 的命令

获取 Kubernetes 集群管理员 Token 的方法

警告:管理员 Token 拥有集群的完全控制权限,请谨慎使用并妥善保管。不建议在生产环境中长期使用管理员 Token,而应该使用 RBAC 分配最小必要权限。

方法1:获取默认集群管理员 Token (如果有)

kubectl get secret -n kube-system $(kubectl get sa -n kube-system | grep admin | awk '{print $1}') -o jsonpath='{.data.token}' | base64 --decode

方法2:创建临时管理员 ServiceAccount 并获取 Token

# 创建管理员 ServiceAccount
kubectl -n kube-system create serviceaccount admin-user

# 创建 ClusterRoleBinding
kubectl create clusterrolebinding admin-user-binding --clusterrole=cluster-admin --serviceaccount=kube-system:admin-user

# 获取 Token
kubectl -n kube-system get secret $(kubectl -n kube-system get sa admin-user -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode

方法3:使用 Kubernetes 1.24+ 的 TokenRequest API

# 创建临时管理员 Token (默认有效期1小时)
kubectl create token admin-user --duration=8760h -n kube-system --bound-object-kind ClusterRole --bound-object-name cluster-admin

方法4:从 kubeconfig 中提取当前上下文 Token

kubectl config view --minify --raw -o jsonpath='{.users[0].user.token}'

安全建议

  1. 获取到的 Token 应当立即使用,不要存储在明文文件中
  2. 考虑设置较短的过期时间
  3. 使用完毕后及时撤销权限
  4. 在生产环境,建议使用更细粒度的 RBAC 权限而非集群管理员权限

验证 Token 有效性

TOKEN=<上面获取到的token>
curl -k -H "Authorization: Bearer $TOKEN" https://<your-api-server-address>:6443/api/v1/namespaces

请将 <your-api-server-address> 替换为你自个的 Kubernetes API 服务器地址。

### 如何生成和管理Kubernetes集群Token认证 #### 查询现有Token 为了查看当前Kubernetes集群中存在的Token,可以通过`kubectl`命令获取这些信息。具体来说,在命名空间`kube-system`下查找类型为`bootstrap.kubernetes.io/token`的秘密资源(secret),这通常包含了用于加入新节点所需的临时凭证。 ```bash [root@k-master token]# kubectl -n kube-system get secrets ``` 上述命令会列出所有的秘密对象及其基本信息,其中就包括了由`kubeadm`创建用来引导新的控制平面或工作节点加入集群所必需的身份验证令牌[^1]。 #### 使用Token连接至集群 当拥有有效的Token之后,就可以利用它构建完整的`kubeadm join`指令来进行节点注册: ```bash kubeadm join 192.168.47.141:6443 --token 8i4u54.b9e76zz08r3c7ghu \ --discovery-token-ca-cert-hash sha256:9f14112c56a57f3e35bce52be55968faf457e791cdd40d93fef731222fc63393 ``` 这条语句中的IP地址代表API服务器的位置;而后面的参数则指定了实际使用的Token以及CA证书哈希值以供身份验证过程使用[^2]。 #### 创建新的Token 如果发现无法找到任何可用的Token或者希望手动增加额外的安全措施,则可通过下面的方法自动生成一个新的Token并打印出相应的`join`命令: ```bash kubeadm token create --print-join-command ``` 此操作不仅能够提供最新的访问凭据,还允许管理员灵活地调整哪些机器被授权接入集群环境内。 #### 安全实践建议 对于生产环境中运行的Kubernetes集群而言,定期轮换Token是非常重要的安全策略之一。这样可以减少因长期不变而导致泄露风险的可能性,并确保只有经过最新一轮审核后的设备和服务才具备合法进入权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值