K8s 用户案例2:配置服务账户

1. 创建服务账户

为一个应用程序 Pod 创建一个服务账户,用于在 Kubernetes 内部与 API 服务器进行交互。

serviceaccount.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-app-sa
  namespace: default

应用服务账户配置:

kubectl apply -f serviceaccount.yaml

2. 创建 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.yaml

3. 在 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.yaml

Last updated