Kubernetes生成admin-token

2,816 阅读1分钟

Kubernetes提供了两种方式来操控Kubernetes 集群的运行:kubectl命令行和restful apikubectl需要在终端执行,而restful api可以使用postmanshell,以及各种语言的httpClient调用。因此在一些场景,比如使用Jenkins发版时可以调用Kubernetesapi来更新podimage,可以做到“一键发版”。调用Kubernetesapi需要使用token,本文将详细介绍在Kubernetes中如何生成admin-token,并给出一个实际调用api的例子。

  1. 新建admin-role.yaml文件
  2. admin-role.yaml文件内容为:
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: admin
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin
  namespace: kube-system
  labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
  1. 执行kubectl create -f admin-role.yaml
  2. 执行kubectl get secrets -n kube-system查看secret
  3. 执行kubectl describe secret -n kube-system admin-token-chgjv可以直接拿到token
  4. 有了admin-token,我们就可以访问Kubernetesrestful api,这里使用postman调用。