apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: aws-creds
stringData:
aws_access_key_id: <base64-encoded_access_key_id>
aws_secret_access_key: <base64-encoded_secret_access_key>
直通模式支持Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Red Hat OpenStack Platform (RHOSP)和VMware vSphere。
在直通模式下,云凭据Operator (CCO) 将提供的云凭据传递给请求云凭据的组件。该凭据必须具有执行安装并完成集群中组件所需操作的权限,但不一定能够创建新的凭据。CCO不会尝试在直通模式下创建其他有限范围的凭据。
对于 Microsoft Azure Stack Hub,仅支持手动模式 的 CCO 配置。 |
在直通模式下使用 CCO 时,请确保您提供的凭据满足您运行或安装 OpenShift Container Platform 的云的相应要求。如果 CCO 传递给创建CredentialsRequest
CR 的组件的凭据不足,则该组件在尝试调用其无权访问的 API 时将报告错误。
您在 AWS 中为直通模式提供的凭据必须拥有您正在运行或安装的 OpenShift Container Platform 版本所需的所有CredentialsRequest
CR 的所有所需权限。
要查找所需的CredentialsRequest
CR,请参阅手动为 AWS 创建长期凭据。
您在 Azure 中为直通模式提供的凭据必须拥有您正在运行或安装的 OpenShift Container Platform 版本所需的所有CredentialsRequest
CR 的所有所需权限。
要查找所需的CredentialsRequest
CR,请参阅手动为 Azure 创建长期凭据。
您在 GCP 中为直通模式提供的凭据必须拥有您正在运行或安装的 OpenShift Container Platform 版本所需的所有CredentialsRequest
CR 的所有所需权限。
要查找所需的CredentialsRequest
CR,请参阅手动为 GCP 创建长期凭据。
按照惯例,每个云提供商在kube-system
命名空间中使用一个凭据根密钥,然后使用该密钥来满足所有凭据请求并创建各自的密钥。这可以通过使用铸造模式创建新的凭据,或通过使用直通模式复制凭据根密钥来完成。
密钥的格式因云而异,并且也用于每个CredentialsRequest
密钥。
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: aws-creds
stringData:
aws_access_key_id: <base64-encoded_access_key_id>
aws_secret_access_key: <base64-encoded_secret_access_key>
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: azure-credentials
stringData:
azure_subscription_id: <base64-encoded_subscription_id>
azure_client_id: <base64-encoded_client_id>
azure_client_secret: <base64-encoded_client_secret>
azure_tenant_id: <base64-encoded_tenant_id>
azure_resource_prefix: <base64-encoded_resource_prefix>
azure_resourcegroup: <base64-encoded_resource_group>
azure_region: <base64-encoded_region>
在 Microsoft Azure 上,凭据密钥格式包含两个属性,必须包含集群的基础架构 ID(为每个集群安装随机生成)。此值可以在运行创建清单后找到。
$ cat .openshift_install_state.json | jq '."*installconfig.ClusterID".InfraID' -r
mycluster-2mpcn
此值将按如下方式用于密钥数据中:
azure_resource_prefix: mycluster-2mpcn
azure_resourcegroup: mycluster-2mpcn-rg
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: gcp-credentials
stringData:
service_account.json: <base64-encoded_service_account>
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: openstack-credentials
data:
clouds.yaml: <base64-encoded_cloud_creds>
clouds.conf: <base64-encoded_cloud_creds_init>
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: vsphere-creds
data:
vsphere.openshift.example.com.username: <base64-encoded_username>
vsphere.openshift.example.com.password: <base64-encoded_password>
如果集群升级后CredentialsRequest
CR 随时间变化,则必须手动更新直通模式凭据以满足要求。为避免升级期间出现凭据问题,请在升级之前检查新版本的 OpenShift Container Platform 的发行版镜像中的CredentialsRequest
CR。要查找云提供商所需的CredentialsRequest
CR,请参阅针对AWS、Azure或GCP的手动创建长期凭据。
如果您的云提供商凭据因任何原因发生更改,则必须手动更新云凭据操作员 (CCO) 用于管理云提供商凭据的密钥。
旋转云凭据的过程取决于 CCO 配置为使用的模式。在为使用铸造模式的集群旋转凭据后,必须手动删除已删除凭据创建的组件凭据。
您的集群安装在支持使用您正在使用的 CCO 模式手动旋转云凭据的平台上。
对于直通模式,支持 Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Red Hat OpenStack Platform (RHOSP) 和 VMware vSphere。
您已更改用于与云提供商交互的凭据。
新凭据具有 CCO 在集群中配置为使用的模式所需的足够权限。
在 Web 控制台的管理员视角中,导航到工作负载→密钥。
在密钥页面上的表格中,找到云提供商的根密钥。
平台 | 密钥名称 |
---|---|
AWS |
|
Azure |
|
GCP |
|
RHOSP |
|
VMware vSphere |
|
单击与密钥位于同一行的选项菜单,然后选择编辑密钥。
记录值字段或多个字段的内容。您可以使用此信息来验证在更新凭据后值是否不同。
使用云提供商的新身份验证信息更新值字段或多个字段中的文本,然后单击保存。
如果您正在更新未启用 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 控制器管理器操作员的状态报告Progressing=true
。要查看状态,请运行以下命令:
$ oc get co kube-controller-manager
要验证凭据是否已更改:
在 Web 控制台的管理员视角中,导航到工作负载→密钥。
验证值字段的内容是否已更改。