11.2. 默认服务帐户

OpenShift Container Platform 集群包含用于集群管理的默认服务帐户,并且为各个项目生成更多服务帐户。

11.2.1. 默认集群服务帐户

几个基础架构控制器使用服务帐户凭证运行。服务器启动时在 OpenShift Container Platform 基础架构项目 (openshift-infra) 中创建以下服务帐户,并授予其如下集群范围角色:

服务帐户描述

replication-controller

分配 system:replication-controller 角色

deployment-controller

分配 system:deployment-controller 角色。

build-controller

分配 system:build-controller 角色。另外,build-controller 服务帐户也包含在特权安全上下文约束中,以创建特权构建 Pod。

11.2.2. 默认项目服务帐户和角色

每个项目中会自动创建三个服务帐户:

服务帐户使用方法

builder

由构建 Pod 使用。被授予 system:image-builder 角色,允许使用内部 Docker registry 将镜像推送到项目中的任何镜像流。

deployer

由部署 Pod 使用并被授予 system:deployer 角色,允许查看和修改项目中的复制控制器和 Pod。

default

用来运行其他所有 Pod,除非指定了不同的服务帐户。

项目中的所有服务帐户都会被授予 system:image-puller 角色,允许使用内部容器镜像 registry 从项目中的任何镜像流拉取镜像。

11.2.3. 关于自动生成的服务帐户令牌 secret

在 4.12 中,OpenShift Container Platform 基于上游社区的 Kubernetes ,它默认启用 LegacyServiceAccountTokenNoAutoGeneration 功能。因此,在创建新服务帐户(SA)时,服务帐户令牌 secret 不再自动生成。在以前的版本中,OpenShift Container Platform 会自动将服务帐户令牌添加到每个新 SA 的 secret 中。

但是,一些功能和工作负载需要服务帐户令牌 secret 与 Kubernetes API 服务器通信,例如,OpenShift Controller Manager。虽然这个要求将在以后的发行版本中改变,但它保留在 OpenShift Container Platform 4.12 中。因此,如果需要服务帐户令牌 secret,您必须手动使用 TokenRequest API 来请求绑定的服务帐户令牌或创建服务帐户令牌 secret。

升级到 4.12 后,现有服务帐户令牌 secret 不会被删除,并可以继续按预期工作。

注意

在 4.12 中,服务帐户令牌 secret 仍然会自动生成。OpenShift Container Platform 现在只创建一个服务帐户,而不是为每个服务帐户创建两个 secret。在以后的发行版本中,这个数字会进一步减少为零。请注意,dockercfg secret 仍然会被生成,在升级过程中不会删除任何 secret。

其他资源