第 10 章 了解并创建服务帐户
10.1. 服务帐户概述
服务帐户是一种 OpenShift Container Platform 帐户,它允许组件直接访问 API。服务帐户是各个项目中存在的 API 对象。服务帐户为控制 API 访问提供了灵活的方式,不需要共享常规用户的凭证。
使用 OpenShift Container Platform CLI 或 web 控制台时,您的 API 令牌会为您与 API 进行身份验证。您可以将组件与服务帐户关联,以便组件能够访问 API 且无需使用常规用户的凭证。
例如,借助服务帐户:
- 复制控制器发出 API 调用来创建或删除 pod
- 容器内的应用程序可以发出 API 调用来进行发现
- 外部应用程序可以发出 API 调用来进行监控或集成
每个服务帐户的用户名都源自于其项目和名称:
system:serviceaccount:<project>:<name>
每一服务帐户也是以下两个组的成员:
组 | 描述 |
---|---|
system:serviceaccounts | 包含系统中的所有服务帐户。 |
system:serviceaccounts:<project> | 包含指定项目中的所有服务帐户。 |
10.1.1. 自动生成的镜像 pull secret
默认情况下,OpenShift Container Platform 为每个服务帐户创建一个镜像 pull secret。
在 OpenShift Container Platform 4.16 之前,还会为创建的每个服务帐户生成长期服务帐户 API 令牌 secret。从 OpenShift Container Platform 4.16 开始,不再创建此服务帐户 API 令牌 secret。
升级到 4.17 后,任何现有的长期服务帐户 API 令牌 secret 都不会被删除,并将继续正常工作。有关检测集群中使用的长期 API 令牌,以及在不需要时删除它们的信息,请参阅红帽知识库文章 OpenShift Container Platform 中的 Long-lived 服务帐户 API 令牌。
此镜像 pull secret 需要将 OpenShift 镜像 registry 集成到集群的用户身份验证和授权系统中。
但是,如果您不启用 ImageRegistry
功能,或者在 Cluster Image Registry Operator 配置中禁用集成的 OpenShift 镜像 registry,则不会为每个服务帐户生成镜像 pull secret。
当在之前启用的集群中禁用集成的 OpenShift 镜像 registry 时,之前生成的镜像 pull secret 会被自动删除。