Подключение внешнего Infinispan#

Для подключения внешнего Infinispan назначения ролей компонента не требуется, так как Infinispan входит в состав сервера приложений.

Для подключения внешнего Infinispan для поддержки режима работы HA (High Availability) Keycloak необходимо прописать в DockerFile или docker-compose следующие параметры:

INFINISPAN: "true
HA_SITE: "пропишите адрес вашего service-headless"
KEYCLOAK_REMOTE_ISPN_TRUSTSTORE_PATH: /opt/jboss/ispn/keystore.jks
KEYCLOAK_REMOTE_ISPN_TRUSTSTORE_PASSWORD: some password
HA_KEYCLOAK_CONNECTIONS_INFINISPAN_DEFAULT_REMOTESTORESECURITYENABLED: "true"

Установка сертификата безопасности#

Задайте путь к server key хранилищу, как в следующем примере:

$ bin/cli.sh config set truststore /home/user/my-trust-store.jks <br/>

Задайте пароль к key store хранилищу, если необходимо, следующим образом:

$ bin/cli.sh config set truststore-password secret

Проверьте конфигурацию CLI скриптов:

$ bin/cli.sh config get truststore

truststore=/home/user/my-trust-store.jks

$ bin/cli.sh config get truststore-password truststore-password=secret

Запуск Infinispan в Cross DC режиме#

В данном разделе приведены рекомендации для запуска Infinispan в режиме cross-DC:

  • Когда вы запускаете сервер Keycloak внутри центра обработки данных, необходимо, чтобы база данных, указанная в источнике данных KeycloakDS, уже работала и была доступна в этом центре обработки данных. Также необходимо, чтобы сервер Infinispan, на который ссылается привязка исходящего сокета, на которую ссылается элемент удаленного хранилища кэша Infinispan, уже работал. В противном случае сервер Keycloak не запустится.

  • В каждом центре обработки данных может быть больше узлов базы данных, если вы хотите поддерживать отказоустойчивость базы данных и повышать надежность. Обратитесь к документации вашей базы данных и драйвера JDBC для получения подробной информации о том, как настроить это на стороне базы данных и как нужно настроить источник данных KeycloakDS на стороне Keycloak.

  • В каждом центре обработки данных может быть больше серверов Infinispan, работающих в кластере. Это полезно, если вы хотите получить отказоустойчивость и повысить отказоустойчивость. Протокол Hot Rod, используемый для связи между серверами Infinispan и серверами Keycloak, имеет функцию, заключающуюся в том, что серверы Infinispan автоматически отправляют новую топологию на серверы Keycloak об изменении в кластере Infinispan, поэтому удаленное хранилище на стороне Keycloak будет знать, на каких серверах Infinispan он можно подключиться. Прочтите документацию Infinispan и WildFly для получения более подробной информации.

  • Настоятельно рекомендуется, чтобы главный сервер Infinispan работал на каждом сайте до того, как будут запущены серверы Keycloak на любом сайте. Например, сначала запустили как server1, так и server2, перед всеми серверами Keycloak. Если вам по-прежнему нужно запустить сервер Keycloak, а сайт резервного копирования отключен, рекомендуется вручную переключить сайт резервного копирования в автономный режим на серверах Infinispan на вашем сайте. Если вы не переключите недоступный сайт вручную в автономный режим, при первом запуске может произойти сбой или могут возникнуть некоторые исключения во время запуска, пока резервный сайт не будет автоматически переведен в автономный режим из-за настроенного количества неудачных операций.

Cross-DC режим может быть реализован посредством создания образа сервера Infinispan и дальнейшего развертывания на сервере Kubernetes, ссылка на официальный сайт:

https://infinispan.org/docs/dev/titles/server/server.html