Service Account Controller

Service Account Controller 是 Kubernetes 中负责 Pod 身份认证的控制器。它的作用是确保每个 Pod 都有一个合法的身份(Service Account),并且能够安全地访问 API Server 或其他资源。


🧩 Service Account Controller 的职责

  • 自动创建 Service Account
    👉 当你在命名空间中创建 Pod 时,如果没有指定 Service Account,Controller 会自动分配一个默认的 default Service 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 配合,保证集群的安全性和多租户隔离。
posted @ 2026-05-28 11:16  Donaver  阅读(13)  评论(0)    收藏  举报