Установка сервиса аутентификации
Важное примечание:
Все пароли и ключи в этом разделе приведены в иллюстративных целях.
При реальной установке рекомендуется использовать более сложные и надёжные пароли.
1. Перед установкой
-
По возможности познакомьтесь с:
-
Убедитесь, что выполнены необходимые предварительные шаги:
-
Соберите необходимые данные, заданные или полученные на предыдущих шагах:
Объект Значение Как получить значение Эндпоинт зеркала реестра Docker в приватной сети docker.storage.example.local:5000
См. Получение артефактов установки Секрет Kubernetes для доступа к эндпоинту зеркала реестра Docker onpremise-registry-creds
См. Получение артефактов установки -
Убедитесь, что удовлетворены требования к ресурсам, приведенные в Helm-чарте для установки сервиса. Подробнее о том, как это сделать, смотрите в документе Системные требования.
Примечание
Содержание Helm-чарта, описанное в данном разделе, актуально для последней версии On-Premise (см. Релизы). Чтобы изучить параметры для более ранних версий, откройте values.yaml в GitHub и введите номер нужной версии комплекса (например, 1.18.0) в переключателе тегов слева.
-
Определите доменные имена для сервиса аутентификации.
Пример:
- Веб-интерфейс администратора:
keycloak.example.com
- Веб-интерфейс администратора:
2. Подготовьте инфраструктуру, необходимую для работы сервисов
Настройка PostgreSQL
Разместите кластер PostgreSQL с доменным именем keyсloak-postgresql.storage.example.local
в приватной сети. В этом руководстве предполагается, что кластер работает на стандартном порту 5432
.
Настройте кластер PostgreSQL для использования в качестве хранилища:
-
Подключитесь к кластеру от имени суперпользователя (обычно это
postgres
). -
Создайте пользователя базы данных, который будет использоваться для сервиса. Установите пароль для него.
create user dbuser_keycloak password '650D7AmZjSR1dkNa';
-
Создайте базу данных, принадлежащую этому пользователю.
create database onpremise_keycloak owner dbuser_keycloak;
3. Установите сервис аутентификации Keycloak
-
Создайте конфигурационный файл для Helm. Подробное описание доступных параметров см. здесь.
Пример файла уже заполнен всеми необходимыми данными, собранными на предыдущих этапах.
values-keycloak.yaml
dgctlDockerRegistry: docker.storage.example.local:5000 imagePullSecrets: - name: onpremise-registry-creds imagePullPolicy: IfNotPresent replicaCount: 2 postgres: host: keycloak-postgresql.storage.example.local port: 5432 name: onpremise_keycloak username: dbuser_keycloak password: TZ3CYljrlNDrnP5fIpjoWPBCzejQ5qJEUNr9WiplRHyNksdhN1GsVrS90d9HQhhp auth: adminUser: keycloak adminPassword: GsVrS90d9HQhhp defaultUser: enabled: true name: test email: test@test.com password: JEUNr9WiplRH ingress: enabled: true className: nginx annotations: nginx.ingress.kubernetes.io/affinity: cookie nginx.ingress.kubernetes.io/session-cookie-expires: '86400' nginx.ingress.kubernetes.io/session-cookie-max-age: '86400' nginx.ingress.kubernetes.io/session-cookie-name: keycloak nginx.ingress.kubernetes.io/proxy-buffer-size: '128k' hosts: - host: keycloak.example.com paths: - path: / pathType: Prefix tls: - hosts: - keycloak.example.com secretName: secret.tls
Где:
-
dgctlDockerRegistry
: эндпоинт вашего реестра Docker, в котором находятся образы сервисов программного комплекса On-Premise. -
imagePullSecrets
: Kubernetes Secrets для доступа к реестру Docker, в котором находятся образы сервисов программного комплекса 2ГИС.name
: имя секрета.
-
imagePullPolicy
: порядок загрузки образа из репозитория.IfNotPresent
(рекомендовано) – загрузка выполняется, если нет актуального образа. -
replicaCount
: количество подов сервиса. Рекомедуемое количество – 2. -
postgres
: настройки доступа к серверу PostgreSQL.host
: имя хоста или IP-адрес сервера.port
: порт, на котором слушает сервер.name
: имя базы данныхusername
иpassword
: реквизиты для доступа к базе данных, указанной в параметреname
. Пользователь должен быть либо владельцем этой базы данных, либо суперпользователем.
-
auth
: реквизиты суперпользователя для входа в административный интерфейс Keycloak.adminUser
: логин.adminPassword
: пароль.
-
defaultUser
: данные для создания тестового пользователя. Вы можете создавать его не на текущем этапе, а позже, через интерфейс уже развернутой системы – см. инструкцию "Регистрация пользователя". В данном случае заполнять эти настройки не обязательно.enabled
: признак наличия тестового пользователя.name
: имя.email
: email.password
: пароль.
-
ingress
: конфигурация ресурса Ingress. Адаптируйте приведенную конфигурацию для соответствия используемому вами Ingress. URL, указанный в параметреingress.hosts.host
должен быть доступен извне вашего кластера Kubernetes, чтобы пользователи из приватного сегмента сети могли получить доступ к ресурсам по этому URL. Путь для хоста должен указывать на корневую директорию (/
).-
annotations
: настройки Cookies: имя, время жизни. Данный блок настроек нужен для поддержки "липких сессий": если подов два и больше, то они сами находят друг друга и создают кластер. Если под только один, то этот блок настроек не требуется.proxy-buffer-size
: размер буфера прокси. Должен быть задан для предотвращения ошибок 502 при попытке логина.
-
tls
: настройки HTTPS.ingress.tls.hosts.secretName
– сертификат HTTPS, хранящийся в Kubernetes в формате base64.
-
-
-
Установите сервис с помощью Helm, используя подготовленный конфигурационный файл
values-keycloak.yaml
:helm upgrade --install --version=1.27.0 --atomic --values ./values-keycloak.yaml keycloak 2gis-on-premise/keycloak
4. Проверьте работоспособность установленного сервиса
Чтобы проверить работоспособность сервиса аутентификации:
-
Откройте в браузере веб-интерфейс для администрирования сервиса (используйте значение настройки
hosts.host
из конфигурационного файлаvalues-keycloak.yaml
):keycloak.example.com
-
Войдите в веб-интерфейс Keycloak, используя учетные данные пользователя с правами администратора (
auth.adminUser
иauth.adminUser
).
Что дальше?
-
Узнайте, как обновить сервис:
-
Установите продукты программного комплекса 2ГИС: