3.7. ccoctl ツールを使用した OpenShift Container Platform コンポーネントのクレデンシャルの作成
OpenShift Container Platform Cloud Credential Operator (CCO) ユーティリティーを使用して、Alibaba Cloud RAM ユーザーとクラスター内コンポーネントごとのポリシーの作成を自動化できます。
デフォルトで、ccoctl
はコマンドが実行されるディレクトリーにオブジェクトを作成します。オブジェクトを別のディレクトリーに作成するには、--output-dir
フラグを使用します。この手順では、<path_to_ccoctl_output_dir>
を使用してこの場所を参照します。
前提条件
以下が必要になります。
-
ccoctl
バイナリーを抽出して準備している。 - OpenShift Container Platform クラスターを作成するための十分な権限を持つ RAM ユーザーを作成している。
-
その RAM ユーザーの AccessKeyID (
access_key_id
) と AccessKeySecret (access_key_secret
) をローカルコンピューターの~/.alibabacloud/credentials
ファイル に追加しました。
手順
以下のコマンドを実行して、
$RELEASE_IMAGE
変数を設定します。RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、OpenShift Container Platform リリースイメージから
CredentialsRequest
オブジェクトのリストを抽出します。oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --cloud=alibabacloud \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests
$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --cloud=alibabacloud \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
credrequests
は、CredentialsRequest
オブジェクトのリストが格納されるディレクトリーです。ディレクトリーが存在しない場合、このコマンドはディレクトリーを作成します。
注記このコマンドの実行には少し時間がかかる場合があります。
クラスターでクラスター機能を使用して 1 つ以上のオプションコンポーネントを無効にする場合は、無効なコンポーネントの
CredentialsRequest
カスタムリソースを削除します。Alibaba Cloud 上の OpenShift Container Platform 4.12 の
credrequests
ディレクトリーの内容の例0000_30_machine-api-operator_00_credentials-request.yaml 0000_50_cluster-image-registry-operator_01-registry-credentials-request-alibaba.yaml 0000_50_cluster-ingress-operator_00-ingress-credentials-request.yaml 0000_50_cluster-storage-operator_03_credentials_request_alibaba.yaml
0000_30_machine-api-operator_00_credentials-request.yaml
1 0000_50_cluster-image-registry-operator_01-registry-credentials-request-alibaba.yaml
2 0000_50_cluster-ingress-operator_00-ingress-credentials-request.yaml
3 0000_50_cluster-storage-operator_03_credentials_request_alibaba.yaml
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow ccoctl
ツールを使用して、credrequests
ディレクトリーですべてのCredentialsRequest
オブジェクトを処理します。ツールを使用するには、次のコマンドを実行します。
ccoctl alibabacloud create-ram-users \ --name <name> \ --region=<alibaba_region> \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --output-dir=<path_to_ccoctl_output_dir>
$ ccoctl alibabacloud create-ram-users \ --name <name> \ --region=<alibaba_region> \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --output-dir=<path_to_ccoctl_output_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
-
<name>
は、追跡用に作成されたクラウドリソースにタグを付けるために使用される名前です。 -
<alibaba_region>
は、クラウドリソースが作成される Alibaba Cloud リージョンです。 -
<path_to_directory_with_list_of_credentials_requests>/credrequests
は、コンポーネントCredentialsRequest
オブジェクトのファイルを含むディレクトリーです。 -
<path_to_ccoctl_output_dir>
は、生成されたコンポーネントクレデンシャルシークレットが配置されるディレクトリーです。
注記クラスターで
TechPreviewNoUpgrade
機能セットによって有効化されたテクノロジープレビュー機能を使用している場合は、--enable-tech-preview
パラメーターを含める必要があります。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記RAM ユーザーは、同時に最大 2 つの AccessKey を持つことができます。
ccoctl alibabacloud create-ram-users
を 3 回以上実行すると、以前に生成されたマニフェストシークレットが古くなり、新しく生成されたシークレットを再適用する必要があります。-
OpenShift Container Platform シークレットが作成されていることを確認します。
ls <path_to_ccoctl_output_dir>/manifests
$ ls <path_to_ccoctl_output_dir>/manifests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
openshift-cluster-csi-drivers-alibaba-disk-credentials-credentials.yaml openshift-image-registry-installer-cloud-credentials-credentials.yaml openshift-ingress-operator-cloud-credentials-credentials.yaml openshift-machine-api-alibabacloud-credentials-credentials.yaml
openshift-cluster-csi-drivers-alibaba-disk-credentials-credentials.yaml openshift-image-registry-installer-cloud-credentials-credentials.yaml openshift-ingress-operator-cloud-credentials-credentials.yaml openshift-machine-api-alibabacloud-credentials-credentials.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAM ユーザーとポリシーが Alibaba Cloud にクエリーを実行して作成されていることを確認できます。詳細については、RAM ユーザーとポリシーのリスト表示に関する Alibaba Cloud のドキュメントを参照してください。
生成されたクレデンシャルファイルをターゲットマニフェストディレクトリーにコピーします。
cp ./<path_to_ccoctl_output_dir>/manifests/*credentials.yaml ./<path_to_installation>dir>/manifests/
$ cp ./<path_to_ccoctl_output_dir>/manifests/*credentials.yaml ./<path_to_installation>dir>/manifests/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<path_to_ccoctl_output_dir>
-
ccoctl alibabacloud create-ram-users
コマンドによって作成されるディレクトリーを指定します。 <path_to_installation_dir>
- インストールプログラムがファイルを作成するディレクトリーを指定します。