Подключение внешнего 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