对于具有手动维护凭据的集群,云凭据操作符 (CCO) 的 `Upgradable` 状态默认为 `False`。
对于次要版本(例如,从 4.12 到 4.13),此状态会阻止您进行更新,直到您解决了任何更新的权限并注释了 `CloudCredential` 资源以指示权限已根据下一版本的需要进行更新。此注释会将 `Upgradable` 状态更改为 `True`。
对于 z 流版本(例如,从 4.13.0 到 4.13.1),不会添加或更改任何权限,因此不会阻止更新。
在更新具有手动维护凭据的集群之前,您必须在您要更新到的 OpenShift Container Platform 版本的发布镜像中容纳任何新的或更改的凭据。
在使用云凭据操作符 (CCO) 更新使用手动维护凭据的集群之前,必须更新新版本的云提供商资源。
如果您的集群的云凭据管理是使用 CCO 实用程序 (ccoctl
) 配置的,请使用 ccoctl
实用程序更新资源。那些使用手动模式(无 ccoctl
实用程序)配置的集群需要手动更新资源。
更新云提供商资源后,必须更新集群的 `upgradeable-to` 注释以指示它已准备好更新。
更新云提供商资源和 `upgradeable-to` 注释的过程只能使用命令行工具完成。 |
某些平台仅支持以一种模式使用 CCO。对于安装在这些平台上的集群,平台类型决定了凭据更新要求。
对于支持 CCO 多种模式的平台,必须确定集群配置为使用的模式,并针对该配置采取必要的措施。
这些平台不支持以手动模式使用 CCO。这些平台上的集群会自动处理云提供商资源的变化,不需要更新upgradeable-to
注释。
这些平台上集群的管理员应跳过更新过程中的手动维护凭据部分。
安装在这些平台上的集群使用ccoctl
实用程序进行配置。
这些平台上集群的管理员必须采取以下措施:
提取并准备新版本的CredentialsRequest
自定义资源 (CR)。
为新版本配置ccoctl
实用程序,并使用它来更新云提供商资源。
使用upgradeable-to
注释指示集群已准备好更新。
这些集群使用带有长期凭据的手动模式,并且不使用ccoctl
实用程序。
这些平台上集群的管理员必须采取以下措施:
提取并准备新版本的CredentialsRequest
自定义资源 (CR)。
手动更新新版本的云提供商资源。
使用upgradeable-to
注释指示集群已准备好更新。
安装在这些平台上的集群支持多种 CCO 模式。
所需的更新过程取决于集群配置为使用的模式。如果您不确定集群上 CCO 配置为使用哪种模式,可以使用 Web 控制台或 CLI 来确定此信息。
您可以使用 Web 控制台确定云凭据操作员 (CCO) 配置为使用的模式。
只有 Amazon Web Services (AWS)、全球 Microsoft Azure 和 Google Cloud Platform (GCP) 集群支持多种 CCO 模式。 |
您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
以具有cluster-admin
角色的用户身份登录到 OpenShift Container Platform Web 控制台。
导航到**管理** → **集群设置**。
在**集群设置**页面上,选择**配置**选项卡。
在**配置资源**下,选择**CloudCredential**。
在**CloudCredential 详情**页面上,选择**YAML**选项卡。
在 YAML 块中,检查spec.credentialsMode
的值。以下值是可能的,但并非所有值都受所有平台支持:
''
:CCO 正在以默认模式运行。在此配置中,CCO 以 mint 或 passthrough 模式运行,具体取决于安装期间提供的凭据。
Mint
:CCO 正在以 mint 模式运行。
Passthrough
:CCO 正在以 passthrough 模式运行。
Manual
:CCO 正在以手动模式运行。
要确定 AWS 和 GCP 集群支持使用删除了根密钥的 mint 模式。如果集群专门配置为使用 mint 模式或默认使用 mint 模式,则必须在更新之前确定集群上是否存在根密钥。 使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群可能配置为使用 AWS STS、GCP 工作负载身份或 Microsoft Entra 工作负载 ID 从集群外部创建和管理云凭据。您可以通过检查集群 |
仅使用 mint 模式的 AWS 或 GCP 集群:要确定集群是否在没有根密钥的情况下运行,请导航到**工作负载** → **密钥**,并查找您的云提供商的根密钥。
确保**项目**下拉菜单设置为**所有项目**。 |
平台 | 密钥名称 |
---|---|
AWS |
|
GCP |
|
如果您看到其中一个值,则您的集群正在使用带有根密钥的 mint 或 passthrough 模式。
如果您没有看到这些值,则您的集群正在使用删除了根密钥的 mint 模式下的 CCO。
仅使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群:要确定集群是否配置为从集群外部创建和管理云凭据,必须检查集群Authentication
对象的 YAML 值。
导航到**管理** → **集群设置**。
在**集群设置**页面上,选择**配置**选项卡。
在**配置资源**下,选择**Authentication**。
在**Authentication 详情**页面上,选择**YAML**选项卡。
在 YAML 块中,检查.spec.serviceAccountIssuer
参数的值。
包含与您的云提供商关联的 URL 的值表示 CCO 正在手动模式下使用短期凭据进行组件操作。这些集群使用ccoctl
实用程序从集群外部创建和管理云凭据进行配置。
空值 (''
) 表示集群正在手动模式下使用 CCO,但未使用ccoctl
实用程序进行配置。
如果您正在更新一个具有以 mint 或 passthrough 模式运行的 CCO 且存在根密钥的集群,则无需更新任何云提供商资源,可以直接继续更新过程的下一部分。
如果您的集群正在使用删除了根密钥的 mint 模式下的 CCO,则必须在继续更新过程的下一部分之前,使用管理员级凭据恢复凭据密钥。
如果您的集群使用 CCO 实用程序 (ccoctl
) 进行配置,则必须采取以下措施:
提取并准备新版本的CredentialsRequest
自定义资源 (CR)。
为新版本配置ccoctl
实用程序,并使用它来更新云提供商资源。
更新upgradeable-to
注释以指示集群已准备好更新。
如果您的集群正在手动模式下使用 CCO,但未使用ccoctl
实用程序进行配置,则必须采取以下措施:
提取并准备新版本的CredentialsRequest
自定义资源 (CR)。
手动更新新版本的云提供商资源。
更新upgradeable-to
注释以指示集群已准备好更新。
您可以使用 CLI 确定云凭据操作员 (CCO) 配置为使用的模式。
只有 Amazon Web Services (AWS)、全球 Microsoft Azure 和 Google Cloud Platform (GCP) 集群支持多种 CCO 模式。 |
您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
您已安装 OpenShift CLI (oc
)。
以具有cluster-admin
角色的用户身份登录到集群上的oc
。
要确定 CCO 配置为使用的模式,请输入以下命令:
$ oc get cloudcredentials cluster \
-o=jsonpath={.spec.credentialsMode}
以下输出值是可能的,但并非所有值都受所有平台支持:
''
:CCO 正在以默认模式运行。在此配置中,CCO 以 mint 或 passthrough 模式运行,具体取决于安装期间提供的凭据。
Mint
:CCO 正在以 mint 模式运行。
Passthrough
:CCO 正在以 passthrough 模式运行。
Manual
:CCO 正在以手动模式运行。
要确定 AWS 和 GCP 集群支持使用删除了根密钥的 mint 模式。如果集群专门配置为使用 mint 模式或默认使用 mint 模式,则必须在更新之前确定集群上是否存在根密钥。 使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群可能配置为使用 AWS STS、GCP 工作负载身份或 Microsoft Entra 工作负载 ID 从集群外部创建和管理云凭据。您可以通过检查集群 |
仅使用 mint 模式的 AWS 或 GCP 集群:要确定集群是否在没有 root 密钥的情况下运行,请运行以下命令
$ oc get secret <secret_name> \
-n=kube-system
其中<secret_name>
对 AWS 为 aws-creds
,对 GCP 为 gcp-credentials
。
如果存在 root 密钥,则此命令的输出将返回有关密钥的信息。错误表示集群上不存在 root 密钥。
仅使用手动模式的 AWS、GCP 或全球 Microsoft Azure 集群:要确定集群是否配置为在集群外部创建和管理云凭据,请运行以下命令
$ oc get authentication cluster \
-o jsonpath \
--template='{ .spec.serviceAccountIssuer }'
此命令显示集群Authentication
对象中.spec.serviceAccountIssuer
参数的值。
与您的云提供商关联的 URL 输出表示 CCO 正在使用手动模式以及组件的短期凭据。这些集群使用ccoctl
实用程序配置,以便在集群外部创建和管理云凭据。
空输出表示集群正在手动模式下使用 CCO,但未使用ccoctl
实用程序进行配置。
如果您正在更新一个具有以 mint 或 passthrough 模式运行的 CCO 且存在根密钥的集群,则无需更新任何云提供商资源,可以直接继续更新过程的下一部分。
如果您的集群正在使用删除了根密钥的 mint 模式下的 CCO,则必须在继续更新过程的下一部分之前,使用管理员级凭据恢复凭据密钥。
如果您的集群使用 CCO 实用程序 (ccoctl
) 进行配置,则必须采取以下措施:
提取并准备新版本的CredentialsRequest
自定义资源 (CR)。
为新版本配置ccoctl
实用程序,并使用它来更新云提供商资源。
更新upgradeable-to
注释以指示集群已准备好更新。
如果您的集群正在手动模式下使用 CCO,但未使用ccoctl
实用程序进行配置,则必须采取以下措施:
提取并准备新版本的CredentialsRequest
自定义资源 (CR)。
手动更新新版本的云提供商资源。
更新upgradeable-to
注释以指示集群已准备好更新。
在更新使用手动模式的云凭据操作符 (CCO) 的集群之前,必须为新版本提取和准备CredentialsRequest
自定义资源 (CR)。
安装与更新版本匹配的 OpenShift CLI (oc
)。
以具有cluster-admin
权限的用户身份登录集群。
通过运行以下命令获取要应用的更新的拉取规范
$ oc adm upgrade
此命令的输出包括类似于以下内容的可用更新的拉取规范
...
Recommended updates:
VERSION IMAGE
4.17.0 quay.io/openshift-release-dev/ocp-release@sha256:6a899c54dda6b844bb12a247e324a0f6cde367e880b73ba110c056df6d018032
...
使用要使用的发行版镜像设置$RELEASE_IMAGE
变量,请运行以下命令
$ RELEASE_IMAGE=<update_pull_spec>
其中<update_pull_spec>
是要使用的发行版镜像的拉取规范。例如
quay.io/openshift-release-dev/ocp-release@sha256:6a899c54dda6b844bb12a247e324a0f6cde367e880b73ba110c056df6d018032
通过运行以下命令从 OpenShift Container Platform 发行版镜像中提取CredentialsRequest
自定义资源 (CR) 列表
$ oc adm release extract \
--from=$RELEASE_IMAGE \
--credentials-requests \
--included \(1)
--to=<path_to_directory_for_credentials_requests> (2)
1 | --included 参数仅包含特定集群配置针对目标版本所需的清单。 |
2 | 指定要存储CredentialsRequest 对象的目录的路径。如果指定的目录不存在,则此命令将创建它。 |
此命令将为每个CredentialsRequest
对象创建一个 YAML 文件。
对于发行版镜像中的每个CredentialsRequest
CR,请确保集群中存在与spec.secretRef.namespace
字段中的文本匹配的命名空间。此字段是存储保存凭据配置的生成密钥的位置。
CredentialsRequest
对象示例apiVersion: cloudcredential.openshift.io/v1
kind: CredentialsRequest
metadata:
name: cloud-credential-operator-iam-ro
namespace: openshift-cloud-credential-operator
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: AWSProviderSpec
statementEntries:
- effect: Allow
action:
- iam:GetUser
- iam:GetUserPolicy
- iam:ListAccessKeys
resource: "*"
secretRef:
name: cloud-credential-operator-iam-ro-creds
namespace: openshift-cloud-credential-operator (1)
1 | 此字段指示必须存在的用于保存生成的密钥的命名空间。 |
其他平台的CredentialsRequest
CR 格式类似,但具有不同的平台特定值。
对于集群中尚不存在与spec.secretRef.namespace
中指定的名称匹配的命名空间的任何CredentialsRequest
CR,请运行以下命令创建命名空间
$ oc create namespace <component_namespace>
如果您的集群的云凭据管理是使用 CCO 实用程序 (ccoctl
) 配置的,请为集群更新配置ccoctl
实用程序并使用它来更新您的云提供商资源。
如果您的集群未使用ccoctl
实用程序配置,请手动更新您的云提供商资源。
要将使用手动模式的云凭据操作符 (CCO) 在集群外部创建和管理云凭据的集群升级,请提取并准备 CCO 实用程序 (ccoctl
) 二进制文件。
|
您可以访问具有集群管理员访问权限的 OpenShift Container Platform 帐户。
您已安装 OpenShift CLI (oc
)。
您的集群使用ccoctl
实用程序配置,以便在集群外部创建和管理云凭据。
您已从 OpenShift Container Platform 发行版镜像中提取了CredentialsRequest
自定义资源 (CR),并确保集群中存在与spec.secretRef.namespace
字段中的文本匹配的命名空间。
通过运行以下命令为 OpenShift Container Platform 发行版镜像设置变量
$ RELEASE_IMAGE=$(oc get clusterversion -o jsonpath={..desired.image})
通过运行以下命令从 OpenShift Container Platform 发行版镜像中获取 CCO 容器镜像
$ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)
确保 |
通过运行以下命令从 OpenShift Container Platform 发行版镜像中的 CCO 容器镜像中提取ccoctl
二进制文件
$ oc image extract $CCO_IMAGE \
--file="/usr/bin/ccoctl.<rhel_version>" \(1)
-a ~/.pull-secret
1 | 对于<rhel_version> ,请指定与主机使用的 Red Hat Enterprise Linux (RHEL) 版本相对应的值。如果未指定值,则默认使用ccoctl.rhel8 。以下值有效
|
更改权限以使ccoctl
可执行,请运行以下命令
$ chmod 775 ccoctl.<rhel_version>
要验证ccoctl
是否已准备好使用,请显示帮助文件。运行命令时使用相对文件名,例如
$ ./ccoctl.rhel9
OpenShift credentials provisioning tool
Usage:
ccoctl [command]
Available Commands:
aws Manage credentials objects for AWS cloud
azure Manage credentials objects for Azure
gcp Manage credentials objects for Google cloud
help Help about any command
ibmcloud Manage credentials objects for {ibm-cloud-title}
nutanix Manage credentials objects for Nutanix
Flags:
-h, --help help for ccoctl
Use "ccoctl [command] --help" for more information about a command.
使用 CCO 实用程序 (ccoctl
) 配置的 OpenShift Container Platform 集群的升级过程类似于在安装过程中创建云提供商资源。
在 AWS 集群上,一些 |
您已从 OpenShift Container Platform 发行版镜像中提取了CredentialsRequest
自定义资源 (CR),并确保集群中存在与spec.secretRef.namespace
字段中的文本匹配的命名空间。
您已从发行版镜像中提取并配置了ccoctl
二进制文件。
使用ccoctl
工具处理所有CredentialsRequest
对象,方法是运行云提供商的命令。以下命令处理CredentialsRequest
对象
$ ccoctl aws create-all \(1)
--name=<name> \(2)
--region=<aws_region> \(3)
--credentials-requests-dir=<path_to_credentials_requests_directory> \(4)
--output-dir=<path_to_ccoctl_output_dir> \(5)
--create-private-s3-bucket (6)
1 | 要单独创建 AWS 资源,请使用“安装具有自定义配置的 AWS 集群”内容中的“单独创建 AWS 资源”步骤。如果您需要在修改 AWS 资源之前查看 `ccoctl` 工具创建的 JSON 文件,或者 `ccoctl` 工具自动创建 AWS 资源的过程不符合您组织的要求,则此选项可能很有用。 |
2 | 指定用于标记为跟踪而创建的任何云资源的名称。 |
3 | 指定将创建云资源的 AWS 区域。 |
4 | 指定包含组件 `CredentialsRequest` 对象文件的目录。 |
5 | 可选:指定您希望 `ccoctl` 实用程序创建对象的目录。默认情况下,该实用程序在运行命令的目录中创建对象。 |
6 | 可选:默认情况下,`ccoctl` 实用程序将 OpenID Connect (OIDC) 配置文件存储在公共 S3 存储桶中,并使用 S3 URL 作为公共 OIDC 端点。要改为将 OIDC 配置存储在私有 S3 存储桶中(通过公共 CloudFront 分发 URL 由 IAM 身份提供程序访问),请使用 `--create-private-s3-bucket` 参数。 |
$ ccoctl gcp create-all \
--name=<name> \(1)
--region=<gcp_region> \(2)
--project=<gcp_project_id> \(3)
--credentials-requests-dir=<path_to_credentials_requests_directory> \(4)
--output-dir=<path_to_ccoctl_output_dir> (5)
1 | 指定为跟踪而创建的所有 GCP 资源的用户定义名称。 |
2 | 指定将创建云资源的 GCP 区域。 |
3 | 指定将创建云资源的 GCP 项目 ID。 |
4 | 指定包含用于创建 GCP 服务帐户的 `CredentialsRequest` 清单文件的目录。 |
5 | 可选:指定您希望 `ccoctl` 实用程序创建对象的目录。默认情况下,该实用程序在运行命令的目录中创建对象。 |
$ ccoctl ibmcloud create-service-id \
--credentials-requests-dir=<path_to_credential_requests_directory> \(1)
--name=<cluster_name> \(2)
--output-dir=<installation_directory> \(3)
--resource-group-name=<resource_group_name> (4)
1 | 指定包含组件 `CredentialsRequest` 对象文件的目录。 |
2 | 指定 OpenShift Container Platform 集群的名称。 |
3 | 可选:指定您希望 `ccoctl` 实用程序创建对象的目录。默认情况下,该实用程序在运行命令的目录中创建对象。 |
4 | 可选:指定用于限定访问策略的资源组的名称。 |
$ ccoctl azure create-managed-identities \
--name <azure_infra_name> \(1)
--output-dir ./output_dir \
--region <azure_region> \(2)
--subscription-id <azure_subscription_id> \(3)
--credentials-requests-dir <path_to_directory_for_credentials_requests> \
--issuer-url "${OIDC_ISSUER_URL}" \(4)
--dnszone-resource-group-name <azure_dns_zone_resourcegroup_name> \(5)
--installation-resource-group-name "${AZURE_INSTALL_RG}" (6)
1 | `name` 参数的值用于创建 Azure 资源组。要使用现有的 Azure 资源组而不是创建一个新的资源组,请使用 `--oidc-resource-group-name` 参数,其值为现有组名。 |
2 | 指定现有集群的区域。 |
3 | 指定现有集群的订阅 ID。 |
4 | 指定现有集群的 OIDC 发行者 URL。您可以通过运行以下命令来获取此值。
|
5 | 指定包含 DNS 区域的资源组的名称。 |
6 | 指定 Azure 资源组名称。您可以通过运行以下命令来获取此值。
|
$ ccoctl nutanix create-shared-secrets \
--credentials-requests-dir=<path_to_credentials_requests_directory> \(1)
--output-dir=<ccoctl_output_dir> \(2)
--credentials-source-filepath=<path_to_credentials_file> (3)
1 | 指定包含组件 `CredentialsRequests` 对象文件的目录的路径。 |
2 | 可选:指定您希望 `ccoctl` 实用程序创建对象的目录。默认情况下,该实用程序在运行命令的目录中创建对象。 |
3 | 可选:指定包含凭据数据 YAML 文件的目录。默认情况下,`ccoctl` 预期此文件位于 ` |
对于每个 `CredentialsRequest` 对象,`ccoctl` 会根据 OpenShift Container Platform 发行版镜像中每个 `CredentialsRequest` 对象中定义的内容创建所需的提供程序资源和权限策略。
通过运行以下命令将密钥应用于您的集群。
$ ls <path_to_ccoctl_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
您可以通过查询云提供商来验证是否创建了所需的提供程序资源和权限策略。有关更多信息,请参阅您的云提供商文档,了解如何列出角色或服务帐户。
更新 `upgradeable-to` 注解以指示集群已准备好升级。
在升级具有手动维护的凭据的集群之前,您必须为要升级到的发行版映像创建任何新凭据的密钥。您还必须检查现有凭据所需的权限,并在新发行版中适应这些组件的新权限要求。
您已从 OpenShift Container Platform 发行版镜像中提取了CredentialsRequest
自定义资源 (CR),并确保集群中存在与spec.secretRef.namespace
字段中的文本匹配的命名空间。
为新发行版映像添加的任何 `CredentialsRequest` 自定义资源创建包含密钥的 YAML 文件。必须使用每个 `CredentialsRequest` 对象的 `spec.secretRef` 中定义的名称空间和密钥名称来存储密钥。
apiVersion: cloudcredential.openshift.io/v1
kind: CredentialsRequest
metadata:
name: <component_credentials_request>
namespace: openshift-cloud-credential-operator
...
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: AWSProviderSpec
statementEntries:
- effect: Allow
action:
- s3:CreateBucket
- s3:DeleteBucket
resource: "*"
...
secretRef:
name: <component_secret>
namespace: <component_namespace>
...
apiVersion: v1
kind: Secret
metadata:
name: <component_secret>
namespace: <component_namespace>
data:
aws_access_key_id: <base64_encoded_aws_access_key_id>
aws_secret_access_key: <base64_encoded_aws_secret_access_key>
全局 Azure 和 Azure Stack Hub 使用相同的 `CredentialsRequest` 对象和密钥格式。 |
apiVersion: cloudcredential.openshift.io/v1
kind: CredentialsRequest
metadata:
name: <component_credentials_request>
namespace: openshift-cloud-credential-operator
...
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: AzureProviderSpec
roleBindings:
- role: Contributor
...
secretRef:
name: <component_secret>
namespace: <component_namespace>
...
apiVersion: v1
kind: Secret
metadata:
name: <component_secret>
namespace: <component_namespace>
data:
azure_subscription_id: <base64_encoded_azure_subscription_id>
azure_client_id: <base64_encoded_azure_client_id>
azure_client_secret: <base64_encoded_azure_client_secret>
azure_tenant_id: <base64_encoded_azure_tenant_id>
azure_resource_prefix: <base64_encoded_azure_resource_prefix>
azure_resourcegroup: <base64_encoded_azure_resourcegroup>
azure_region: <base64_encoded_azure_region>
apiVersion: cloudcredential.openshift.io/v1
kind: CredentialsRequest
metadata:
name: <component_credentials_request>
namespace: openshift-cloud-credential-operator
...
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: GCPProviderSpec
predefinedRoles:
- roles/iam.securityReviewer
- roles/iam.roleViewer
skipServiceCheck: true
...
secretRef:
name: <component_secret>
namespace: <component_namespace>
...
apiVersion: v1
kind: Secret
metadata:
name: <component_secret>
namespace: <component_namespace>
data:
service_account.json: <base64_encoded_gcp_service_account_file>
如果存储在密钥中的任何现有凭据的 `CredentialsRequest` 自定义资源已更改权限要求,请根据需要更新权限。
更新 `upgradeable-to` 注解以指示集群已准备好升级。
对于具有手动维护凭据的集群,云凭据操作符 (CCO) 的 `Upgradable` 状态默认为 `False`。
对于您要升级到的发行版映像,您已手动或使用 Cloud Credential Operator 实用程序 ( `ccoctl` ) 处理了任何新凭据。
您已安装 OpenShift CLI (oc
)。
以具有cluster-admin
角色的用户身份登录到集群上的oc
。
编辑 `CloudCredential` 资源以在 `metadata` 字段中添加 `upgradeable-to` 注解,方法是运行以下命令。
$ oc edit cloudcredential cluster
...
metadata:
annotations:
cloudcredential.openshift.io/upgradeable-to: <version_number>
...
其中 `
添加注释后,可升级状态可能需要几分钟才能更改。
在 Web 控制台的**管理员**视角中,导航到**管理**→**集群设置**。
要查看 CCO 状态详细信息,请单击**集群运算符**列表中的**cloud-credential**。
如果**条件**部分中的**可升级**状态为**False**,请验证 `upgradeable-to` 注解是否没有错别字。
当**条件**部分中的**可升级**状态为**True** 时,开始 OpenShift Container Platform 升级。