2.2. Red Hat OpenShift Service on AWS の前提条件
Red Hat OpenShift Service on AWS クラスターを作成するには、次の項目が必要です。
- 設定された仮想プライベートクラウド (VPC)
- アカウント全体のロール
- OIDC 設定
- Operator ロール
2.2.1. Red Hat OpenShift Service on AWS クラスター用の Virtual Private Cloud の作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラスターを作成するには、Virtual Private Cloud (VPC) が必要です。次の方法を使用して VPC を作成できます。
- ROSA CLI を使用した VPC の作成
- Terraform テンプレートを使用して VPC を作成する
- AWS コンソールで VPC リソースを手動で作成する
Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、この Terraform 設定を使用する場合は、クラスターをインストールする予定のリージョンと同じリージョン内に設定があることを確認してください。以下の例では、us-east-2
が使用されています。
ROSA CLI を使用した AWS VPC の作成
バージョン 1.2.48 以降の ROSA CLI では、rosa create network
コマンドを使用できます。このコマンドは、AWS CloudFormation を使用して、Red Hat OpenShift Service on AWS クラスターのインストールに必要な VPC と関連ネットワークコンポーネントを作成します。CloudFormation はネイティブの AWS インフラストラクチャーコードツールであり、AWS CLI と互換性があります。
テンプレートを指定しない場合、次のパラメーターを持つリソースを作成するデフォルトのテンプレートが CloudFormation によって使用されます。
VPC のパラメーター | 値 |
---|---|
アベイラビリティーゾーン | 1 |
リージョン |
|
VPC CIDR |
|
rosa create network
コマンドで使用する CloudFormation テンプレートを作成し、カスタマイズできます。デフォルトの VPC テンプレートの詳細は、このセクションの関連情報を参照してください。
前提条件
- AWS アカウントを設定した。
- Red Hat アカウントを設定した。
- ROSA CLI をインストールし、最新バージョンに設定した。
手順
次のコマンドを実行して、デフォルトの CloudFormations テンプレートを使用して AWS VPC を作成します。
rosa create network
$ rosa create network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 追加のパラメーターを指定して VPC をカスタマイズします。
--param
フラグを使用すると、デフォルトの VPC テンプレートへの変更を指定できます。次のコマンド例では、region
、Name
、AvailabilityZoneCount
、およびVpcCidr
のカスタム値を指定します。rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
$ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの実行には約 5 分かかります。リソースが作成されるたびに、AWS から定期的にステータスの更新が提供されます。CloudFormation に問題がある場合は、ロールバックが試行されます。それ以外のエラーが発生した場合は、エラーメッセージの指示に従うか、AWS サポートにお問い合わせください。
検証
完了すると、作成されたリソースの概要が表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Terraform を使用した Virtual Private Cloud の作成
Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して Red Hat OpenShift Service on AWS クラスターを作成します。Terraform の使用の詳細は、関連情報を参照してください。
前提条件
- マシンに Terraform バージョン 1.4.0 以降がインストールされている。
- マシンに Git がインストールされている。
手順
シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。
git clone https://github.com/openshift-cs/terraform-vpc-example
$ git clone https://github.com/openshift-cs/terraform-vpc-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、作成したディレクトリーに移動します。
cd terraform-vpc-example
$ cd terraform-vpc-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Terraform ファイルを開始します。
terraform init
$ terraform init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このプロセスが完了すると、初期化を確認するメッセージが表示されます。
既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、
plan
コマンドを実行します。AWS リージョンを含める必要があります。クラスター名を指定することもできます。terraform plan
が完了すると、rosa.tfplan
ファイルがhypershift-tf
ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。terraform plan -out rosa.tfplan -var region=<region>
$ terraform plan -out rosa.tfplan -var region=<region>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。
terraform apply rosa.tfplan
$ terraform apply rosa.tfplan
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 次のコマンドを実行すると、Terraform でプロビジョニングされたプライベート、パブリック、およびマシンプールのサブネット ID の値を、Red Hat OpenShift Service on AWS クラスターの作成時に使用する環境変数としてキャプチャーできます。
export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
$ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、変数が正しく設定されたことを確認できます。
echo $SUBNET_IDS
$ echo $SUBNET_IDS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
$ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AWS Virtual Private Cloud の手動作成
Terraform を使用する代わりに、AWS Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。
VPC は、次の表に示す要件を満たしている必要があります。
要件 | 詳細 |
---|---|
VPC 名 | クラスターを作成するときは、特定の VPC 名と ID が必要です。 |
CIDR 範囲 | VPC CIDR 範囲はマシンの CIDR と一致する必要があります。 |
アベイラビリティーゾーン | 単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。 |
パブリックサブネット | パブリッククラスターには、NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。プライベートクラスターにはパブリックサブネットは必要ありません。 |
DNS ホスト名と解決 | DNS ホスト名と解決が有効になっていることを確認する必要があります。 |
2.2.3. アカウント全体の STS ロールおよびポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラスターを作成する前に、必要なアカウント全体のロールとポリシーを作成する必要があります。
Red Hat OpenShift Service on AWS 用の特定の AWS 管理ポリシーを各ロールにアタッチする必要があります。これらの必要なアカウントロールには、顧客管理のポリシーを使用しないでください。Red Hat OpenShift Service on AWS クラスターの AWS 管理ポリシーの詳細は、AWS managed policies for ROSA を参照してください。
前提条件
- Red Hat OpenShift Service on AWS の AWS 前提条件を満たしている。
- 利用可能な AWS サービスクォータがある。
- AWS コンソールで Red Hat OpenShift Service on AWS を有効にした。
-
インストールホストに最新の ROSA CLI (
rosa
) をインストールして設定した。 - ROSA CLI を使用して Red Hat アカウントにログインしている。
手順
AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールを作成し、ポリシーをアタッチします。
rosa create account-roles --hosted-cp
$ rosa create account-roles --hosted-cp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 次のコマンドを実行して、接頭辞を環境変数として設定します。
export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
$ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、変数の値を表示します。
echo $ACCOUNT_ROLES_PREFIX
$ echo $ACCOUNT_ROLES_PREFIX
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
ManagedOpenShift
ManagedOpenShift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat OpenShift Service on AWS の AWS 管理 IAM ポリシーの詳細は、AWS managed IAM policies for ROSA を参照してください。
2.2.4. OpenID Connect 設定の作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラスターを作成する際に、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。
前提条件
- Red Hat OpenShift Service on AWS の AWS 前提条件を満たしている。
-
インストールホストに最新の ROSA CLI
rosa
をインストールして設定した。
手順
AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。
rosa create oidc-config --mode=auto --yes
$ rosa create oidc-config --mode=auto --yes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは次の情報を返します。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、
--mode auto
のこの値が提供されます。それ以外の場合は、--mode manual
のaws
CLI 出力に基づいてこれらの値を決定する必要があります。オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。
export OIDC_ID=<oidc_config_id>
$ export OIDC_ID=<oidc_config_id>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 上記の出力例では、OIDC 設定 ID は 13cdr6b です。
次のコマンドを実行して、変数の値を表示します。
echo $OIDC_ID
$ echo $OIDC_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
13cdr6b
13cdr6b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。
rosa list oidc-config
$ rosa list oidc-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.5. Operator のロールとポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS クラスターをデプロイする際には、Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールとポリシーを使用して、バックエンドストレージの管理やクラスターへの外部アクセスなどのクラスター操作を実行するために必要な一時的な権限を取得します。
前提条件
- Red Hat OpenShift Service on AWS の AWS 前提条件を満たしている。
-
インストールホストに最新の ROSA CLI (
rosa
) をインストールして設定した。 - アカウント全体の AWS ロールを作成した。
手順
Operator ロールを作成するには、次のコマンドを実行します。
rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
$ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内訳は、Operator ロール作成のオプションを示しています。
rosa create operator-roles --hosted-cp
$ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX
1 --oidc-config-id=$OIDC_ID
2 --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat OpenShift Service on AWS クラスター用の正しいロールを作成するには、
--hosted-cp
パラメーターを含める必要があります。このコマンドは次の情報を返します。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これで、Operator ロールが作成され、Red Hat OpenShift Service on AWS クラスターの作成に使用できるようになりました。
検証
Red Hat OpenShift Service on AWS アカウントに関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。
rosa list operator-roles
$ rosa list operator-roles
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。