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」を参照してください。

前提条件

  1. AWS CLI のインストール

  2. OpenTofu のインストール

  3. ROSA インストールガイドに概説されている手順を実行します

    1. AWS アカウントで ROSA サービスを有効にする

    2. ROSA コマンドラインツールをダウンロードしてインストールする

    3. Elastic Load Balancer のサービスリンクロールを作成する

    4. Red Hat アカウントトークンで ROSA CLI にログインし、AWS アカウントロールとポリシーを作成する

    5. 資格情報とクォータを確認する

インストール

インストールプロセスは、環境変数からパラメータを取得する `provision/aws` フォルダーの `rosa_create_cluster.sh` スクリプトで自動化されています。

`aws/` ディレクトリ内の `.env` ファイルにプリセットされた環境変数をロードします。

スクリプトは `rosa create cluster` コマンドを介して OpenShift クラスターを作成し、さらに必要なオペレーターロールと OIDC プロバイダーを作成します。インストールプロセスが完了すると、新しい管理者ユーザーを作成します。

`.env` ファイルの例
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

デフォルトの OpenShift ワーカーマシンプールの AWS インスタンスタイプ

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 のセットアップには、次のドキュメントが使用されています

管理者ユーザーパスワードのローテーション

管理者ユーザーパスワードは、`rosa_rotate_admin_password.sh` スクリプトを介してローテーションできます。既存のクラスターの管理者パスワードは更新されないことに注意してください。新しいパスワードは、対応する `CLUSTER_NAME` 変数を持つスクリプト `rosa_recreate_admin.sh` を使用して適用できます。

アンインストール

アンインストールは、`rosa_delete_cluster.sh` スクリプトによって処理されます。

唯一の必須パラメータは `CLUSTER_NAME` です。

さらに、クラスターのオペレーターロールと OIDC プロバイダー、および管理者ユーザーを削除します。