Kubernetes
提供了两种方式来操控Kubernetes
集群的运行:kubectl
命令行和restful api
。kubectl
需要在终端执行,而restful api
可以使用postman
,shell
,以及各种语言的httpClient
调用。因此在一些场景,比如使用Jenkins
发版时可以调用Kubernetes
的api
来更新pod
中image
,可以做到“一键发版”。调用Kubernetes
的api
需要使用token
,本文将详细介绍在Kubernetes
中如何生成admin-token
,并给出一个实际调用api
的例子。
- 新建
admin-role.yaml
文件 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
- 执行
kubectl create -f admin-role.yaml
- 执行
kubectl get secrets -n kube-system
查看secret
- 执行
kubectl describe secret -n kube-system admin-token-chgjv
可以直接拿到token
- 有了
admin-token
,我们就可以访问Kubernetes
的restful api
,这里使用postman
调用。