Aurora DB、Infinispan、Keycloak を用いたクロスサイトデプロイメント
Infinispan (クロスサイト有効) と共有 Aurora DB を使用して、2 つの ROSA クラスター間に Keycloak をデプロイします。
この手順では、Aurora DB がまだ存在しない場合は作成し、ROSA クラスターが Aurora DB インスタンスにアクセスできるように AWS VPC と AWS ルートテーブルを構成します。
Infinispan と Keycloak は両方とも同じ名前空間にデプロイされます。
インストール手順
-
Git リポジトリを https://github.com/keycloak/keycloak-benchmark/ からチェックアウトしてください。
-
ROSA のロードバランサーとしての AWS Route 53 で説明されているように、Route53 エントリを作成します。
-
フォルダ
provision/rosa-cross-dc
に移動します。 -
フォルダ内の
.env
ファイルに 必須変数 を指定します。 -
task
コマンドを実行して、両方の OpenShift クラスター上のすべてのコンテナをプロビジョニングします (必須変数を以下で確認してください)。
利用可能なタスク
2 つのタスクが利用可能です。1 つはデプロイ、もう 1 つはアンデプロイです。
task: Available tasks for this project:
* default: Deploys Infinispan, Aurora DB and Keycloak in a Cross-Site deployment using ROSA clusters
* undeploy: Undeploy Infinispan and Keycloak in a Cross-Site deployment using ROSA clusters
undeploy タスクは Aurora DB を削除せず、手動で削除する必要があります。ディレクトリ provision/aws/rds のスクリプトを確認してください。 |
必須変数
変数 | 詳細 |
---|---|
AURORA_CLUSTER |
Aurora データベースの一意の名前。 |
AURORA_REGION |
Aurora DB をデプロイする AWS リージョン。 |
ROSA_CLUSTER_NAME_1 |
1 つの ROSA クラスターの名前。 |
ROSA_CLUSTER_NAME_2 |
もう 1 つの ROSA クラスターの名前。 |
KC_CLIENT_URL |
ROSA のロードバランサーとしての AWS Route 53 によって提供される URL |
KC_HEALTH_URL_CLUSTER_1 |
ROSA のロードバランサーとしての AWS Route 53 によって提供される URL |
KC_HEALTH_URL_CLUSTER_2 |
ROSA のロードバランサーとしての AWS Route 53 によって提供される URL |
Aurora DB、Keycloak、または Infinispan のデプロイメントをカスタマイズします。
このインストールスクリプトは、元のデプロイメントスクリプトで定義されたほとんどの変数をサポートしています。
Aurora DB 変数については、Aurora インストール ページを確認してください。
Infinispan デプロイメントについては、Infinispan インストール ページを確認してください。
Keycloak デプロイメントについては、Keycloak カスタマイズ ページを確認してください。すべての変数が尊重されるわけではないことに注意してください。例として、KC_ISPN_NAMESPACE
はこのインストールスクリプトによって自動的に計算されるため、変更できません。
Keycloak ソースのカスタマイズ
このセットアップは、デフォルトで、ナイトリービルドから Keycloak をデプロイします。特定の Keycloak ソースコードのデプロイメントを作成するには、git リポジトリとブランチを指定できます。これにより、Keycloak と Keycloak Operator の両方のデプロイメントが置き換えられます。カスタムソースコードを使用するには、次の変数を指定してください
変数 | 詳細 |
---|---|
KC_REPOSITORY |
Keycloak ソースコードをクローンする Git リポジトリ。例: https://github.com/keycloak/keycloak.git 注: SSH キーが構成されていない可能性があるため、SSH リポジトリは Github Actions で動作しない場合があります。 |
KC_BRANCH |
使用する |
AWS JDBC ドライバーの使用
AWS は、セットアップで使用している Aurora PostgreSQL と互換性のある JDBC ドライバーラッパー を提供しています。このドライバーは、互換性のあるデータベースを使用する場合にいくつかの追加機能を提供します。このラッパーは、クロスサイトデプロイメントでデフォルトで有効になっています。
AWS JDBC ドライバーを無効にするには、KC_USE_AWS_JDBC_WRAPPER
変数を false
に設定します。
AWS JDBC ドライバーのバージョンを指定するには、KC_AWS_JDBC_WRAPPER_URL
変数を対応する jar ファイルの URL に設定します。
警告 / 既知の問題
-
ROSA クラスターの作成中に、孤立した DHCP オプションセットがいくつか作成される場合があることがわかっています。bash スクリプトを使用してそれらを監視およびクリーンアップできます。詳細については、ROSA クラスターの作成から孤立した DHCP オプションをクリーンアップする方法 を参照してください。