17.4. クラスターのデプロイ
17.4.1. チュートリアル: デプロイ方法の選択
このチュートリアルでは、クラスターをデプロイするさまざまな方法を説明します。設定や要件に最適なデプロイメント方法を選択してください。
17.4.1.1. デプロイ方法
任意の条件に合わせてデプロイメントをしてください。
- 必要な CLI コマンドのみ - 簡易 CLI ガイド
- ユーザーインターフェイス - 簡易 UI ガイド
- CLI コマンドの詳細 - 詳細な CLI ガイド
- 詳細なユーザーインターフェイス - 詳細な UI ガイド
上記のデプロイ方法はすべて、このチュートリアルで問題なく使用できます。このチュートリアルを初めて行う場合は、CLI 簡易ガイド が最も簡単で推奨される方法です。
17.4.2. チュートリアル: CLI 簡易ガイド
このページでは、コマンドラインインターフェイス (CLI) を使用して Red Hat OpenShift Service on AWS (ROSA) クラスターをデプロイするための最小限のコマンドを説明します。
この単純なデプロイメントはチュートリアル環境では問題なく機能しますが、実稼働環境で使用するクラスターはより詳細な方法でデプロイする必要があります。
17.4.2.1. 前提条件
- セットアップのチュートリアルの前提条件を完了している。
17.4.2.2. アカウントロールの作成
AWS アカウントおよび OpenShift の y-stream バージョンごとに次のコマンドを 1 回 実行します。
rosa create account-roles --mode auto --yes
17.4.2.3. クラスターのデプロイ
次のコマンドを実行して、デフォルト設定でクラスターを作成します。クラスター名は独自のものに置き換えてください。
rosa create cluster --cluster-name <cluster-name> --sts --mode auto --yes
次のコマンドを実行して、クラスターのステータスを確認します。
rosa list clusters
17.4.3. チュートリアル: CLI 詳細ガイド
このチュートリアルでは、ROSA CLI を使用して ROSA クラスターをデプロイする詳細な手順を説明します。
17.4.3.1. CLI のデプロイメントモード
ROSA クラスターのデプロイには 2 つのモードがあります。1 つは自動モードです。より迅速であり、作業が自動的に実行されます。もう 1 つは手動モードです。追加のコマンドを実行する必要があり、作成中のロールとポリシーを確認できます。このチュートリアルでは、両方のオプションを説明します。
クラスターを迅速に作成する場合は、自動オプションを使用します。作成中のロールとポリシーを確認する場合は、手動オプションを使用します。
デプロイメントモードを選択するには、関連するコマンドで --mode
フラグを使用します。
--mode
の有効なオプションは次のとおりです。
-
manual
: ロールとポリシーが作成され、現在のディレクトリーに保存されます。その後、指定のコマンドを手動で実行する必要があります。このオプションを使用すると、ポリシーとロールを作成する前に確認できます。 -
auto
: ロールとポリシーが現在の AWS アカウントを使用して自動的に作成され、適用されます。
このチュートリアルではどちらのデプロイ方法も使用できます。auto
モードはより高速で、ステップ数が少なくなります。
17.4.3.2. デプロイメントワークフロー
全体的なデプロイメントワークフローは、次のステップに基づいています。
-
rosa create account-roles
- これはアカウントごとに 1 回 だけ実行します。アカウントロールを一度作成したら、同じ y-stream バージョンの他のクラスターに対して再度作成する必要は ありません。 -
rosa create cluster
-
rosa create operator-roles
- 手動モードのみ。 -
rosa create oidc-provider
- 手動モードのみ。
自動モードの場合、同じ y-stream バージョンの同じアカウント内のクラスターごとに、ステップ 2 のみを実行する必要があります。手動モードの場合、ステップ 2 - 4 を実行する必要があります。
17.4.3.3. 自動モード
ROSA CLI でロールとポリシーの作成を自動化し、クラスターを迅速に作成する場合は、この方法を使用します。
17.4.3.3.1. アカウントロールの作成
このアカウントに ROSA を 初めて デプロイし、アカウントロールをまだ 作成していない 場合は、Operator ポリシーを含むアカウント全体のロールとポリシーを作成します。
次のコマンドを実行して、アカウント全体のロールを作成します。
rosa create account-roles --mode auto --yes
出力例
I: Creating roles using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role' I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role' I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role' I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
17.4.3.3.2. クラスターの作成
次のコマンドを実行して、すべてのデフォルトオプションを使用してクラスターを作成します。
rosa create cluster --cluster-name <cluster-name> --sts --mode auto --yes
これにより、必要な Operator ロールと OIDC プロバイダーも作成されます。クラスターで使用可能なすべてのオプションを確認する場合は、--help
フラグを使用するか、対話モードの場合は --interactive
を使用してください。
入力の例
$ rosa create cluster --cluster-name my-rosa-cluster --sts --mode auto --yes
出力例
I: Creating cluster 'my-rosa-cluster' I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster 'my-rosa-cluster' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. I: To determine when your cluster is Ready, run 'rosa describe cluster -c my-rosa-cluster'. I: To watch your cluster installation logs, run 'rosa logs install -c my-rosa-cluster --watch'. Name: my-rosa-cluster ID: 1mlhulb3bo0l54ojd0ji000000000000 External ID: OpenShift Version: Channel Group: stable DNS: my-rosa-cluster.ibhp.p1.openshiftapps.com AWS Account: 000000000000 API URL: Console URL: Region: us-west-2 Multi-AZ: false Nodes: - Master: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Master: arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-image-registry-installer-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-ingress-operator-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cloud-credential-operator-cloud-credential-oper State: waiting (Waiting for OIDC configuration) Private: No Created: Oct 28 2021 20:28:09 UTC Details Page: https://console.redhat.com/openshift/details/s/1wupmiQy45xr1nN000000000000 OIDC Endpoint URL: https://rh-oidc.s3.us-east-1.amazonaws.com/1mlhulb3bo0l54ojd0ji000000000000
17.4.3.3.2.1. デフォルト設定
デフォルトの設定は次のとおりです。
ノード:
- 3 つのコントロールプレーンノード
- 2 つのインフラストラクチャーノード
- 2 つのワーカーノード
- 自動スケーリングなし
- 詳細は、ec2 インスタンス のドキュメントを参照してください。
-
リージョン:
aws
CLI の設定どおり ネットワーク IP 範囲:
- Machine CIDR: 10.0.0.0/16
- Service CIDR: 172.30.0.0/16
- Pod CIDR: 10.128.0.0/14
- 新しい VPC
- 暗号化用のデフォルトの AWS KMS キー
-
rosa
で利用可能な OpenShift の最新バージョン - 単一のアベイラビリティーゾーン
- パブリッククラスター
17.4.3.3.3. インストールステータスの確認
次のコマンドのいずれかを実行して、クラスターのステータスを確認します。
ステータスの詳細を表示するには、次を実行します。
rosa describe cluster --cluster <cluster-name>
ステータスの要約を表示するには、次を実行します。
rosa list clusters
- クラスターの状態が、“waiting”、“installing”、"ready" の順に変わります。これには約 40 分かかります。
- 状態が “ready” に変われば、クラスターのインストールは完了です。
17.4.3.4. 手動モード
ロールとポリシーをクラスターに適用する前に確認する場合は、手動の方法を使用します。この方法では、ロールとポリシーを作成するためにいくつかの追加コマンドを実行する必要があります。
このセクションでは --interactive
モードを使用します。このセクションのフィールドの説明については、対話モード に関するドキュメントを参照してください。
17.4.3.4.1. アカウントロールの作成
このアカウントに ROSA を 初めて デプロイし、アカウントロールをまだ 作成していない 場合は、Operator ポリシーを含むアカウント全体のロールとポリシーを作成します。このコマンドは、アカウントに必要なロールとポリシーに必要な JSON ファイルを現在のディレクトリーに作成します。また、これらのオブジェクトを作成するために実行する必要がある
aws
CLI コマンドも出力されます。次のコマンドを実行して必要なファイルを作成し、追加のコマンドを出力します。
rosa create account-roles --mode manual
出力例
I: All policy files saved to the current directory I: Run the following commands to create the account roles and policies: aws iam create-role \ --role-name ManagedOpenShift-Worker-Role \ --assume-role-policy-document file://sts_instance_worker_trust_policy.json \ --tags Key=rosa_openshift_version,Value=4.8 Key=rosa_role_prefix,Value=ManagedOpenShift Key=rosa_role_type,Value=instance_worker aws iam put-role-policy \ --role-name ManagedOpenShift-Worker-Role \ --policy-name ManagedOpenShift-Worker-Role-Policy \ --policy-document file://sts_instance_worker_permission_policy.json
現在のディレクトリーの内容をチェックして、新しいファイルを確認します。これらの各オブジェクトを作成するには、
aws
CLI を使用します。出力例
$ ls openshift_cloud_credential_operator_cloud_credential_operator_iam_ro_creds_policy.json sts_instance_controlplane_permission_policy.json openshift_cluster_csi_drivers_ebs_cloud_credentials_policy.json sts_instance_controlplane_trust_policy.json openshift_image_registry_installer_cloud_credentials_policy.json sts_instance_worker_permission_policy.json openshift_ingress_operator_cloud_credentials_policy.json sts_instance_worker_trust_policy.json openshift_machine_api_aws_cloud_credentials_policy.json sts_support_permission_policy.json sts_installer_permission_policy.json sts_support_trust_policy.json sts_installer_trust_policy.json
オプション: ファイルを開いて、作成する内容を確認します。たとえば、
sts_installer_permission_policy.json
を開くと、次のように表示されます。出力例
$ cat sts_installer_permission_policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AssociateDhcpOptions", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", [...]
ROSA クラスターの IAM リソースについて のドキュメントの内容も参照してください。
-
ステップ 1 でリストされた
aws
コマンドを実行します。作成した JSON ファイルと同じディレクトリーにいる場合は、コピーして貼り付けることができます。
17.4.3.4.2. クラスターの作成
aws
コマンドが正常に実行されたら、次のコマンドを実行して対話モードで ROSA クラスターの作成を開始します。rosa create cluster --interactive --sts
フィールドの説明については、ROSA のドキュメント を参照してください。
このチュートリアルでは、次の値をコピーして入力します。
Cluster name: my-rosa-cluster OpenShift version: <choose version> External ID (optional): <leave blank> Operator roles prefix: <accept default> Multiple availability zones: No AWS region: <choose region> PrivateLink cluster: No Install into an existing VPC: No Enable Customer Managed key: No Compute nodes instance type: m5.xlarge Enable autoscaling: No Compute nodes: 2 Machine CIDR: <accept default> Service CIDR: <accept default> Pod CIDR: <accept default> Host prefix: <accept default> Encrypt etcd data (optional): No Disable Workload monitoring: No
出力例
I: Creating cluster 'my-rosa-cluster' I: To create this cluster again in the future, you can run: rosa create cluster --cluster-name my-rosa-cluster --role-arn arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role --support-role-arn arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role --master-iam-role arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role --worker-iam-role arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role --operator-roles-prefix my-rosa-cluster --region us-west-2 --version 4.8.13 --compute-nodes 2 --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 --pod-cidr 10.128.0.0/14 --host-prefix 23 I: To view a list of clusters and their status, run 'rosa list clusters' I: Cluster 'my-rosa-cluster' has been created. I: Once the cluster is installed you will need to add an Identity Provider before you can login into the cluster. See 'rosa create idp --help' for more information. Name: my-rosa-cluster ID: 1t6i760dbum4mqltqh6o000000000000 External ID: OpenShift Version: Channel Group: stable DNS: my-rosa-cluster.abcd.p1.openshiftapps.com AWS Account: 000000000000 API URL: Console URL: Region: us-west-2 Multi-AZ: false Nodes: - Control plane: 3 - Infra: 2 - Compute: 2 Network: - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 STS Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role Support Role ARN: arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role Instance IAM Roles: - Control plane: arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role - Worker: arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role Operator IAM Roles: - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-ingress-operator-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-w7i6-openshift-cloud-network-config-controller-cloud-cre - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-machine-api-aws-cloud-credentials - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-cloud-credential-operator-cloud-credentia - arn:aws:iam::000000000000:role/my-rosa-cluster-openshift-image-registry-installer-cloud-credential State: waiting (Waiting for OIDC configuration) Private: No Created: Jul 1 2022 22:13:50 UTC Details Page: https://console.redhat.com/openshift/details/s/2BMQm8xz8Hq5yEN000000000000 OIDC Endpoint URL: https://rh-oidc.s3.us-east-1.amazonaws.com/1t6i760dbum4mqltqh6o000000000000 I: Run the following commands to continue the cluster creation: rosa create operator-roles --cluster my-rosa-cluster rosa create oidc-provider --cluster my-rosa-cluster I: To determine when your cluster is Ready, run 'rosa describe cluster -c my-rosa-cluster'. I: To watch your cluster installation logs, run 'rosa logs install -c my-rosa-cluster --watch'.
注記次の 2 つのステップが完了するまで、クラスターの状態は “waiting” のままです。
17.4.3.4.3. Operator ロールの作成
上記のステップで、次に実行すべきコマンドが出力されます。これらのロールは、クラスター ごと に 1 回 作成する必要があります。ロールを作成するには、次のコマンドを実行します。
rosa create operator-roles --mode manual --cluster <cluster-name>
出力例
I: Run the following commands to create the operator roles: aws iam create-role \ --role-name my-rosa-cluster-openshift-image-registry-installer-cloud-credentials \ --assume-role-policy-document file://operator_image_registry_installer_cloud_credentials_policy.json \ --tags Key=rosa_cluster_id,Value=1mkesci269png3tck000000000000000 Key=rosa_openshift_version,Value=4.8 Key=rosa_role_prefix,Value= Key=operator_namespace,Value=openshift-image-registry Key=operator_name,Value=installer-cloud-credentials aws iam attach-role-policy \ --role-name my-rosa-cluster-openshift-image-registry-installer-cloud-credentials \ --policy-arn arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden [...]
-
各
aws
コマンドを実行します。
17.4.3.4.4. OIDC プロバイダーの作成
次のコマンドを実行して、OIDC プロバイダーを作成します。
rosa create oidc-provider --mode manual --cluster <cluster-name>
これにより、実行する必要がある
aws
コマンドが表示されます。出力例
I: Run the following commands to create the OIDC provider: $ aws iam create-open-id-connect-provider \ --url https://rh-oidc.s3.us-east-1.amazonaws.com/1mkesci269png3tckknhh0rfs2da5fj9 \ --client-id-list openshift sts.amazonaws.com \ --thumbprint-list a9d53002e97e00e043244f3d170d000000000000 $ aws iam create-open-id-connect-provider \ --url https://rh-oidc.s3.us-east-1.amazonaws.com/1mkesci269png3tckknhh0rfs2da5fj9 \ --client-id-list openshift sts.amazonaws.com \ --thumbprint-list a9d53002e97e00e043244f3d170d000000000000
- クラスターがインストールプロセスを続行します。
17.4.3.4.5. インストールステータスの確認
次のコマンドのいずれかを実行して、クラスターのステータスを確認します。
ステータスの詳細を表示するには、次を実行します。
rosa describe cluster --cluster <cluster-name>
ステータスの要約を表示するには、次を実行します。
rosa list clusters
- クラスターの状態が、“waiting”、“installing”、"ready" の順に変わります。これには約 40 分かかります。
- 状態が “ready” に変われば、クラスターのインストールは完了です。
17.4.3.5. Red Hat Hybrid Cloud Console URL の取得
Hybrid Cloud Console URL を取得するには、次のコマンドを実行します。
rosa describe cluster -c <cluster-name> | grep Console
これで、クラスターが正常にデプロイされました。次のチュートリアルでは、クラスターをすぐに使用できるように、管理ユーザーを作成する方法を示します。
17.4.4. チュートリアル: UI 簡易ガイド
このページでは、ユーザーインターフェイス (UI) を使用して ROSA クラスターをデプロイするための最小限のコマンドを説明します。
この単純なデプロイメントはチュートリアル環境では問題なく機能しますが、実稼働環境で使用するクラスターはより詳細な方法でデプロイする必要があります。
17.4.4.1. 前提条件
- セットアップのチュートリアルの前提条件を完了している。
17.4.4.2. アカウントロールの作成
AWS アカウントおよび OpenShift の y-stream バージョンごとに次のコマンドを 1 回 実行します。
rosa create account-roles --mode auto --yes
17.4.4.3. Red Hat OpenShift Cluster Manager ロールの作成
次のコマンドを実行して、AWS アカウントごとに 1 つの OpenShift Cluster Manager ロールを作成します。
rosa create ocm-role --mode auto --admin --yes
次のコマンドを実行して、AWS アカウントごとに 1 つの OpenShift Cluster Manager ユーザーロールを作成します。
rosa create user-role --mode auto --yes
- OpenShift Cluster Manager を使用して AWS アカウント、クラスターオプションを選択し、デプロイメントを開始します。
OpenShift Cluster Manager UI にクラスターのステータスが表示されます。
17.4.5. チュートリアル: UI 詳細ガイド
このチュートリアルでは、Red Hat OpenShift Cluster Manager ユーザーインターフェイス (UI) を使用して Red Hat OpenShift Service on AWS (ROSA) クラスターをデプロイする詳細な手順を説明します。
17.4.5.1. デプロイメントワークフロー
全体的なデプロイメントワークフローは、次のステップに基づいています。
- アカウント全体のロールとポリシーを作成します。
AWS アカウントを Red Hat アカウントに関連付けます。
- Red Hat OpenShift Cluster Manager ロールを作成してリンクします。
- ユーザーロールを作成してリンクします。
- クラスターを作成します。
ステップ 1 は、初めて AWS アカウントにデプロイする場合にのみ実行する必要があります。ステップ 2 は、UI を 初めて 使用する場合にのみ実行する必要があります。同じ y-stream バージョンのクラスターを連続して作成する場合は、クラスターを作成するだけで済みます。
17.4.5.2. アカウント全体のロールの作成
以前のデプロイメントのアカウントロールをすでに持っている場合は、この手順をスキップしてください。関連付けられた AWS アカウントを選択すると、UI で既存のロールが検出されます。
このアカウントに ROSA を 初めて デプロイし、アカウントロールをまだ 作成していない 場合は、Operator ポリシーを含むアカウント全体のロールとポリシーを作成します。
ターミナルで次のコマンドを実行して、アカウント全体のロールを作成します。
$ rosa create account-roles --mode auto --yes
出力例
I: Creating roles using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-ControlPlane-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-ControlPlane-Role' I: Created role 'ManagedOpenShift-Worker-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Worker-Role' I: Created role 'ManagedOpenShift-Support-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Support-Role' I: Created role 'ManagedOpenShift-Installer-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-Installer-Role' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-machine-api-aws-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cloud-credential-operator-cloud-crede' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-image-registry-installer-cloud-creden' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-ingress-operator-cloud-credentials' I: Created policy with ARN 'arn:aws:iam::000000000000:policy/ManagedOpenShift-openshift-cluster-csi-drivers-ebs-cloud-credent' I: To create a cluster with these roles, run the following command: rosa create cluster --sts
17.4.5.3. AWS アカウントと Red Hat アカウントの関連付け
このステップでは、ROSA をデプロイするときに使用する AWS アカウントを OpenShift Cluster Manager に伝えます。
すでに AWS アカウントを関連付けている場合は、この手順をスキップしてください。
- OpenShift Cluster Manager にアクセスし、Red Hat アカウントにログインして、Red Hat Hybrid Cloud Console を開きます。
- Create Cluster をクリックします。
Red Hat OpenShift Service on AWS (ROSA) 行まで下にスクロールし、Create Cluster をクリックします。
ドロップダウンメニューが表示されます。With web interface をクリックします。
"Select an AWS control plane type" の選択で、Classic を選択します。Next をクリックします。
- Associated AWS infrastructure account の下にあるドロップボックスをクリックします。AWS アカウントをまだ関連付けていない場合、ドロップボックスは空の可能性があります。
How to associate a new AWS account をクリックします。
新しい AWS アカウントを関連付ける手順を示すサイドバーが表示されます。
17.4.5.4. OpenShift Cluster Manager ロールの作成と関連付け
次のコマンドを実行して、OpenShift Cluster Manager ロールが存在するかどうかを確認します。
$ rosa list ocm-role
UI に、権限のレベルが異なる 2 種類の OpenShift Cluster Manager ロールを作成するコマンドが表示されます。
- Basic OpenShift Cluster Manager role: OpenShift Cluster Manager にアカウントへの読み取り専用アクセス権を付与し、クラスターを作成する前に ROSA に必要なロールとポリシーが存在するかどうかを確認できるようにします。CLI を使用して、必要なロール、ポリシー、および OIDC プロバイダーを手動で作成する必要があります。
Admin OpenShift Cluster Manager role: ROSA に必要なロール、ポリシー、および OIDC プロバイダーを作成する追加の権限を OpenShift Cluster Manager に付与します。これを使用すると、OpenShift Cluster Manager が必要なリソースを作成できるため、ROSA クラスターのデプロイがより迅速になります。
これらのロールの詳細は、ドキュメントの OpenShift Cluster Manager のロールおよび権限 セクションを参照してください。
このチュートリアルでは、最も簡単かつ迅速なアプローチである Admin OpenShift Cluster Manager role を使用します。
サイドバーからコマンドをコピーして Admin OpenShift Cluster Manager role を作成するか、ターミナルに切り替えて次のコマンドを入力します。
$ rosa create ocm-role --mode auto --admin --yes
このコマンドは、OpenShift Cluster Manager ロールを作成し、それを Red Hat アカウントに関連付けます。
出力例
I: Creating ocm role I: Creating role using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-OCM-Role-12561000' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-OCM-Role-12561000' I: Linking OCM role I: Successfully linked role-arn 'arn:aws:iam::000000000000:role/ManagedOpenShift-OCM-Role-12561000' with organization account '1MpZfntsZeUdjWHg7XRgP000000'
- Step 2: User role をクリックします。
17.4.5.4.1. その他の OpenShift Cluster Manager ロール作成オプション
手動モード: AWS CLI コマンドを自分で実行する場合は、モードを
auto
ではなくmanual
と定義します。CLI に AWS コマンドが出力され、関連する JSON ファイルが現在のディレクトリーに作成されます。次のコマンドを使用して、手動モードで OpenShift Cluster Manager ロールを作成します。
$ rosa create ocm-role --mode manual --admin --yes
Basic OpenShift Cluster Manager role: OpenShift Cluster Manager にアカウントへの読み取り専用アクセス権を付与する場合は、Basic OpenShift Cluster Manager role を作成します。この場合、CLI を使用して必要なロール、ポリシー、OIDC プロバイダーを手動で作成する必要があります。
次のコマンドを使用して、Basic OpenShift Cluster Manager role を作成します。
$ rosa create ocm-role --mode auto --yes
17.4.5.5. OpenShift Cluster Manager ユーザーロールの作成
ユーザーロールのドキュメント で定義されているように、ROSA が AWS ID を検証できるようにユーザーロールを作成する必要があります。このロールには権限を付与せず、インストールプログラムアカウントと OpenShift Cluster Manager ロールリソースの間に信頼関係を構築するためにのみ使用します。
次のコマンドを実行して、ユーザーロールがすでに存在するかどうかを確認します。
$ rosa list user-role
次のコマンドを実行してユーザーロールを作成し、それを Red Hat アカウントにリンクします。
$ rosa create user-role --mode auto --yes
出力例
I: Creating User role I: Creating ocm user role using 'arn:aws:iam::000000000000:user/rosa-user' I: Created role 'ManagedOpenShift-User-rosa-user-Role' with ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-User-rosa-user-Role' I: Linking User role I: Successfully linked role ARN 'arn:aws:iam::000000000000:role/ManagedOpenShift-User-rosa-user-Role' with account '1rbOQez0z5j1YolInhcXY000000'
注記前述のように、AWS CLI コマンドを自分で実行する場合は、
--mode manual
を定義します。CLI に AWS コマンドが出力され、関連する JSON ファイルが現在のディレクトリーに作成されます。必ずロールをリンクしてください。- Step 3: Account roles をクリックします。
17.4.5.6. アカウントロールの作成
次のコマンドを実行して、アカウントのロールを作成します。
$ rosa create account-roles --mode auto
- OK をクリックしてサイドバーを閉じます。
17.4.5.7. アカウントの関連付けが成功したことの確認
- Associated AWS infrastructure account ドロップダウンメニューに AWS アカウントが表示されるはずです。自分のアカウントが表示されれば、アカウントの関連付けは成功しています。
- アカウントを選択します。
アカウントのロール ARN が下に入力されて表示されます。
- Next をクリックします。
17.4.5.8. クラスターの作成
このチュートリアルでは、以下を選択してください。
クラスター設定
- Cluster name: <名前を選択\>
- Version: <最新バージョンを選択\>
- Region: <リージョンを選択\>
- Availability: Single zone
- Enable user workload monitoring: オンのまま
- Enable additional etcd encryption: オフのまま
- Encrypt persistent volumes with customer keys: オフのまま
- Next をクリックします。
マシンプールのデフォルト設定はオンのままにします。
デフォルトのマシンプール設定
- Compute node instance type: m5.xlarge - 4 vCPU 16 GiB RAM
- Enable autoscaling: オフ
- Compute node count: 2
- ノードラベルは空白のままにする
- Next をクリックします。
17.4.5.8.1. ネットワーク
- 設定はすべてデフォルト値のままにします。
- Next をクリックします。
- CIDR 範囲のデフォルト値はすべてそのままにしておきます。
- Next をクリックします。
17.4.5.8.2. クラスターのロールおよびポリシー
このチュートリアルでは、Auto を選択したままにしておきます。これにより、クラスターのデプロイメントプロセスが容易かつ迅速になります。
前に Basic OpenShift Cluster Manager role を選択した場合は、手動モードのみを使用できます。Operator ロールと OIDC プロバイダーを手動で作成する必要があります。「クラスターの更新」セクションを完了してクラスターの作成を開始したら、後述の「Basic OpenShift Cluster Manager role」セクションを参照してください。
17.4.5.8.3. クラスターの更新
- このセクションでは、すべてのオプションをデフォルトのままにしておきます。
17.4.5.8.4. クラスターの確認と作成
- クラスター設定の内容を確認します。
- Create cluster をクリックします。
17.4.5.8.5. インストールの進行状況の監視
現在のページに留まり、インストールの進行状況を監視します。所要時間は約 40 分です。
17.4.5.9. Basic OpenShift Cluster Manager Role
前述の手順に従って Admin OpenShift Cluster Manager role を作成した場合は、このセクション全体を 無視してください。OpenShift Cluster Manager によってリソースが作成されます。
前に Basic OpenShift Cluster Manager role を作成した場合は、クラスターのインストールを続行する前に、さらに 2 つの要素を手動で作成する必要があります。
- Operator ロール
- OIDC プロバイダー
17.4.5.9.1. Operator ロールの作成
ポップアップウィンドウに、実行するコマンドが表示されます。
ターミナルのウィンドウからコマンドを実行して、対話モードを起動します。または、簡素化のために、次のコマンドを実行して Operator ロールを作成します。
$ rosa create operator-roles --mode auto --cluster <cluster-name> --yes
出力例
I: Creating roles using 'arn:aws:iam::000000000000:user/rosauser' I: Created role 'rosacluster-b736-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-ingress-operator-cloud-credentials' I: Created role 'rosacluster-b736-openshift-cluster-csi-drivers-ebs-cloud-credent' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cluster-csi-drivers-ebs-cloud-credent' I: Created role 'rosacluster-b736-openshift-cloud-network-config-controller-cloud' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cloud-network-config-controller-cloud' I: Created role 'rosacluster-b736-openshift-machine-api-aws-cloud-credentials' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-machine-api-aws-cloud-credentials' I: Created role 'rosacluster-b736-openshift-cloud-credential-operator-cloud-crede' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-cloud-credential-operator-cloud-crede' I: Created role 'rosacluster-b736-openshift-image-registry-installer-cloud-creden' with ARN 'arn:aws:iam::000000000000:role/rosacluster-b736-openshift-image-registry-installer-cloud-creden'
17.4.5.9.2. OIDC プロバイダーの作成
ターミナルで次のコマンドを実行して OIDC プロバイダーを作成します。
$ rosa create oidc-provider --mode auto --cluster <cluster-name> --yes
出力例
I: Creating OIDC provider using 'arn:aws:iam::000000000000:user/rosauser' I: Created OIDC provider with ARN 'arn:aws:iam::000000000000:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/1tt4kvrr2kha2rgs8gjfvf0000000000'
17.4.6. チュートリアル: Hosted Control Plane (HCP) ガイド
このワークショップでは、Hosted Control Plane (HCP) クラスターを使用するサンプル Red Hat OpenShift Service on AWS (ROSA) をデプロイします。その後、次のチュートリアルでクラスターを使用できます。
チュートリアルの目的
クラスター作成の前提条件を学習します。
- サンプル Virtual Private Cloud (VPC) の作成
- サンプル OpenID Connect (OIDC) リソースの作成
- サンプル環境変数を作成します。
- サンプル ROSA クラスターをデプロイします。
前提条件
- ROSA バージョン 1.2.31 以降
- Amazon Web Services (AWS) コマンドラインインターフェイス (CLI)
-
ROSA CLI (
rosa
)
17.4.6.1. クラスター作成の前提条件
ROSA with HCP クラスターをデプロイするには、VPC リソースと OIDC リソースの両方が必要です。そのため、最初にこれらのリソースを作成します。ROSA は、独自の VPC (BYO-VPC) モデルを使用します。
17.4.6.1.1. VPC の作成
AWS CLI (
aws
) が、ROSA が利用可能なリージョンを使用するように設定されていることを確認します。次のコマンドを実行して、AWS CLI でサポートされているリージョンを確認します。$ rosa list regions --hosted-cp
VPC を作成します。このチュートリアルでは、次の スクリプト で VPC とその必須コンポーネントを作成します。
aws
CLI で設定されたリージョンを使用します。#!/bin/bash set -e ########## # This script will create the network requirements for a ROSA cluster. This will be # a public cluster. This creates: # - VPC # - Public and private subnets # - Internet Gateway # - Relevant route tables # - NAT Gateway # # This will automatically use the region configured for the aws cli # ########## VPC_CIDR=10.0.0.0/16 PUBLIC_CIDR_SUBNET=10.0.1.0/24 PRIVATE_CIDR_SUBNET=10.0.0.0/24 # Create VPC echo -n "Creating VPC..." VPC_ID=$(aws ec2 create-vpc --cidr-block $VPC_CIDR --query Vpc.VpcId --output text) # Create tag name aws ec2 create-tags --resources $VPC_ID --tags Key=Name,Value=$CLUSTER_NAME # Enable dns hostname aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames echo "done." # Create Public Subnet echo -n "Creating public subnet..." PUBLIC_SUBNET_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block $PUBLIC_CIDR_SUBNET --query Subnet.SubnetId --output text) aws ec2 create-tags --resources $PUBLIC_SUBNET_ID --tags Key=Name,Value=$CLUSTER_NAME-public echo "done." # Create private subnet echo -n "Creating private subnet..." PRIVATE_SUBNET_ID=$(aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block $PRIVATE_CIDR_SUBNET --query Subnet.SubnetId --output text) aws ec2 create-tags --resources $PRIVATE_SUBNET_ID --tags Key=Name,Value=$CLUSTER_NAME-private echo "done." # Create an internet gateway for outbound traffic and attach it to the VPC. echo -n "Creating internet gateway..." IGW_ID=$(aws ec2 create-internet-gateway --query InternetGateway.InternetGatewayId --output text) echo "done." aws ec2 create-tags --resources $IGW_ID --tags Key=Name,Value=$CLUSTER_NAME aws ec2 attach-internet-gateway --vpc-id $VPC_ID --internet-gateway-id $IGW_ID > /dev/null 2>&1 echo "Attached IGW to VPC." # Create a route table for outbound traffic and associate it to the public subnet. echo -n "Creating route table for public subnet..." PUBLIC_ROUTE_TABLE_ID=$(aws ec2 create-route-table --vpc-id $VPC_ID --query RouteTable.RouteTableId --output text) aws ec2 create-tags --resources $PUBLIC_ROUTE_TABLE_ID --tags Key=Name,Value=$CLUSTER_NAME echo "done." aws ec2 create-route --route-table-id $PUBLIC_ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --gateway-id $IGW_ID > /dev/null 2>&1 echo "Created default public route." aws ec2 associate-route-table --subnet-id $PUBLIC_SUBNET_ID --route-table-id $PUBLIC_ROUTE_TABLE_ID > /dev/null 2>&1 echo "Public route table associated" # Create a NAT gateway in the public subnet for outgoing traffic from the private network. echo -n "Creating NAT Gateway..." NAT_IP_ADDRESS=$(aws ec2 allocate-address --domain vpc --query AllocationId --output text) NAT_GATEWAY_ID=$(aws ec2 create-nat-gateway --subnet-id $PUBLIC_SUBNET_ID --allocation-id $NAT_IP_ADDRESS --query NatGateway.NatGatewayId --output text) aws ec2 create-tags --resources $NAT_IP_ADDRESS --resources $NAT_GATEWAY_ID --tags Key=Name,Value=$CLUSTER_NAME sleep 10 echo "done." # Create a route table for the private subnet to the NAT gateway. echo -n "Creating a route table for the private subnet to the NAT gateway..." PRIVATE_ROUTE_TABLE_ID=$(aws ec2 create-route-table --vpc-id $VPC_ID --query RouteTable.RouteTableId --output text) aws ec2 create-tags --resources $PRIVATE_ROUTE_TABLE_ID $NAT_IP_ADDRESS --tags Key=Name,Value=$CLUSTER_NAME-private aws ec2 create-route --route-table-id $PRIVATE_ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --gateway-id $NAT_GATEWAY_ID > /dev/null 2>&1 aws ec2 associate-route-table --subnet-id $PRIVATE_SUBNET_ID --route-table-id $PRIVATE_ROUTE_TABLE_ID > /dev/null 2>&1 echo "done." # echo "***********VARIABLE VALUES*********" # echo "VPC_ID="$VPC_ID # echo "PUBLIC_SUBNET_ID="$PUBLIC_SUBNET_ID # echo "PRIVATE_SUBNET_ID="$PRIVATE_SUBNET_ID # echo "PUBLIC_ROUTE_TABLE_ID="$PUBLIC_ROUTE_TABLE_ID # echo "PRIVATE_ROUTE_TABLE_ID="$PRIVATE_ROUTE_TABLE_ID # echo "NAT_GATEWAY_ID="$NAT_GATEWAY_ID # echo "IGW_ID="$IGW_ID # echo "NAT_IP_ADDRESS="$NAT_IP_ADDRESS echo "Setup complete." echo "" echo "To make the cluster create commands easier, please run the following commands to set the environment variables:" echo "export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID" echo "export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID"
関連情報
- VPC 要件の詳細は、VPC のドキュメント を参照してください。
スクリプトはコマンドを出力します。後で使用するためにサブネット ID を保存するには、コマンドを環境変数として設定します。以下のコマンドをコピーして実行します。
$ export PUBLIC_SUBNET_ID=$PUBLIC_SUBNET_ID $ export PRIVATE_SUBNET_ID=$PRIVATE_SUBNET_ID
次のコマンドを実行して、環境変数を確認します。
$ echo "Public Subnet: $PUBLIC_SUBNET_ID"; echo "Private Subnet: $PRIVATE_SUBNET_ID"
出力例
Public Subnet: subnet-0faeeeb0000000000 Private Subnet: subnet-011fe340000000000
17.4.6.1.2. OIDC 設定の作成
このチュートリアルでは、OIDC 設定を作成するときに自動モードを使用します。また、後で使用できるように、OIDC ID を環境変数として保存します。このコマンドは、ROSA CLI を使用して、クラスターの一意の OIDC 設定を作成します。
次のコマンドを実行して、OIDC 設定を作成します。
$ export OIDC_ID=$(rosa create oidc-config --mode auto --managed --yes -o json | jq -r '.id')
17.4.6.2. 追加の環境変数の作成
環境変数を設定するには、次のコマンドを実行します。これらの変数を使用すると、ROSA クラスターを作成するコマンドの実行が容易になります。
$ export CLUSTER_NAME=<cluster_name> $ export REGION=<VPC_region>
ヒントVPC リージョンを確認するには、
rosa whoami
を実行します。
17.4.6.3. クラスターの作成
オプション: Operator ポリシーや AWS IAM ロールとポリシーを含め、アカウント全体のロールとポリシーを作成するには次のコマンドを実行します。
重要このアカウントで ROSA を 初めて デプロイし、アカウントのロールとポリシーをまだ 作成していない 場合にのみ、この手順を完了してください。
$ rosa create account-roles --mode auto --yes
次のコマンドを実行してクラスターを作成します。
$ rosa create cluster --cluster-name $CLUSTER_NAME \ --subnet-ids ${PUBLIC_SUBNET_ID},${PRIVATE_SUBNET_ID} \ --hosted-cp \ --region $REGION \ --oidc-config-id $OIDC_ID \ --sts --mode auto --yes
約 10 分後にクラスターの準備が完了します。選択したリージョン内の 3 つの AWS アベイラビリティーゾーンにまたがるコントロールプレーンがクラスターに作成され、AWS アカウントに 2 つのワーカーノードが作成されます。
17.4.6.4. インストールステータスの確認
次のコマンドのいずれかを実行して、クラスターのステータスを確認します。
クラスターのステータスの詳細を表示するには、次のコマンドを実行します。
$ rosa describe cluster --cluster $CLUSTER_NAME
クラスターのステータスの概要を表示するには、次のコマンドを実行します。
$ rosa list clusters
ログの進行状況を監視するには、次を実行します。
$ rosa logs install --cluster $CLUSTER_NAME --watch
- 状態が “ready” に変われば、クラスターのインストールは完了です。ワーカーノードがオンラインになるまでにさらに数分かかる場合があります。