3.7. 手动管理云凭证


Cloud Credential Operator(CCO)只支持手动模式的云供应商。因此,您必须为云供应商指定身份和访问管理(IAM)secret。

流程

  1. 如果您之前还没有创建安装清单文件,请运行以下命令:

    $ openshift-install create manifests --dir <installation_directory>
    Copy to Clipboard Toggle word wrap

    其中 <installation_directory> 是安装程序在其中创建文件的目录。

  2. 运行以下命令,使用安装文件中的发行镜像设置 $RELEASE_IMAGE 变量:

    $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,从 OpenShift Container Platform 发行镜像中提取 CredentialsRequest 自定义资源 (CR) 列表:

    $ oc adm release extract \
      --from=$RELEASE_IMAGE \
      --credentials-requests \
      --included \
    1
    
      --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \
    2
    
      --to=<path_to_directory_for_credentials_requests> 
    3
    Copy to Clipboard Toggle word wrap
    1
    --included 参数仅包含特定集群配置所需的清单。
    2
    指定 install-config.yaml 文件的位置。
    3
    指定要存储 CredentialsRequest 对象的目录的路径。如果指定的目录不存在,这个命令会创建它。

    此命令为每个 CredentialsRequest 对象创建一个 YAML 文件。

    CredentialsRequest 对象示例

    apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: <component_credentials_request>
      namespace: openshift-cloud-credential-operator
      ...
    spec:
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: AzureProviderSpec
        roleBindings:
        - role: Contributor
      ...
    Copy to Clipboard Toggle word wrap

  4. 在之前生成的 openshift-install 清单目录中为 secret 创建 YAML 文件。secret 必须使用在 spec.secretRef 中为每个 CredentialsRequest 定义的命名空间和 secret 名称存储。

    带有 secret 的 CredentialsRequest 对象示例

    apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: <component_credentials_request>
      namespace: openshift-cloud-credential-operator
      ...
    spec:
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: AzureProviderSpec
        roleBindings:
        - role: Contributor
          ...
      secretRef:
        name: <component_secret>
        namespace: <component_namespace>
      ...
    Copy to Clipboard Toggle word wrap

    Secret 对象示例

    apiVersion: v1
    kind: Secret
    metadata:
      name: <component_secret>
      namespace: <component_namespace>
    data:
      azure_subscription_id: <base64_encoded_azure_subscription_id>
      azure_client_id: <base64_encoded_azure_client_id>
      azure_client_secret: <base64_encoded_azure_client_secret>
      azure_tenant_id: <base64_encoded_azure_tenant_id>
      azure_resource_prefix: <base64_encoded_azure_resource_prefix>
      azure_resourcegroup: <base64_encoded_azure_resourcegroup>
      azure_region: <base64_encoded_azure_region>
    Copy to Clipboard Toggle word wrap

重要

在升级使用手动维护凭证的集群前,您必须确保 CCO 处于可升级状态。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat