前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1.24+版本tke集群如何获取admin token

1.24+版本tke集群如何获取admin token

原创
作者头像
聂伟星
发布2024-04-02 18:17:34
960
发布2024-04-02 18:17:34
举报

1. 问题背景

1.22+版本的k8s集群,创建ServiceAccount,默认不会创建Secret,因为tke版本都是双数版本,因此这个特性在1.24及更高的tke集群版本也是存在的,具体可以参考官网文档管理服务账号 | Kubernetes

tke集群默认都是RBAC 的授权模式,给每个子用户提供的kubeconfig,不再提供token,默认都是用证书进行认证,但是还是会有部分会需要用到集群token的场景,那么如何生成集群的token呢?

如果是1.22及之前的版本可以参考文档获取/developer/article/1762567

如果是1.24及更高版本,可以通过下面方式获取。

2. 解决方案

生成集群token的前提是对应的操作者有集群admin角色权限,这里直接将下面yaml,apply到集群,进行资源的创建,可以通过kubectl或者控制台直接yaml创建

代码语言:yaml
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-token-sa
  namespace: default
secrets:
  - name: admin-token-secret

---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: admin-token-secret
  namespace: default
  annotations:
    kubernetes.io/service-account.name: "admin-token-sa"

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-token-clusterrolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: tke:admin
subjects:
- kind: ServiceAccount
  name: admin-token-sa
  namespace: default

然后通过如下命令获取下token,并且获取token已经拥有admin的权限,因为这里给sa绑定了tke:admin这个ClusterRole

这个ClusterRole的权限是可以操作集群内任意资源。

代码语言:bash
复制
kubectl get secret $(kubectl get serviceaccount admin-token-sa -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 -d

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 问题背景
  • 2. 解决方案
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com