阿里云k8s如何创建可用的api token
阿里云的 Kubernetes 配置文件(如您所提供的 YAML 格式文件)通常不会直接包含用于连接 Kubernetes 集群的令牌。而是包含了客户端证书和私钥数据,这些是用于通过证书验证而不是令牌验证的方式来与 Kubernetes API 服务器进行安全交互的。
1.创建一个 ServiceAccount:
kubectl create serviceaccount [service-account-name]
2.通过 YAML 文件创建 ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: example-clusterrolebinding
subjects:
- kind: ServiceAccountname: example-serviceaccountnamespace: example-namespace
roleRef:kind: ClusterRolename: example-clusterroleapiGroup: rbac.authorization.k8s.io
3.手动创建服务账号令牌
apiVersion: v1
kind: Secret
metadata:name: [secret-name]namespace: [your-namespace]annotations:kubernetes.io/service-account.name: [service-account-name]
type: kubernetes.io/service-account-token
4.定义pod-exec-role
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:namespace: your-namespacename: pod-exec-role
rules:
- apiGroups: [""]resources: ["pods/exec", "pods/log"]verbs: ["create", "get", "list"]
5.创建ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: pod-exec-bindingnamespace: your-namespace
subjects:
- kind: Username: "your-username"apiGroup: rbac.authorization.k8s.io
roleRef:kind: Rolename: pod-exec-roleapiGroup: rbac.authorization.k8s.io
6.创建view的roleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: cao-crb
subjects:
- kind: Username: "your-username" # 替换为实际的用户名apiGroup: rbac.authorization.k8s.io
roleRef:kind: ClusterRolename: view # 确保这是正确的 ClusterRole 名称apiGroup: rbac.authorization.k8s.io