K8s 创建token

75 阅读1分钟

创建Secret所使用的yaml文件

# admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin
  namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: admin
subjects:  # subjects指定对哪个ServiceAccount进行授权
  - kind: ServiceAccount
    name: admin
    namespace: kube-system
roleRef:
  kind: ClusterRole
  name: cluster-admin      # 给admin这个ServiceAccount绑定cluster-admin角色的权限,该角色有集群最高权限
  apiGroup: rbac.authorization.k8s.io
---
# 手动为 ServiceAccount 创建长期有效的 API 令牌
# 如果我们需要为 ServiceAccount 获得一个 API 令牌,可以创建一个新的、带有特殊注解 `kubernetes.io/service-account.name` 的 Secret 对象
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
     name: admin
     namespace: kube-system
     annotations:
         kubernetes.io/service-account.name: "admin"  # 为admin这个ServiceAccount创建token

应用yaml文件

[root@master ~]# kubectl apply -f admin.yaml 

查看token

[root@master ~]# kubectl get secret admin -n kube-system -o jsonpath={".data.token"} | base64 -d

连接测试

image.png