10.3. トポロジー対応データディストリビューション
ネットワークトポロジーを認識するように Red Hat build of Keycloak を設定すると、ハードウェアに障害が発生した場合にデータの可用性が向上します。Infinispan はデータを正しく分散できるためです。たとえば、num_owners=2 がキャッシュ用に設定されている場合は、2 つの所有者が可能な場合は同じノードに保存されないようにします。
デフォルトでは、ユーザーおよびクライアントのセッションはデータベースに安全に保存され、これらの設定による影響はありません。残りの分散キャッシュはこの設定の影響を受けます。
以下のトポロジー情報を設定できます。
- site name
Red Hat build of Keycloak クラスターが異なるデータセンター間でデプロイされている場合は、このオプションを使用して、データレプリカが別のデータセンターに保存されているようにします。データセンターがオフラインまたは失敗した場合にデータの損失を防ぎます。
SPI オプション
spi-cache-embedded-default-site-name(または環境変数KC_SPI_CACHE_EMBEDDED__DEFAULT__SITE_NAME)を使用します。値自体は重要ではありませんが、各データセンターには一意の値が必要です。例:
--spi-cache-embedded-default-site-name=site-1- ラック名
Red Hat build of Keycloak クラスターがデータセンターの異なるラックで実行されている場合は、データレプリカが別の物理ラックに保存されるようにこのオプションを設定します。ラックが突然切断されている場合や失敗した場合にデータの損失を防ぎます。
SPI オプション
spi-cache-embedded-default -rack-name(または環境変数KC_SPI_CACHE_EMBEDDED__DEFAULT__RACK_NAME)を使用します。値自体は重要ではありませんが、各ラックには一意の値が必要です。例:
--spi-cache-embedded-default-rack-name=rack-1- マシン名
(仮想マシンやコンテナーなどを使用して)同じ物理マシン上で複数の Red Hat build of Keycloak インスタンスを実行している場合は、このオプションを使用してデータレプリカが異なる物理マシンに保存されるようにします。これにより、物理マシン障害に対するデータ損失を防ぐことができます。
SPI オプション
spi-cache-embedded-default -name(または環境変数KC_SPI_CACHE_EMBEDDED__DEFAULT__MACHINE_NAME)を使用します。値自体は重要ではありませんが、各マシンには一意の値が必要です。例:
--spi-cache-embedded-default-machine-name=machine-1注記Red Hat build of Keycloak Operator は、Kubernetes ノードに基づいてマシン名を自動的に設定します。複数の Pod が同じノードにスケジュールされる場合でも、データレプリカは可能な場合に依然として異なるノードに複製されます。非アフィニティールールやトポロジー分散制約を設定して、複数の Pod が同じノードにスケジュールされないようにすることが推奨されます。これにより、単一ノードに障害が発生するリスクがさらに軽減されます。