AWS への OpenShift のインストール
Red Hat OpenShift Service on AWS (ROSA) は、Keycloak を実行するための OpenShift インスタンスを提供します。
概要
このモジュールは、ROSA インストールガイドで説明されているように、ROSA ツールを介して AWS で OpenShift クラスターをプロビジョニングするタスクを自動化することを目的としています。スクリプトは、このリポジトリの `provision/aws` フォルダーにあります。
また、EFS をストレージクラス `efs-sc` を持つ ReadWriteMany PersistentVolumeClaims のストレージプロバイダーとしてインストールします。詳細については、「AWS Elastic File Service as ReadWriteMany storage」を参照してください。
前提条件
-
ROSA インストールガイドに概説されている手順を実行します
-
AWS アカウントで ROSA サービスを有効にする
-
ROSA コマンドラインツールをダウンロードしてインストールする
-
Elastic Load Balancer のサービスリンクロールを作成する
-
Red Hat アカウントトークンで ROSA CLI にログインし、AWS アカウントロールとポリシーを作成する
-
資格情報とクォータを確認する
-
インストール
インストールプロセスは、環境変数からパラメータを取得する `provision/aws` フォルダーの `rosa_create_cluster.sh` スクリプトで自動化されています。
`aws/` ディレクトリ内の `.env` ファイルにプリセットされた環境変数をロードします。
スクリプトは `rosa create cluster` コマンドを介して OpenShift クラスターを作成し、さらに必要なオペレーターロールと OIDC プロバイダーを作成します。インストールプロセスが完了すると、新しい管理者ユーザーを作成します。
CLUSTER_NAME=rosa-kcb VERSION=4.13.8 REGION=eu-central-1 COMPUTE_MACHINE_TYPE=c7g.2xlarge MULTI_AZ=false REPLICAS=3
構成で `ADMIN_PASSWORD` が提供されていない場合、AWS Secrets Manager から読み取ります。
必須パラメータ
VERSION
-
OpenShift クラスターバージョン。
REGION
-
クラスターが実行される AWS リージョン。
COMPUTE_MACHINE_TYPE
REPLICAS
-
ワーカーノードの数。マルチ AZ インストールが選択されている場合、これはリージョンで利用可能な AZ の数の倍数である必要があります。たとえば、リージョンに 3 つの AZ がある場合、レプリカは 3 の倍数に設定する必要があります。
リージョン内の AZ について調べるには、次のコマンドを使用します
aws ec2 describe-availability-zones --region region-name
オプションパラメータ
CLUSTER_NAME
-
クラスターの名前。設定されていない場合、`$(whoami)` コマンドの値が使用されます。
ADMIN_PASSWORD
-
`cluster-admin` ユーザーのパスワード。設定されていない場合、`KEYCLOAK_MASTER_PASSWORD_SECRET_NAME` パラメータと等しい AWS Secrets Manager シークレットから取得されます。
KEYCLOAK_MASTER_PASSWORD_SECRET_NAME
-
`cluster-admin` ユーザーのパスワードを含む AWS Secrets Manager シークレットの名前。デフォルトは `keycloak-master-password`。
URL の検索
既存のクラスターとその URL について調べるには、次のコマンドを使用します
rosa list clusters
rosa describe cluster -c cluster-name
管理者ユーザーの再作成
上記のインストールスクリプトは管理者ユーザーを自動的に作成しますが、ユーザーを再作成する必要がある場合は、`rosa_recreate_admin.sh` スクリプトを使用して、`CLUSTER_NAME` とオプションで `ADMIN_PASSWORD` パラメータを指定して実行できます。
クラスターのノードのオンデマンドスケーリング
ノードの標準セットアップは、負荷テストを実行するには小さすぎる可能性があり、同時に異なるインスタンスタイプを使用し、クラスターを再構築するには多くの時間 (約 45 分) がかかります。クラスターをオンデマンドでスケールするには、標準セットアップには `c7g.2xlarge` タイプのインスタンスを持つ `scaling` という名前のマシンプールがあり、現在の需要に基づいて 4 から 15 インスタンスに自動スケーリングされます。ただし、ワーカーノードの自動スケーリングは、ノードが 1 つずつスケーリングされるため、非常に時間がかかります。
異なるインスタンスタイプを使用するには、`rosa create machinepool` を使用して追加のマシンプールを作成します
ReadWriteMany ストレージとしての AWS Elastic File Service
このセットアップでは、EFS をストレージクラス `efs-sc` を持つ ReadWriteMany PersistentVolumeClaims のストレージプロバイダーとしてインストールします。
`rosa_efs_create.sh` および `rosa_efs_delete.sh` スクリプトを使用すると、EFS 構成を追加および削除できます。これらは、それぞれ `rosa_create_cluster.sh` および `rosa_delete_cluster.sh` から呼び出されることを意図しています。
スクリプトが完了した場合でも、PVC の DNS がマウントポイントの新しい IP アドレスを認識するまでしばらく時間がかかる場合があります。それまでの間、「サーバー file-system-id.efs.aws-region.amazonaws.com の解決に失敗しました」のようなエラーメッセージが表示される場合があります。
EFS のセットアップには、次のドキュメントが使用されています