1.3. HCP 前提条件を備えた ROSA
HCP クラスターを備えた ROSA を作成するには、次のものが必要です。
- 設定された仮想プライベートクラウド (VPC)
- アカウント全体のロール
- OIDC 設定
- オペレーターのロール
1.3.1. HCP クラスターを備えた ROSA 用の仮想プライベートクラウドの作成
HCP クラスターを備えた ROSA を作成するには、Virtual Private Cloud (VPC) が必要です。次の方法を使用して VPC を作成できます。
- Terraform テンプレートを使用して VPC を作成する
- AWS コンソールで VPC リソースを手動で作成する
Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、この Terraform スクリプトを使用するときは、クラスターをインストールする予定のリージョンと同じリージョンにあることを確認する必要があります。これらの例では、us-east-2 を使用します。
Terraform を使用した Virtual Private Cloud の作成
Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して、HCP クラスターを備えた ROSA を作成します。Terraform の使用の詳細は、関連情報を参照してください。
前提条件
- マシンに Terraform バージョン 1.4.0 以降がインストールされている。
- マシンに Git がインストールされている。
手順
シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。
$ git clone https://github.com/openshift-cs/terraform-vpc-example
次のコマンドを実行して、作成したディレクトリーに移動します。
$ cd terraform-vpc-example
次のコマンドを実行して、Terraform ファイルを開始します。
$ terraform init
このプロセスが完了すると、初期化を確認するメッセージが表示されます。
既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、
planコマンドを実行します。AWS リージョンを含める必要があります。クラスター名の指定を選択できます。terraform planが完了すると、rosa.tfplanファイルがhypershift-tfディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。$ terraform plan -out rosa.tfplan -var region=<region> [-var cluster_name=<cluster_name>]
次のコマンドを実行して、このプランファイルを適用して VPC を構築します。
$ terraform apply rosa.tfplan
任意: 次のコマンドを実行して、Terraform でプロビジョニングされたプライベート、パブリック、およびマシンプールのサブネット ID の値を環境変数としてキャプチャーし、HCP クラスターを備えた ROSA を作成するときに使用できます。
$ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
検証
次のコマンドを使用して、変数が正しく設定されたことを確認できます。
$ echo $SUBNET_IDS
出力例
$ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
関連情報
- ニーズに合わせて VPC をカスタマイズするときに使用できるすべてのオプションの詳細なリストは、Terraform VPC リポジトリーを参照してください。
Virtual Private Cloud を手動で作成する
Terraform を使用する代わりに Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。VPC は、次の表に示す要件を満たしている必要があります。
表1.3 VPC の要件
| 要件 | 詳細 |
|---|---|
| VPC 名 | クラスターを作成するときは、特定の VPC 名と ID が必要です。 |
| CIDR 範囲 | VPC CIDR 範囲はマシンの CIDR と一致する必要があります。 |
| アベイラビリティーゾーン | 単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。 |
| パブリックサブネット | NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。 |
| DNS ホスト名と解決 | DNS ホスト名と解決が有効になっていることを確認する必要があります。 |
1.3.2. アカウント全体の STS ロールおよびポリシーの作成
Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) を使用して、ホスト型コントロールプレーン (HCP) クラスターを備えた Red Hat OpenShift Service on AWS (ROSA) を作成する前に、Operator ポリシーを含む、必要なアカウント全体のロールとポリシーを作成します。
前提条件
- HCP を備えた ROSA の AWS の前提条件を完了している。
- 利用可能な AWS サービスクォータがある。
- AWS コンソールで ROSA サービスを有効にしている。
インストールホストに、最新の ROSA CLI (
rosa) をインストールして設定している。注記HCP クラスターを備えた ROSA クラスターを正常にインストールするには、最新バージョンの ROSA CLI (
rosa) を使用します。- ROSA CLI を使用して Red Hat アカウントにログインしている。
手順
AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールとポリシーを作成します。
$ rosa create account-roles --force-policy-creation
--force-policy-creationパラメーターは、存在する既存のロールとポリシーを更新します。ロールとポリシーが存在しない場合、コマンドは代わりにこれらのリソースを作成します。
1.3.3. OpenID Connect 設定の作成
HCP クラスターを備えた ROSA を使用する場合は、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成する必要があります。OIDC 設定は、OpenShift Cluster Manager で使用するために登録されています。
前提条件
- HCP を備えた ROSA の AWS の前提条件を完了している。
- Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
-
インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (
rosa) をインストールして設定している。
手順
AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。
$ rosa create oidc-config --mode=auto --yes
このコマンドは次の情報を返します。
出力例
? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes I: Setting up managed OIDC configuration I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice: rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b If you are going to create a Hosted Control Plane cluster please include '--hosted-cp' I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName' ? Create the OIDC provider? Yes I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、
--mode autoのこの値が提供されます。それ以外の場合は、--mode manualのawsCLI 出力に基づいてこれらの値を決定する必要があります。オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。
$ export OIDC_ID=30f5dqmk
次のコマンドを実行して、変数の値を表示します。
$ echo $OIDC_ID
出力例
$ 30f5dqmk
検証
ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。
$ rosa list oidc-config
出力例
ID MANAGED ISSUER URL SECRET ARN 2330dbs0n8m3chkkr25gkkcd8pnj3lk2 true https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2 233hvnrjoqu14jltk6lhbhf2tj11f8un false https://oidc-r7u1.s3.us-east-1.amazonaws.com aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
1.3.4. Operator のロールとポリシーの作成
HCP クラスターを備えた ROSA を使用する場合は、ホスト型コントロールプレーン (HCP) デプロイメントを備えた Red Hat OpenShift Service on AWS (ROSA) に必要な Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールを使用して、バックエンドストレージ、クラウドプロバイダーの認証情報、クラスターへの外部アクセスの管理など、クラスター操作を実行するために必要な一時的なアクセス許可を取得します。
前提条件
- HCP を備えた ROSA の AWS の前提条件を完了している。
-
インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (
rosa) をインストールして設定している。 - アカウント全体の AWS ロールを作成している。
手順
Operator ロールを作成するには、次のコマンドを実行します。
$ rosa create operator-roles --hosted-cp --prefix <prefix-name> --oidc-config-id <oidc-config-id>
次の内訳は、Operator ロール作成のオプションを示しています。
$ rosa create operator-roles --hosted-cp --prefix <prefix-name> 1 --oidc-config-id <oidc-config-id> 2
HCP クラスターを備えた ROSA の正しいロールを作成するには、
--hosted-cpパラメーターを含める必要があります。このコマンドは次の情報を返します。出力例
? Role creation mode: auto ? Operator roles prefix: <pre-filled_prefix> 1 ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 2 ? Create hosted control plane operator roles: Yes W: More than one Installer role found ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-Installer-Role ? Permissions boundary ARN (optional): I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles: I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>' I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti' I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager' I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager' I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator' I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider' I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials' I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials' I: To create a cluster with these roles, run the following command: rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
これで、Operator ロールが作成され、HCP クラスターを備えた ROSA の作成に使用できるようになりました。
検証
ROSA アカウントに関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。
$ rosa list operator-roles
出力例
I: Fetching operator roles ROLE PREFIX AMOUNT IN BUNDLE <prefix> 8 ? Would you like to detail a specific prefix Yes 1 ? Operator Role Prefix: <prefix> ROLE NAME ROLE ARN VERSION MANAGED <prefix>-kube-system-capa-controller-manager arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager 4.13 No <prefix>-kube-system-control-plane-operator arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator 4.13 No <prefix>-kube-system-kms-provider arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider 4.13 No <prefix>-kube-system-kube-controller-manager arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager 4.13 No <prefix>-openshift-cloud-network-config-controller-cloud-credenti arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti 4.13 No <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials 4.13 No <prefix>-openshift-image-registry-installer-cloud-credentials arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials 4.13 No <prefix>-openshift-ingress-operator-cloud-credentials arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials 4.13 No- 1
- コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。
関連情報
- オペレーター接頭辞については、カスタム Operator IAM ロール接頭辞 を参照してください。