Установка сервисов Batch Tasks и Batch Scheduler на один namespace#
Данная инструкция содержит описание необходимых изменений конфигураций сервисов Batch Tasks и Batch Scheduler для выполнения их установки на один namespace. Установка сервисов на один namespace выполняется последовательно, при этом набор устанавливаемых манифестов для сервисов будет различаться.
Перед развертыванием сервисов Batch на один namespace должны быть выполнены соответствующие пререквизиты установки на разные namespace.
Подробнее в разделах:
Соблюдение последовательности выполнения шагов подготовки и установки сервисов Batch обязательно.
Общая схема процесса развертывания сервисов Batch на один namespace:
Требования к размещению и настройке сертификатов#
При установке сервисов Batch Tasks и Batch Scheduler на один namespace обеспечьте наличие следующих сертификатов обоих сервисов на одном namespace:
Секреты обоих сервисов для доступа к репозиторию с Docker-образами.
Секреты для обоих сервисов для работы с БД через TLS.
Секреты для работы с БД (
tasks_appl_user, scheduler_appl_user) для обоих сервисов.Единый сертификат для работы с OTT.
Подробнее см. в разделе «Настройка OTT».
Единый сертификат для работы с Synapse Service Mesh (Ingress/Egress).
Подробнее см. в разделе «Выпуск и установка сертификатов Synapse Service Mesh для Ingress/Egress».
Note
Набор секретов для работы сервисов в одном namespace не отличается от набора секретов при развертывании сервисов на разные namespace.
Автоматизированная установка через Deploy Tools#
Для развертывания сервисов Batch на один namespace с помощью Deploy Tools выполните следующие шаги автоматизированной установки сервисов:
При подготовке дистрибутива Batch Tasks к автоматическому развертыванию выполните конфигурирование Deploy Tools Batch Tasks.
При подготовке дистрибутива Batch Scheduler к автоматическому развертыванию выполните конфигурирование Deploy Tools Batch Scheduler.
Выполните установку сервисов.
Общая схема процесса развертывания сервисов Batch на один namespace с помощью Deploy Tools:
Установка Batch Scheduler в Kubernetes#
Требования к окружению#
Для использования сервиса Batch Scheduler должны быть реализованы следующие требования к окружению:
наличие Kubernetes;
наличие базы данных PostgreSQL.
Требования к КТС#
Требования к производительности#
Описание |
Параметры |
|---|---|
Рекомендуемый минимальный КТС |
8 CPU / 32GB RAM |
Требования к базе данных#
Описание |
Параметры |
|---|---|
Рекомендуемый минимальный КТС для тестовых сред и сред разработки |
2 Core CPU / 8GB RAM / 100GB HDD |
Настройка окружения#
Требования к namespace#
Учитывайте, что различные частные случаи развертывания сервиса могут иметь свои требования к окружению.
Данный способ развертывания — частный случай для ЦПО/ШЦП со своими особенностями, например, отсутствием: OTT, Ingress, Egress, Stand-In, интеграции с сервисом Аудит.
Подготовка базы данных#
Чтобы подготовить основную и реплицируемую БД для работы в тестовых и сред разработки, выполните следующие шаги:
Создайте БД.
Создайте:
прикладного пользователя
scheduler_appl_user, под которым приложение будет соединяться с БД;пользователя-владельца схемы данных
scheduler_owner_user, от имени которого необходимо запустить скрипты.
Выполните SQL-скрипт создания схемы данных и предоставления прав.
Добавьте пользователей и перезагрузите БД.
Создание БД#
Для создания базы данных выполните от имени пользователя postgres (суперпользователь БД) следующие команды в утилите psql:
Создайте базу данных:
CREATE DATABASE database_name OWNER xxx_owner_user
Чтобы создать схему данных, подключитесь к созданной БД с помощью команды:
\c database_name
или (для подключения под другим пользователем):
\c database_name user_name
При смене пользователя введите пароль.
Warning
В зависимости от настроек в файле pg_hba.conf (аутентификации по имени узла) созданные пользователи не могут авторизоваться, пока их не добавят в pg_hba.conf.
Warning
Аналогичная ситуация будет справедлива и для суперпользователя postgres при попытке соединения c вновь созданной БД.
Создание схем БД#
После успешного выполнения перезапуска экземпляра БД создайте схему данных. Для этого запустите утилиту psql под пользователем postgres и присоединитесь к ранее созданной БД:
\c database_name
CREATE SCHEMA xxx_schema AUTHORIZATION xxx_owner_user;
GRANT USAGE ON SCHEMA xxx_schema to xxx_appl_user;
Для просмотра схемы в БД в psql выполните команду:
\dn
или:
SELECT schema_name FROM information_schema.schemata;
Добавление пользователей и перезагрузка БД#
Подробная информация о добавлении пользователей и перезагрузке БД приведена на сайте.
Краткое описание#
Файл конфигурации pg_hba.conf содержит:
списки баз данных;
списки пользователей, которые могут авторизоваться в БД;
ограничения по IP-адресам для этих пользователей и методы аутентификации.
Файл с настройками аутентификации по имени узла pg_hba.conf находится по пути /pgdata/11/data.
Note
Пути могут отличаться, в том числе в зависимости от версии базы.
Нижеприведенные примеры исходят из того, что суперпользователь БД postgres не может подключаться ко вновь созданной БД.
Пример редактирования файла конфигурации#
В файл конфигурации pg_hba.conf добавьте пользователя postgres:
host db_1, db_2, database_name postgres 127.0.0.1/32 trust
Warning
Данная строка должна идти впереди любой аналогичной строки, которая определяет способ подключения пользователя postgres c другого хоста (тип хоста), если они допускают подключение пользователя postgres с локального хоста.
Warning
Записи в файле pg_hba.conf не должны быть противоречивы, в противном случае экземпляр PostgreSql может не загрузиться при перезагрузке.
Где:
host— показывает, что подключение выполняется с другого хоста (как правило, в файлеpg_hba.confприсутствует строкаlocal all all md5, которая показывает, что при локальной авторизации в любой БД нужно вводить пароль, однако пароль пользователя БД postgres, как правило, не известен).db_1,db_2— список баз, для которых уже прописана возможность локального подключения к ним суперпользователя БД postgres без ввода пароля.database_name— вновь созданная БД.postgres— пользователь БД, под которым будет доступен данный вариант входа.127.0.0.1/32— показывает, что такой вход возможен только с того же самого хоста.trust— метод аутентификации, не требующий ни ввода пароля, ни наличия сертификата.
Редактирование файла конфигурации для логина пользователей с произвольного хоста#
Чтобы вновь созданные пользователи могли подключиться к созданной БД данного экземпляра PostgreSql, добавьте в файл конфигурации hb_pga.conf следующую строку:
host database_name xxx_owner_user, xxx_appl_user 0.0.0.0/0 md5
Где:
host— показывает, что подключение выполняется с другого хоста;database_name— вновь созданная БД;xxx_owner_user,xxx_appl_user— вновь созданные пользователи;0.0.0.0/0— разрешенный диапазон хостов (0.0.0.0/0— показывает, что логин разрешен с любого хоста);md5— способ аутентификации по паролю.
Note
После изменений, внесенных в файл конфигурации pg_hba.conf, выполните перезагрузку базы данных, так как файл конфигурации не будет перечитан динамически.
Перезагрузка экземпляра PostgreSQL#
Подробную информацию о работе вы можете найти в документации на PostgreSQL.
Note
Перечитывание конфигурационных файлов и перезапуск базы выполняются от имени linux-пользователя postgres. Аналогично от linux пользователя postgres выполняется и проверка статуса, остановка или старт экземпляра.
Перечитывание конфигурационных файлов и перезапуск экземпляра:
pg_ctl reload
pg_ctl restart
Добавление секретов#
При установке сервиса Batch Scheduler в Kubernetes обязательно наличие следующего секрета: batch-scheduler-liquibase-passwords. Обязательные ключи:
SCHEDULER_OWNER_USER;SCHEDULER_OWNER_USER_PASSWD;SCHEDULER_APPL_USER.