2.4.3. クラスタリングとキャッシュ設定の移行
Red Hat Single Sign-On 7.6 は、サーバーをスタンドアロン、スタンドアロンクラスター、およびドメインクラスターとして実行するための個別の動作モードを備えていました。これらのモードは、起動スクリプトと設定ファイルが異なります。Red Hat build of Keycloak では、単一の起動スクリプト kc.sh を使用したシンプルな方法を利用できます。
サーバーをスタンドアロンまたはクラスター化されたスタンドアロンとして実行するには、kc.sh スクリプトを使用します。
| Red Hat build of Keycloak | Red Hat Single Sign-On 7.6 |
|---|---|
| ./kc.sh start --cache=local | ./standalone.sh |
| ./kc.sh start [--cache=ispn] | ./standalone.sh --server-config=standalone-ha.xml |
--cache パラメーターのデフォルト値は、起動モードを認識します。
-
local- start-dev コマンドの実行時 -
ispn- start コマンドの実行時
Red Hat Single Sign-On 7.6 では、クラスタリングとキャッシュの設定を Infinispan サブシステムを通じて行っていました。一方、Red Hat build of Keycloak では、設定の大部分を、別の Infinispan 設定ファイルを通じて行います。たとえば、Infinispan の以前の設定として、次のようなものがあるとします。
<subsystem xmlns="urn:jboss:domain:infinispan:13.0">
<cache-container name="keycloak" marshaller="JBOSS" modules="org.keycloak.keycloak-model-infinispan">
<local-cache name="realms">
<heap-memory size="10000"/>
</local-cache>
<local-cache name="users">
<heap-memory size="10000"/>
</local-cache>
<local-cache name="sessions"/>
<local-cache name="authenticationSessions"/>
<local-cache name="offlineSessions"/>
...
</cache-container>
</subsystem>
最も関連性の高い設定オプションが、設定オプションとして利用できます。たとえば、オプション cache-embedded-realms-max-count を使用して、レルムキャッシュ内のエントリーの最大数を設定します。
ドメインクラスターモードは、Red Hat build of Keycloak ではサポートされていません。
トランスポートスタック
デフォルトのトランスポートスタックは jdbc-ping になりました。これは、データベースを利用して他のノードを検出し、トランスポートとして TCP を使用して、TLS 経由で自動的に暗号化します。これは、クラウド環境でも非クラウド環境でも問題なく動作します。
kubernetes 以外の他のすべてのトランスポートスタックは、26.2 で非推奨になりました。26.4 の時点で、kubernetes も非推奨になりました。キャッシュ設定を jdbc-ping に移行する必要があります。
Red Hat ビルドの Keycloak が正しいインターフェイスにバインドされるように、jgroups.bind.address システムプロパティーを設定することを推奨します。透過ネットワークがない環境では、システムプロパティー jgroups.external_port および jgroups.external_addr を設定し、他のノードから Red Hat build of Keycloak ノードにアクセスする方法を指定します。