Service Account Controller
Service Account Controller 是 Kubernetes 中负责 Pod 身份认证的控制器。它的作用是确保每个 Pod 都有一个合法的身份(Service Account),并且能够安全地访问 API Server 或其他资源。
🧩 Service Account Controller 的职责
- 自动创建 Service Account
👉 当你在命名空间中创建 Pod 时,如果没有指定 Service Account,Controller 会自动分配一个默认的defaultService Account。 - 管理 Secret(Token)
👉 为每个 Service Account 创建并维护一个 Secret,其中包含访问 API Server 的 Token。
👉 Pod 启动时,这个 Token 会自动挂载到容器中。 - 身份认证与授权
👉 Pod 使用 Service Account 的 Token 与 API Server 通信。
👉 API Server 会根据 RBAC(Role-Based Access Control)检查该 Service Account 是否有权限执行操作。
📌 类比理解
- Service Account Controller = 工牌管理员
- 每个工人(Pod)上岗前,必须领取工牌(Service Account)。
- 工牌上有门禁卡(Token),决定工人能进入哪些部门(权限)。
- 工牌管理员负责发放和维护这些工牌,保证工人身份合法。
📝 示例配置
apiVersion: v1
kind: ServiceAccount
metadata:
name: my-serviceaccount
👉 创建一个名为 my-serviceaccount 的 Service Account,Pod 可以通过 spec.serviceAccountName 使用它。
⚠️ 注意事项
- 默认 Service Account:如果不指定,Pod 会自动使用
default。 - 安全性:建议为不同应用创建独立的 Service Account,并通过 RBAC 限制权限。
- 自动挂载:Pod 默认会挂载 Token,可以通过
automountServiceAccountToken: false禁止。
💡 总结
- Service Account Controller 是 Pod 身份认证的守护者。
- 它确保每个 Pod 都有合法的身份和访问权限。
- 与 RBAC 配合,保证集群的安全性和多租户隔离。

浙公网安备 33010602011771号