15.2. 手順
15.2.1. Data Grid クラスター
この章のコンテキストでは、site-a
が現在アクティブなサイトです。site-b
は AWS Global Accelerator EndpointGroup の一部ではないため、ユーザーリクエストを受信しないオフラインサイトです。
状態転送を実行すると、応答時間やリソースの使用量が増加し、Data Grid クラスターのパフォーマンスに影響が及ぶ可能性があります。
最初の手順として、オフラインサイトから古いデータを削除します。
- オフラインサイトにログインします。
Red Hat build of Keycloak をシャットダウンします。これにより、Red Hat build of Keycloak のキャッシュがすべてクリアされ、Red Hat build of Keycloak の状態と Data Grid との同期ずれが防止されます。
Red Hat build of Keycloak Operator を使用して Red Hat build of Keycloak をデプロイした場合、Red Hat build of Keycloak カスタムリソース内の Red Hat build of Keycloak インスタンスの数を 0 に変更します。
Data Grid CLI ツールを使用して Data Grid クラスターに接続します。
コマンド:
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
Data Grid クラスターのユーザー名とパスワードが要求されます。これらの認証情報は、Data Grid Operator を使用した HA 用の Data Grid のデプロイ の章にある認証情報の設定セクションで設定したものです。
出力:
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
注記Pod 名は、Data Grid CR で定義したクラスター名によって異なります。接続は、Data Grid クラスター内の任意の Pod で行うことができます。
次のコマンドを実行して、オフラインサイトからアクティブサイトへのレプリケーションを無効にします。これにより、クリアリクエストがアクティブサイトに到達してキャッシュされた正しいデータがすべて削除されるのを防ぎます。
コマンド:
site take-offline --all-caches --site=site-a
出力:
{ "authenticationSessions" : "ok", "work" : "ok", "loginFailures" : "ok", "actionTokens" : "ok" }
レプリケーションのステータスが
offline
であることを確認します。コマンド:
site status --all-caches --site=site-a
出力:
{ "status" : "offline" }
ステータスが
offline
でない場合は、前のステップを繰り返します。警告レプリケーションが
offline
あることを確認してください。そうでない場合、クリアデータによって両方のサイトがクリアされます。次のコマンドを使用して、オフラインサイトのキャッシュデータをすべてクリアします。
コマンド:
clearcache actionTokens clearcache authenticationSessions clearcache loginFailures clearcache work
これらのコマンドは何も出力しません。
オフラインサイトからアクティブサイトへのクロスサイトレプリケーションを再度有効にします。
コマンド:
site bring-online --all-caches --site=site-a
出力:
{ "authenticationSessions" : "ok", "work" : "ok", "loginFailures" : "ok", "actionTokens" : "ok" }
レプリケーションのステータスが
online
であることを確認します。コマンド:
site status --all-caches --site=site-a
出力:
{ "status" : "online" }
これで、アクティブサイトからオフラインサイトに状態を転送する準備が整いました。
- アクティブサイトにログインします。
Data Grid CLI ツールを使用して Data Grid クラスターに接続します。
コマンド:
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
Data Grid クラスターのユーザー名とパスワードが要求されます。これらの認証情報は、Data Grid Operator を使用した HA 用の Data Grid のデプロイ の章にある認証情報の設定セクションで設定したものです。
出力:
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
注記Pod 名は、Data Grid CR で定義したクラスター名によって異なります。接続は、Data Grid クラスター内の任意の Pod で行うことができます。
アクティブサイトからオフラインサイトへの状態転送をトリガーします。
コマンド:
site push-site-state --all-caches --site=site-b
出力:
{ "authenticationSessions" : "ok", "work" : "ok", "loginFailures" : "ok", "actionTokens" : "ok" }
すべてのキャッシュのレプリケーションステータスが
online
であることを確認します。コマンド:
site status --all-caches --site=site-b
出力:
{ "status" : "online" }
すべてのキャッシュに対する
push-site-status
コマンドの出力を確認して、状態転送が完了するまで待ちます。コマンド:
site push-site-status --cache=actionTokens site push-site-status --cache=authenticationSessions site push-site-status --cache=loginFailures site push-site-status --cache=work
出力:
{ "site-b" : "OK" } { "site-b" : "OK" } { "site-b" : "OK" } { "site-b" : "OK" }
考えられるステータス値は、クロスサイトドキュメントのこのセクション にある表を参照してください。
エラーが報告された場合は、その特定のキャッシュに対して状態転送を再度実行します。
コマンド:
site push-site-state --cache=<cache-name> --site=site-b
以下のコマンドで状態転送ステータスをクリア/リセットします。
コマンド:
site clear-push-site-status --cache=actionTokens site clear-push-site-status --cache=authenticationSessions site clear-push-site-status --cache=loginFailures site clear-push-site-status --cache=work
出力:
"ok" "ok" "ok" "ok"
これで、オフラインサイトで状態が使用できるようになりました。Red Hat build of Keycloak を再度起動できます。
- セカンダリーサイトにログインします。
Red Hat build of Keycloak を起動します。
Red Hat build of Keycloak Operator を使用して Red Hat build of Keycloak をデプロイした場合、Red Hat build of Keycloak カスタムリソース内の Red Hat build of Keycloak インスタンスの数を元の値に変更します。
15.2.2. AWS Aurora データベース
アクションは不要です。
15.2.3. AWS Global Accelerator
2 つのサイトが同期されると、サイトをオンラインにする の章で説明されている手順を実行して、オフラインだったサイトを Global Accelerator EndpointGroup に安全に追加できます。