K8s 用户案例2:配置服务账户
1. 创建服务账户
为一个应用程序 Pod 创建一个服务账户,用于在 Kubernetes 内部与 API 服务器进行交互。
serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: my-app-sa
namespace: default应用服务账户配置:
kubectl apply -f serviceaccount.yaml2. 创建 ClusterRole 和 ClusterRoleBinding
clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-admin-role
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: my-app-clusterrolebinding
subjects:
- kind: ServiceAccount
name: my-app-sa
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin-role
apiGroup: rbac.authorization.k8s.io应用 ClusterRole 和 ClusterRoleBinding 配置:
kubectl apply -f clusterrole.yaml
kubectl apply -f clusterrolebinding.yaml3. 在 Pod 中使用服务账户
在应用程序的 Pod 配置文件中指定使用刚刚创建的服务账户。
# pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
namespace: default
spec:
serviceAccountName: my-app-sa
containers:
- name: my-app-container
image: my-app-image应用 Pod 配置:
kubectl apply -f pod.yamlLast updated