第 11 章 更改云供应商凭证配置
对于支持的配置,您可以更改 OpenShift Container Platform 与云供应商进行身份验证的方式。
要确定集群使用哪个云凭证策略,请参阅 确定 Cloud Credential Operator 模式。
11.1. 轮转或删除云供应商凭证
安装 OpenShift Container Platform 后,一些机构需要轮转或删除初始安装过程中使用的云供应商凭证。
要允许集群使用新凭证,您必须更新 Cloud Credential Operator(CCO)用来管理云供应商凭证的 secret。
11.1.1. 使用 Cloud Credential Operator 实用程序轮转云供应商凭证
Cloud Credential Operator (CCO) 实用程序 ccoctl
支持为 IBM Cloud® 上安装的集群更新 secret。
11.1.1.1. 轮转 API 密钥
您可以为现有服务 ID 轮转 API 密钥,并更新对应的 secret。
先决条件
-
您已配置了
ccoctl
二进制文件。 - 已安装 live OpenShift Container Platform 集群中现有的服务 ID。
流程
使用
ccoctl
实用程序轮转服务 ID 的 API 密钥并更新 secret:$ ccoctl <provider_name> refresh-keys \ 1 --kubeconfig <openshift_kubeconfig_file> \ 2 --credentials-requests-dir <path_to_credential_requests_directory> \ 3 --name <name> 4
注意如果您的集群使用
TechPreviewNoUpgrade
功能集启用的技术预览功能,则必须包含--enable-tech-preview
参数。
11.1.2. 维护云供应商凭证
如果因为某种原因更改了云供应商凭证,您必须手动更新 Cloud Credential Operator(CCO)用来管理云供应商凭证的 secret。
轮转云凭证的过程取决于 CCO 配置使用的模式。在为使用 mint 模式的集群轮转凭证后,您必须手动删除由删除凭证创建的组件凭证。
先决条件
您的集群会在支持使用您要使用的 CCO 模式手动轮转云凭证的平台上安装:
- 对于 mint 模式,支持 Amazon Web Services (AWS)和 Google Cloud Platform (GCP)。
- 对于 passthrough 模式,支持 Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Red Hat OpenStack Platform (RHOSP)和 VMware vSphere。
- 您已更改了用于与云供应商接口的凭证。
- 新凭证有足够的权限来在集群中使用 CCO 模式。
流程
-
在 web 控制台的 Administrator 视角中,导航到 Workloads
Secrets。 在 Secrets 页面的表中,找到您的云供应商的 root secret。
平台 Secret 名称 AWS
aws-creds
Azure
azure-credentials
GCP
gcp-credentials
RHOSP
openstack-credentials
VMware vSphere
vsphere-creds
- 点击与 secret 相同的行 中的 Options 菜单,然后选择 Edit Secret。
- 记录 Value 字段的内容。您可以使用这些信息验证在更新凭证后该值是否不同。
- 使用云供应商的新身份验证信息更新 Value 字段的文本,然后点 Save。
如果您要为没有启用 vSphere CSI Driver Operator 的 vSphere 集群更新凭证,您必须强制推出 Kubernetes 控制器管理器以应用更新的凭证。
注意如果启用了 vSphere CSI Driver Operator,则不需要这一步。
要应用更新的 vSphere 凭证,请以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform CLI,并运行以下命令:$ oc patch kubecontrollermanager cluster \ -p='{"spec": {"forceRedeploymentReason": "recovery-'"$( date )"'"}}' \ --type=merge
当凭证被推出时,Kubernetes Controller Manager Operator 的状态会报告
Progressing=true
。要查看状态,请运行以下命令:$ oc get co kube-controller-manager
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform CLI。 获取所有引用的组件 secret 的名称和命名空间:
$ oc -n openshift-cloud-credential-operator get CredentialsRequest \ -o json | jq -r '.items[] | select (.spec.providerSpec.kind=="<provider_spec>") | .spec.secretRef'
其中
<provider_spec>
是您的云供应商的对应值:-
AWS:
AWSProviderSpec
-
GCP:
GCPProviderSpec
AWS 输出的部分示例
{ "name": "ebs-cloud-credentials", "namespace": "openshift-cluster-csi-drivers" } { "name": "cloud-credential-operator-iam-ro-creds", "namespace": "openshift-cloud-credential-operator" }
-
AWS:
删除每个引用的组件 secret:
$ oc delete secret <secret_name> \1 -n <secret_namespace> 2
删除 AWS secret 示例
$ oc delete secret ebs-cloud-credentials -n openshift-cluster-csi-drivers
您不需要从供应商控制台手动删除凭证。删除引用的组件 secret 将导致 CCO 从平台中删除现有凭证并创建新凭证。
-
以具有
验证
验证凭证是否已更改:
-
在 web 控制台的 Administrator 视角中,导航到 Workloads
Secrets。 - 验证 Value 字段的内容已改变。
11.1.3. 删除云供应商凭证
在以 mint 模式使用 Cloud Credential Operator(CCO)安装 OpenShift Container Platform 集群后,您可以从集群中的 kube-system
命名空间中删除管理员级别的凭证 secret。只有在进行更改时(需要提高的权限,如升级),才需要管理员级别的凭证。
在非 z-stream 升级前,您必须使用管理员级别的凭证重新恢复凭证 secret。如果没有凭证,则可能会阻止升级。
先决条件
- 集群安装在支持从 CCO 中删除云凭证的平台上。支持的平台是 AWS 和 GCP。
流程
-
在 web 控制台的 Administrator 视角中,导航到 Workloads
Secrets。 在 Secrets 页面的表中,找到您的云供应商的 root secret。
平台 Secret 名称 AWS
aws-creds
GCP
gcp-credentials
- 点击与 secret 相同的行 中的 Options 菜单,然后选择 Delete Secret。
其他资源