在 Kubernetes 中,ServiceAccount 是一种资源对象,它与 Pod 相关联,并提供一个身份验证令牌,让该 Pod 能够访问 Kubernetes API。可以通过以下步骤使用 ServiceAccount 资源:
- 创建 ServiceAccount:使用 kubectl create sa 命令创建一个 ServiceAccount 对象。
kubectl create sa my-sa
- 给 Pod 分配 ServiceAccount:将 ServiceAccount 的名称指定为 Pod 的 spec.serviceAccountName 字段的值。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
serviceAccountName: my-sa
containers:
- name: my-container
image: nginx
- 授权 ServiceAccount 访问 Kubernetes API:可以使用 RBAC (Role-Based Access Control) 规则来授权给 ServiceAccount 访问 Kubernetes API 的权限。
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: my-sa-role-binding
subjects:
- kind: ServiceAccount
name: my-sa
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
此处我们为 my-sa 授权了 cluster-admin 权限,使得该账号拥有集群的完全管理权限。




