11.2. 默认服务帐户
OpenShift Container Platform 集群包含用于集群管理的默认服务帐户,并且为各个项目生成更多服务帐户。
11.2.1. 默认集群服务帐户
几个基础架构控制器使用服务帐户凭证运行。服务器启动时在 OpenShift Container Platform 基础架构项目 (openshift-infra
) 中创建以下服务帐户,并授予其如下集群范围角色:
服务帐户 | 描述 |
---|---|
|
分配 |
|
分配 |
|
分配 |
11.2.2. 默认项目服务帐户和角色
每个项目中会自动创建三个服务帐户:
服务帐户 | 使用方法 |
---|---|
|
由构建 Pod 使用。被授予 |
|
由部署 Pod 使用并被授予 注意
如果没有启用 |
| 用来运行其他所有 Pod,除非指定了不同的服务帐户。 |
项目中的所有服务帐户都会被授予 system:image-puller
角色,允许使用内部容器镜像 registry 从项目中的任何镜像流拉取镜像。
11.2.3. 自动生成的 secret
默认情况下,OpenShift Container Platform 会为每个服务帐户创建以下 secret:
- dockercfg 镜像 pull secret
服务帐户令牌 secret
注意在 OpenShift Container Platform 4.11 之前,在创建服务帐户时会生成第二个服务帐户令牌 secret。此服务帐户令牌 secret 用于访问 Kubernetes API。
从 OpenShift Container Platform 4.11 开始,不再创建第二个服务帐户令牌 secret。这是因为启用了
LegacyServiceAccountTokenNoAutoGeneration
上游 Kubernetes 功能门,这会停止自动生成基于 secret 的服务帐户令牌来访问 Kubernetes API。升级到 4.15 后,任何现有的服务帐户令牌 secret 都不会被删除,并可以继续正常工作。
需要此服务帐户令牌 secret 和 docker 配置镜像 pull secret,才能将 OpenShift 镜像 registry 集成到集群的用户身份验证和授权系统中。
但是,如果您不启用 ImageRegistry
功能,或者在 Cluster Image Registry Operator 配置中禁用集成的 OpenShift 镜像 registry,则不会为每个服务帐户生成这些 secret。
不要依赖于这些自动生成的 secret 以供您自己使用;它们可能会在以后的 OpenShift Container Platform 发行版本中删除。
工作负载自动注入投射卷以获取绑定服务帐户令牌。如果您的工作负载需要额外的服务帐户令牌,请在工作负载清单中添加额外的投射卷。绑定服务帐户令牌比服务帐户令牌 secret 更安全,原因如下:
- 绑定服务帐户令牌具有绑定的生命周期。
- 绑定服务帐户令牌包含受众。
- 绑定服务帐户令牌可以绑定到 pod 或 secret,绑定令牌在删除绑定对象时无效。
如需更多信息,请参阅使用卷投射配置绑定服务帐户令牌。
如果您可以接受在一个可读的 API 对象暴露没有过期的令牌,您也可以手动创建服务帐户令牌 secret 来获取令牌。如需更多信息,请参阅创建服务帐户令牌 secret。
其他资源
- 有关请求绑定服务帐户令牌的信息,请参阅使用卷投射配置绑定服务帐户令牌。
- 有关创建服务帐户令牌 secret 的信息,请参阅创建服务帐户令牌 secret。