8.10. 手动创建 IAM
安装集群需要 Cloud Credential Operator(CCO)以手动模式运行。虽然安装程序为手动模式配置 CCO,但您必须为云供应商指定身份和访问管理 secret。
您可以使用 Cloud Credential Operator (CCO)实用程序(ccoctl)创建所需的 IBM Cloud® 资源。
先决条件
-
您已配置了
ccoctl二进制文件。 -
您有一个现有的
install-config.yaml文件。
流程
编辑
install-config.yaml配置文件,使该文件包含credentialsMode参数设置为Manual。install-config.yaml配置文件示例apiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual compute: - architecture: amd64 hyperthreading: Enabled-
credentialsMode:将credentialsMode参数设置为Manual。
-
要生成清单,请从包含安装程序的目录中运行以下命令:
$ ./openshift-install create manifests --dir <installation_directory>在包含安装程序的目录中,运行以下命令使用安装文件中的发行镜像设置
$RELEASE_IMAGE变量:$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')运行以下命令,从 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>-
--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
-
为每个凭证请求创建服务 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>-
<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
-
验证
-
检查集群的
manifests目录中是否存在适当的 secret。