This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.18.5.3.2. 使用 Cloud Credential Operator 实用程序升级 AWS 资源
升级带有 AWS 安全令牌服务 (STS )手动模式配置的 OpenShift Container Platform 集群的过程,与单独为其创建 AWS 资源的集群上进行安装相似。
							默认情况下,ccoctl 在运行命令的目录中创建对象。要在其他目录中创建对象,请使用 --output-dir 标志。此流程使用 < ;path_to_ccoctl_output_dir > 来引用此目录。
						
							有些 ccoctl 命令会发出 AWS API 调用来创建或修改 AWS 资源。您可以使用 --dry-run 标志来避免发出 API 调用。使用此标志在本地文件系统中创建 JSON 文件。您可以检查和修改 JSON 文件,然后使用 --cli-input-json 参数通过 AWS CLI 工具应用它们。
						
先决条件
- 获取您要升级到的版本的 OpenShift Container Platform 发行镜像。
- 
								从发行镜像中提取并准备 ccoctl二进制文件。
流程
- 从 OpenShift Container Platform 发行镜像中提取 - CredentialsRequest自定义资源 (CR) 列表:- oc adm release extract \ --credentials-requests \ --cloud=aws \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --quay.io/<path_to>/ocp-release:<version> - $ oc adm release extract \ --credentials-requests \ --cloud=aws \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests \- 1 - --quay.io/<path_to>/ocp-release:<version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- credrequests是存储- CredentialsRequest对象列表的目录。如果该目录不存在,此命令就会创建该目录。
 
- 对于发行镜像中的每个 - CredentialsRequestCR,请确保集群中存在与- spec.secretRef.namespace字段中的文本匹配的命名空间。此字段是保存凭证配置的生成的 secret 的位置。- AWS - CredentialsRequest对象示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 此字段指示需要存在的命名空间来存放生成的 secret。
 
- 对于集群没有在 - spec.secretRef.namespace中指定的名称的命名空间的- CredentialsRequestCR,请创建命名空间:- oc create namespace <component_namespace> - $ oc create namespace <component_namespace>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - ccoctl工具处理- credrequests目录中的所有- CredentialsRequest对象:- ccoctl aws create-iam-roles \ --name <name> \ --region=<aws_region> \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --identity-provider-arn arn:aws:iam::<aws_account_id>:oidc-provider/<name>-oidc.s3.<aws_region>.amazonaws.com - $ ccoctl aws create-iam-roles \ --name <name> \ --region=<aws_region> \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --identity-provider-arn arn:aws:iam::<aws_account_id>:oidc-provider/<name>-oidc.s3.<aws_region>.amazonaws.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - 
										<name>是用于标记为跟踪而创建的云资源的名称。对于升级,请使用与初始安装相同的值。
- 
										<aws_account_id> 是 AWS 帐户 ID。
- 
										<aws_region> 是将要在其中创建云资源的 AWS 区域。
 注意- 对于使用其他 IAM API 端点的 AWS 环境(如 GovCloud),还必须使用 - --region参数指定您的区域。- 对于每个 - CredentialsRequest对象,- ccoctl创建一个带有信任策略的 IAM 角色,该角色与指定的 OIDC 身份提供程序相关联,以及来自 OpenShift Container Platform 发行镜像的每个- CredentialsRequest对象中定义的权限策略。
- 
										
- 将 secret 应用到集群: - ls <path_to_ccoctl_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}- $ ls <path_to_ccoctl_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
您可以通过查询 AWS 来验证是否已创建 IAM 角色。如需更多信息,请参阅有关列出 IAM 角色的 AWS 文档。