×

直通模式支持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 时将报告错误。

Amazon Web Services (AWS) 权限

您在 AWS 中为直通模式提供的凭据必须拥有您正在运行或安装的 OpenShift Container Platform 版本所需的所有CredentialsRequest CR 的所有所需权限。

要查找所需的CredentialsRequest CR,请参阅手动为 AWS 创建长期凭据

Microsoft Azure 权限

您在 Azure 中为直通模式提供的凭据必须拥有您正在运行或安装的 OpenShift Container Platform 版本所需的所有CredentialsRequest CR 的所有所需权限。

要查找所需的CredentialsRequest CR,请参阅手动为 Azure 创建长期凭据

Google Cloud Platform (GCP) 权限

您在 GCP 中为直通模式提供的凭据必须拥有您正在运行或安装的 OpenShift Container Platform 版本所需的所有CredentialsRequest CR 的所有所需权限。

要查找所需的CredentialsRequest CR,请参阅手动为 GCP 创建长期凭据

Red Hat OpenStack Platform (RHOSP) 权限

要在 RHOSP 上安装 OpenShift Container Platform 集群,CCO 需要具有member用户角色权限的凭据。

VMware vSphere 权限

要在 VMware vSphere 上安装 OpenShift Container Platform 集群,CCO 需要具有以下 vSphere 权限:

表 1. 所需的 vSphere 权限
类别 权限

数据存储

分配空间

文件夹

创建文件夹删除文件夹

vSphere 标记

所有权限

网络

分配网络

资源

将虚拟机分配给资源池

配置文件驱动的存储

所有权限

vApp

所有权限

虚拟机

所有权限

管理员凭据根密钥格式

按照惯例,每个云提供商在kube-system命名空间中使用一个凭据根密钥,然后使用该密钥来满足所有凭据请求并创建各自的密钥。这可以通过使用铸造模式创建新的凭据,或通过使用直通模式复制凭据根密钥来完成。

密钥的格式因云而异,并且也用于每个CredentialsRequest密钥。

Amazon Web Services (AWS) 密钥格式
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>
Microsoft Azure 密钥格式
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
Google Cloud Platform (GCP) 密钥格式
apiVersion: v1
kind: Secret
metadata:
  namespace: kube-system
  name: gcp-credentials
stringData:
  service_account.json: <base64-encoded_service_account>
Red Hat OpenStack Platform (RHOSP) 密钥格式
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>
VMware vSphere 密钥格式
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,请参阅针对AWSAzureGCP手动创建长期凭据

维护云提供商凭据

如果您的云提供商凭据因任何原因发生更改,则必须手动更新云凭据操作员 (CCO) 用于管理云提供商凭据的密钥。

旋转云凭据的过程取决于 CCO 配置为使用的模式。在为使用铸造模式的集群旋转凭据后,必须手动删除已删除凭据创建的组件凭据。

先决条件
  • 您的集群安装在支持使用您正在使用的 CCO 模式手动旋转云凭据的平台上。

    • 对于直通模式,支持 Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Red Hat OpenStack Platform (RHOSP) 和 VMware vSphere。

  • 您已更改用于与云提供商交互的凭据。

  • 新凭据具有 CCO 在集群中配置为使用的模式所需的足够权限。

步骤
  1. 在 Web 控制台的管理员视角中,导航到工作负载密钥

  2. 密钥页面上的表格中,找到云提供商的根密钥。

    平台 密钥名称

    AWS

    aws-creds

    Azure

    azure-credentials

    GCP

    gcp-credentials

    RHOSP

    openstack-credentials

    VMware vSphere

    vsphere-creds

  3. 单击与密钥位于同一行的选项菜单kebab,然后选择编辑密钥

  4. 记录字段或多个字段的内容。您可以使用此信息来验证在更新凭据后值是否不同。

  5. 使用云提供商的新身份验证信息更新字段或多个字段中的文本,然后单击保存

  6. 如果您正在更新未启用 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
验证

要验证凭据是否已更改:

  1. 在 Web 控制台的管理员视角中,导航到工作负载密钥

  2. 验证字段的内容是否已更改。

安装后降低权限

使用直通模式时,每个组件都具有与所有其他组件相同的权限。如果安装后不降低权限,则所有组件都将具有运行安装程序所需的广泛权限。

安装后,您可以将凭据的权限降低到仅运行集群所需的权限,如您正在使用的OpenShift Container Platform版本的发布镜像中的CredentialsRequest CR定义的那样。

要查找AWS、Azure或GCP所需的CredentialsRequest CR,并了解如何更改CCO使用的权限,请参阅针对AWSAzureGCP手动创建长期凭据