10.3. トポロジーを考慮したデータ分散
Red Hat build of Keycloak をネットワークトポロジーを認識するように設定すると、Infinispan によってデータが正しく分散されるようになるため、ハードウェア障害が発生した場合でもデータの可用性が向上します。たとえば、キャッシュに num_owners=2 が設定されている場合、可能な場合は 2 人の所有者が同じノードに保存されないようになります。
デフォルトでは、ユーザーセッションとクライアントセッションはデータベースに安全に保存され、これらの設定の影響を受けません。残りの分散キャッシュはこの設定の影響を受けます。
次のトポロジー情報を設定できます。
- サイト名
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—machine-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 が同じノードにスケジュールされるのを防ぎ、シングルノードの障害によってデータ損失が発生するリスクをさらに軽減するために、アンチアフィニティールールやトポロジー拡散制約をセットアップすることを推奨します。