5.7. 手动创建 IAM


安装集群需要 Cloud Credential Operator(CCO)以手动模式运行。虽然安装程序为手动模式配置 CCO,但您必须为云供应商指定身份和访问管理 secret。

您可以使用 Cloud Credential Operator (CCO)实用程序(ccoctl)创建所需的 IBM Cloud® 资源。

先决条件

  • 您已配置了 ccoctl 二进制文件。
  • 您有一个现有的 install-config.yaml 文件。

流程

  1. 编辑 install-config.yaml 配置文件,使该文件包含 credentialsMode 参数设置为 Manual

    install-config.yaml 配置文件示例

    apiVersion: v1
    baseDomain: cluster1.example.com
    credentialsMode: Manual
    compute:
    - architecture: amd64
      hyperthreading: Enabled
    Copy to Clipboard Toggle word wrap

    • credentialsMode :将 credentialsMode 参数设置为 Manual
  2. 要生成清单,请在包含安装程序的目录中运行以下命令:

    $ ./openshift-install create manifests --dir <installation_directory>
    Copy to Clipboard Toggle word wrap
  3. 在包含安装程序的目录中,运行以下命令,使用安装文件中的发行镜像设置 $RELEASE_IMAGE 变量:

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

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

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

      CredentialsRequest 对象示例

        apiVersion: cloudcredential.openshift.io/v1
        kind: CredentialsRequest
        metadata:
          labels:
            controller-tools.k8s.io: "1.0"
          name: openshift-image-registry-ibmcos
          namespace: openshift-cloud-credential-operator
        spec:
          secretRef:
            name: installer-cloud-credentials
            namespace: openshift-image-registry
          providerSpec:
            apiVersion: cloudcredential.openshift.io/v1
            kind: IBMCloudProviderSpec
            policies:
            - attributes:
              - name: serviceName
                value: cloud-object-storage
              roles:
              - crn:v1:bluemix:public:iam::::role:Viewer
              - crn:v1:bluemix:public:iam::::role:Operator
              - crn:v1:bluemix:public:iam::::role:Editor
              - crn:v1:bluemix:public:iam::::serviceRole:Reader
              - crn:v1:bluemix:public:iam::::serviceRole:Writer
            - attributes:
              - name: resourceType
                value: resource-group
              roles:
              - crn:v1:bluemix:public:iam::::role:Viewer
      Copy to Clipboard Toggle word wrap

  5. 为每个凭证请求创建服务 ID,分配定义的策略、创建 API 密钥并生成 secret:

    $ ccoctl ibmcloud create-service-id \
      --credentials-requests-dir=<path_to_credential_requests_directory> \
      --name=<cluster_name> \
      --output-dir=<installation_directory> \
      --resource-group-name=<resource_group_name>
    Copy to Clipboard Toggle word wrap
    • <path_to_credential_requests_directory> : 指定包含 CredentialsRequest 对象文件的目录。
    • <cluster_name> : 指定 OpenShift Container Platform 集群的名称。
    • <installation_directory>: 可选参数。指定您希望 ccoctl 实用程序在其中创建对象的目录。默认情况下,实用程序在运行命令的目录中创建对象。
    • <resource_group_name>: 可选参数。指定用于限制访问策略的资源组名称。

      注意

      如果您使用集群的 TechPreviewNoUpgrade 功能集启用了技术预览功能,则必须在 CredentialsRequest 对象的 配置中包含-enable-tech-preview 参数。

      如果您提供错误的资源组名称,安装会在 bootstrap 阶段失败。要查找正确的资源组名称,请运行以下命令:

      $ grep resourceGroupName <installation_directory>/manifests/cluster-infrastructure-02-config.yml
      Copy to Clipboard Toggle word wrap

验证

  • 检查集群的 manifests 目录中是否存在适当的 secret。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat