5.12. 轮转或删除云供应商凭证
安装 OpenShift Container Platform 后,一些机构需要轮转或删除初始安装过程中使用的云供应商凭证。
要允许集群使用新凭证,您必须更新 Cloud Credential Operator(CCO)用来管理云供应商凭证的 secret。
5.12.1. 使用 Cloud Credential Operator 实用程序轮转云供应商凭证
Cloud Credential Operator (CCO) 实用程序 ccoctl
支持为 IBM Cloud 上安装的集群更新 secret。
5.12.1.1. 为 IBM Cloud 轮转 API 密钥
您可以为现有服务 ID 轮转 API 密钥,并更新对应的 secret。
先决条件
-
您已配置了
ccoctl
二进制文件。 - 在 IBM Cloud 上安装的 live OpenShift Container Platform 集群中已有服务 ID。
流程
使用
ccoctl
实用程序轮转服务 ID 的 API 密钥并更新 secret:$ ccoctl ibmcloud refresh-keys \ --kubeconfig <openshift_kubeconfig_file> \ 1 --credentials-requests-dir <path_to_credential_requests_directory> \ 2 --name <name> 3
注意如果您的集群使用
TechPreviewNoUpgrade
功能集启用的技术预览功能,则必须包含--enable-tech-preview
参数。
5.12.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)、Red Hat Virtualization (RHV)和 VMware vSphere。
- 您已更改了用于与云供应商接口的凭证。
- 新凭证有足够的权限来在集群中使用 CCO 模式。
流程
-
在 web 控制台的 Administrator 视角中,导航到 Workloads
Secrets。 在 Secrets 页面的表中,找到您的云供应商的 root secret。
平台 Secret 名称 AWS
aws-creds
Azure
azure-credentials
GCP
gcp-credentials
RHOSP
openstack-credentials
RHV
ovirt-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
如果集群的 CCO 配置为使用 mint 模式,请删除各个
CredentialsRequest
对象引用的每个组件 secret。-
以具有
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 字段的内容已改变。
5.12.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。