-
此平台在安装过程中使用
ccoctl
实用程序配置长期凭据。
云凭证运算符 (CCO) 将云提供商凭证管理为自定义资源定义 (CRD)。CCO 同步CredentialsRequest
自定义资源 (CR) 以允许 OpenShift Container Platform 组件请求具有集群运行所需特定权限的云提供商凭证。
通过为install-config.yaml
文件中的credentialsMode
参数设置不同的值,可以将 CCO 配置为以几种不同的模式运行。如果未指定模式,或将credentialsMode
参数设置为空字符串 (""
),则 CCO 将以其默认模式运行。
通过为install-config.yaml
文件中的credentialsMode
参数设置不同的值,可以将 CCO 配置为以薄荷、直通或手动模式运行。这些选项提供了 CCO 如何使用云凭证处理集群中的CredentialsRequest
CR 的透明性和灵活性,并允许将 CCO 配置为适合您组织的安全要求。并非所有 CCO 模式都支持所有云提供商。
薄荷模式:在薄荷模式下,CCO 使用提供的管理员级云凭证为集群中的组件创建新的凭证,这些凭证仅具有所需的特定权限。
直通模式:在直通模式下,CCO 将提供的云凭证传递给请求云凭证的组件。
使用组件的长期凭证的手动模式:在手动模式下,您可以管理长期云凭证,而不是 CCO。
使用组件的短期凭证的手动模式:对于某些提供商,您可以在安装过程中使用 CCO 实用程序 (ccoctl
) 为各个组件实现短期凭证。这些凭证是在 OpenShift Container Platform 集群外部创建和管理的。
云提供商 | 薄荷模式 | 直通模式 | 使用长期凭证的手动模式 | 使用短期凭证的手动模式 |
---|---|---|---|---|
亚马逊网络服务 (AWS) |
X |
X |
X |
X |
全球 Microsoft Azure |
X |
X |
X |
|
Microsoft Azure Stack Hub |
X |
|||
谷歌云平台 (GCP) |
X |
X |
X |
X |
IBM Cloud® |
X [1] |
|||
Nutanix |
X [1] |
|||
Red Hat OpenStack 平台 (RHOSP) |
X |
|||
VMware vSphere |
X |
此平台在安装过程中使用ccoctl
实用程序配置长期凭据。
对于支持在多种模式下使用 CCO 的平台,您可以使用 Web 控制台或 CLI 确定 CCO 配置为使用的模式。
您可以使用 Web 控制台确定云凭据操作员 (CCO) 配置为使用的模式。
只有亚马逊网络服务 (AWS)、全球 Microsoft Azure 和谷歌云平台 (GCP) 集群支持多种 CCO 模式。 |
您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
以具有cluster-admin
角色的用户身份登录到 OpenShift Container Platform Web 控制台。
导航到**管理** → **集群设置**。
在**集群设置**页面上,选择**配置**选项卡。
在**配置资源**下,选择**CloudCredential**。
在**CloudCredential 详情**页面上,选择**YAML**选项卡。
在 YAML 块中,检查spec.credentialsMode
的值。以下是可能的取值,但并非所有平台都支持所有取值
''
:CCO 处于默认模式。在此配置中,CCO 根据安装期间提供的凭据以 mint 模式或直通模式运行。
Mint
:CCO 处于 mint 模式。
Passthrough
:CCO 处于直通模式。
Manual
:CCO 处于手动模式。
要确定具有 AWS 和 GCP 集群支持在删除根密钥的情况下使用 mint 模式。 使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群可能配置为使用 AWS STS、GCP 工作负载身份或 Microsoft Entra 工作负载 ID 从集群外部创建和管理云凭据。您可以通过检查集群 |
仅使用默认值 (''
) 的 AWS 或 GCP 集群:要确定集群是在 mint 模式还是直通模式下运行,请检查集群根密钥上的注释
导航到**工作负载** → **密钥**,并查找您的云提供商的根密钥。
确保**项目**下拉菜单设置为**所有项目**。 |
平台 | 密钥名称 |
---|---|
AWS |
|
GCP |
|
要查看集群正在使用的 CCO 模式,请单击**注释**下的1 个注释
,然后检查值字段。以下是可能的取值
Mint
:CCO 处于 mint 模式。
Passthrough
:CCO 处于直通模式。
如果您的集群使用 mint 模式,您还可以确定集群是否在没有根密钥的情况下运行。
仅使用 mint 模式的 AWS 或 GCP 集群:要确定集群是否在没有根密钥的情况下运行,请导航到**工作负载** → **密钥**,并查找您的云提供商的根密钥。
确保**项目**下拉菜单设置为**所有项目**。 |
平台 | 密钥名称 |
---|---|
AWS |
|
GCP |
|
如果您看到这些值中的一个,则您的集群正在使用带有根密钥的 mint 模式或直通模式。
如果您没有看到这些值,则您的集群正在使用已移除根密钥的 mint 模式下的 CCO。
仅使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群:要确定集群是否配置为从集群外部创建和管理云凭据,您必须检查集群Authentication
对象的 YAML 值。
导航到**管理** → **集群设置**。
在**集群设置**页面上,选择**配置**选项卡。
在**配置资源**下,选择**Authentication**。
在**Authentication 详情**页面上,选择**YAML**选项卡。
在 YAML 块中,检查.spec.serviceAccountIssuer
参数的值。
包含与您的云提供商关联的 URL 的值表示 CCO 正在使用手动模式以及组件的短期凭据。这些集群使用ccoctl
实用程序配置为从集群外部创建和管理云凭据。
空值 (''
) 表示集群正在手动模式下使用 CCO,但未使用ccoctl
实用程序进行配置。
您可以使用 CLI 确定云凭据操作员 (CCO) 配置为使用的模式。
只有亚马逊网络服务 (AWS)、全球 Microsoft Azure 和谷歌云平台 (GCP) 集群支持多种 CCO 模式。 |
您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
您已安装 OpenShift CLI (oc
)。
以具有cluster-admin
角色的用户身份登录到集群上的oc
。
要确定 CCO 配置为使用的模式,请输入以下命令
$ oc get cloudcredentials cluster \
-o=jsonpath={.spec.credentialsMode}
以下是可能的输出值,但并非所有平台都支持所有取值
''
:CCO 处于默认模式。在此配置中,CCO 根据安装期间提供的凭据以 mint 模式或直通模式运行。
Mint
:CCO 处于 mint 模式。
Passthrough
:CCO 处于直通模式。
Manual
:CCO 处于手动模式。
要确定具有 AWS 和 GCP 集群支持在删除根密钥的情况下使用 mint 模式。 使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群可能配置为使用 AWS STS、GCP 工作负载身份或 Microsoft Entra 工作负载 ID 从集群外部创建和管理云凭据。您可以通过检查集群 |
仅使用默认值 (''
) 的 AWS 或 GCP 集群:要确定集群是在 mint 模式还是直通模式下运行,请运行以下命令
$ oc get secret <secret_name> \
-n kube-system \
-o jsonpath \
--template '{ .metadata.annotations }'
其中<secret_name>
对于 AWS 为aws-creds
,对于 GCP 为gcp-credentials
。
此命令显示集群根密钥对象中.metadata.annotations
参数的值。以下是可能的输出值
Mint
:CCO 处于 mint 模式。
Passthrough
:CCO 处于直通模式。
如果您的集群使用 mint 模式,您还可以确定集群是否在没有根密钥的情况下运行。
仅使用 mint 模式的 AWS 或 GCP 集群:要确定集群是否在没有根密钥的情况下运行,请运行以下命令
$ oc get secret <secret_name> \
-n=kube-system
其中<secret_name>
对于 AWS 为aws-creds
,对于 GCP 为gcp-credentials
。
如果存在根密钥,则此命令的输出将返回有关密钥的信息。错误表示集群上不存在根密钥。
仅使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群:要确定集群是否配置为从集群外部创建和管理云凭据,请运行以下命令
$ oc get authentication cluster \
-o jsonpath \
--template='{ .spec.serviceAccountIssuer }'
此命令显示集群Authentication
对象中.spec.serviceAccountIssuer
参数的值。
与您的云提供商关联的 URL 的输出表示 CCO 正在使用手动模式以及组件的短期凭据。这些集群使用ccoctl
实用程序配置为从集群外部创建和管理云凭据。
空输出表示集群正在手动模式下使用 CCO,但未使用ccoctl
实用程序进行配置。
对于支持多种模式的平台(AWS、Azure 和 GCP),当 CCO 在其默认模式下运行时,它会动态检查提供的凭据以确定它们足以处理哪些模式的CredentialsRequest
CR。
默认情况下,CCO 会确定凭据是否足以用于 mint 模式(这是首选的操作模式),并使用这些凭据为集群中的组件创建相应的凭据。如果凭据不足以用于 mint 模式,它会确定它们是否足以用于直通模式。如果凭据不足以用于直通模式,则 CCO 无法充分处理CredentialsRequest
CR。
如果在安装过程中确定提供的凭据不足,则安装将失败。对于 AWS,安装程序在流程早期失败并指示缺少哪些必需的权限。其他提供商可能不会提供有关错误原因的具体信息,直到遇到错误为止。
如果在成功安装后更改了凭据,并且 CCO 确定新的凭据不足,则 CCO 会对任何新的CredentialsRequest
CR 设置条件,以指示由于凭据不足而无法处理它们。
要解决凭据不足的问题,请提供具有足够权限的凭据。如果安装过程中出现错误,请尝试重新安装。对于新的CredentialsRequest
(CR) 问题,请等待CCO尝试重新处理该CR。或者,您可以将集群配置为使用云提供商支持的不同CCO模式。