4.3.2. 手动创建 IAM

在无法访问云身份和访问管理(IAM)API 的环境中,或者管理员更不希望将管理员级别的凭证 secret 存储在集群 kube-system 命名空间中时,可以在安装前将 Cloud Credential Operator(CCO)放入手动模式。

流程

  1. 切换到包含安装程序的目录并创建 install-config.yaml 文件:

    $ openshift-install create install-config --dir <installation_directory>

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

  2. 编辑 install-config.yaml 配置文件,把其中的 credentialsMode 参数设置为Manual

    示例 install-config.yaml 配置文件

    apiVersion: v1
    baseDomain: cluster1.example.com
    credentialsMode: Manual 1
    compute:
    - architecture: amd64
      hyperthreading: Enabled
    ...

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

    $ openshift-install create manifests --dir <installation_directory>
  4. 从包含安装程序的目录中,获取 openshift-install 二进制文件要使用的 OpenShift Container Platform 发行镜像详情:

    $ openshift-install version

    输出示例

    release image quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64

  5. 针对您要部署到的云,找到此发行版本镜像中的所有 CredentialsRequests 对象:

    $ oc adm release extract quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64 --credentials-requests --cloud=aws

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

    CredentialsRequest 对象示例

    apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: cloud-credential-operator-iam-ro
      namespace: openshift-cloud-credential-operator
    spec:
      secretRef:
        name: cloud-credential-operator-iam-ro-creds
        namespace: openshift-cloud-credential-operator
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: AWSProviderSpec
        statementEntries:
        - effect: Allow
          action:
          - iam:GetUser
          - iam:GetUserPolicy
          - iam:ListAccessKeys
          resource: "*"

  6. 在之前生成的 openshift-install 清单目录中为 secret 创建 YAML 文件。secret 必须使用在 spec.secretRef 中为每个 credentialsRequest 定义的命名空间和 secret 名称存储 。secret 数据的格式因云供应商而异。
  7. 从包含安装程序的目录中,开始创建集群:

    $ openshift-install create cluster --dir <installation_directory>
    重要

    在升级使用手动维护凭证的集群前,必须确保 CCO 处于可升级状态。详情请参阅您的云供应商的安装内容"使用手动维护凭证对集群进行升级"部分。