Топология#
На этой стадии необходимо выбрать топологию платформы и подготовить соответствующие ресурсы.
В обзоре архитектуры представлены два протестированных варианта топологии, их особенности, преимущества и недостатки. Это позволяет определить вариант топологии, наиболее подходящий для бизнес-планов организации. Следующий шаг состоит в планировании и подготовке ресурсов для выбранной топологии.
Ресурсы Kubernetes#
Для развертывания центральных компонентов Astra Automation необходим кластер Kubernetes. Кластер может быть в собственном центре обработки данных или в облаке, см. Примеры подготовки кластера Kubernetes.
Необходимое количество ресурсов как в кластере Kubernetes, так и за его пределами существенно зависит от выбранной топологии.
Ресурс |
Базовая |
Уровень предприятия |
|---|---|---|
PG gateway pod |
1 |
3+ |
AC web pod |
1 |
3+ |
AC task pod |
1 |
3+ |
Automation Mesh ingress |
1 |
3+ (примечание) |
PAH web pod |
1 |
3+ |
PAH api pod |
1 |
3+ |
PAH worker pod |
1 |
3+ |
PAH redis pod |
1 |
1 |
PAH content pod |
1 |
3+ |
PAH content storage |
External |
External |
EDA api pod |
1 |
3+ |
EDA activation pod |
1 |
3+ |
EDA worker pod |
1 |
3+ |
EDA stream pod |
1 |
3+ |
EDA scheduler pod |
1 |
3+ |
Redis pod |
1 |
6+ |
PostgreSQL |
Pod + PV |
External |
Execution plane |
External execution node |
External execution nodes + hop |
В таблице использованы следующие сокращения:
PG – Platform Gateway;
AC – Automation Controller;
PAH – Private Automation Hub;
EDA – контроллер Event-Driven Automation;
PV – Kubernetes Persistent Volume.
Примечание
Объект, созданный на основе ресурса (CR, Custom Resource) Automation Mesh ingress (AutomationControllerMeshIngress), нельзя реплицировать.
Для балансировки нагрузки рекомендуется создавать несколько объектов этого типа, обеспечив для каждого из них уникальные параметры metadata.name и external_hostname.
Ручное масштабирование этих объектов, например командой kubectl scale, не поддерживается и приводит к отказу в работе системы.
Базовая топология#
В базовой топологии для развертывания Astra Automation используется минимальное количество ресурсов.
Для обслуживания различных сегментов инфраструктуры Automation Controller подключается к сети Mesh, в которой установлены исполняющие узлы.
Требования к рабочему узлу Kubernetes#
Минимальные требования к рабочему узлу, на котором развертываются все центральные компоненты Astra Automation:
Параметр |
Минимальное значение |
Рекомендуемое значение |
|---|---|---|
Количество ядер CPU |
4 |
≥ 8 |
Объем RAM |
16 ГБ |
≥ 32 ГБ |
Дисковое пространство |
100 ГБ |
≥ 250 ГБ |
Тип дискового накопителя |
SSD |
SSD |
IOPS |
3000 |
≥ 3000 |
Примечание
В таблице выше указаны значения ресурсов рабочего узла, если все поды необходимо установить именно на нем. Также развертывание может быть выполнено на более чем одном рабочем узле.
В любом случае необходимо убедиться, что для установки подов доступны 16 ГБ RAM.
Требования к сетевому хранилищу#
Для хранения данных Private Automation Hub требуется хранилище с поддержкой режима доступа ReadWriteMany (RWX), позволяющего нескольким подам выполнять чтение и запись одновременно.
При использовании файлового хранилища платформа взаимодействует с ним через драйвер CSI Kubernetes. Для работы Private Automation Hub не имеет значения конкретная технология хранения, если используемый StorageClass поддерживает следующую функциональность:
создание Persistent Volume через CSI;
режим доступа
ReadWriteMany(RWX).
В качестве файлового хранилища могут использоваться, например, следующие варианты:
Longhorn;
CephFS;
другие StorageClass с поддержкой RWX, совместимые с CSI.
Рекомендуемым вариантом является использование объектного хранилища S3, управляемого напрямую через HTTPS. Оно проще в настройке и обслуживании по сравнению с другими.
Хранить контент приватного реестра рекомендуется в хранилище S3, размеры которого зависят от объема контента. Для хранения контента, полученного из облачного реестра Automation Hub, необходимо зарезервировать 3 ГБ пространства. Для загрузки дополнительного контента, например из Ansible Galaxy, может понадобиться в несколько раз больший объем, но обычно не более 40 ГБ.
Требования к исполняющему узлу Astra Automation#
К ВМ, используемой для установки исполняющего узла (exec node), предъявляются следующие минимальные требования.
Параметр |
Значение |
|---|---|
Количество ядер CPU |
8 |
Объем RAM |
16 ГБ |
Дисковое пространство |
60 ГБ |
Тип дискового накопителя |
SSD |
IOPS |
3000 |
Настройка сетевых фильтров#
Для взаимодействия компонентов платформы необходимо обеспечить установление требуемых сетевых связей по соответствующим портам TCP, как представлено в таблице.
Источник |
Назначение |
Служба |
Порт TCP |
|---|---|---|---|
Admin workstation |
Kubernetes cluster |
HTTPS |
6443 |
User workstation |
Platform Gateway |
HTTP/HTTPS |
80/443 |
Content pod |
External S3 |
HTTPS |
443 |
Automation Controller |
Execution node |
Receptor |
27199 |
Execution node |
Platform Gateway |
HTTP/HTTPS |
80/443 |
Execution node |
Управляемый сегмент |
SSH |
22 |
Топология уровня предприятия#
Эта топология по сравнению с предыдущей преследует две основные цели, для достижения которых применяются соответствующие изменения:
Для обеспечения высокой доступности все ресурсы Kubernetes имеют несколько реплик (не менее трех) на разных рабочих узлах кластера. Для еще большего повышения уровня доступности используют кластер Kubernetes, распределенный по зонам доступности.
Для управления сложными распределенными инфраструктурами задействована сеть Mesh, в которой предусматривают распределение нагрузки по множеству исполняющих узлов (exec nodes) с применением переходных узлов (hop nodes) для маршрутизации трафика. Для критически важных сегментов используют несколько исполняющих узлов.
Требования к рабочему узлу Kubernetes#
Минимальные требования к ресурсам для развертывания всех центральных компонентов Astra Automation с учетом только одной реплики для каждого Kubernetes pod остаются теми же, что и для базовой топологии.
Примечание
Для оценки полного объема требуемых ресурсов необходимо учитывать количество реплик.
Требования к сетевому хранилищу#
Хранить контент приватного реестра рекомендуется в хранилище S3, размеры которого зависят от объема контента. Для хранения контента, полученного из облачного реестра Automation Hub, необходимо зарезервировать 3 ГБ пространства. С учетом дальнейшего расширения рекомендуемый объем составляет 40 ГБ.
Требования к исполняющему и переходному узлам Astra Automation#
К ВМ, используемой для установки переходного или исполняющего узла, предъявляются следующие минимальные требования.
количество ядер CPU: 8;
объем RAM: 16 ГБ;
дисковое пространство: 60 ГБ;
скорость операций ввода-вывода, IOPS: 3000.
Требования к внешней СУБД PostgreSQL#
Astra Automation работает только с PostgreSQL версии 15 с установленным расширением hstore.
Критически важными являются следующие характеристики:
Для каждого из следующих компонентов Astra Automation необходимо наличие базы данных и учетной записи для управления ею:
Platform Gateway;
Automation Controller;
Private Automation Hub;
контроллер Event-Driven Automation.
Пример создания с помощью команд SQL:
-- Creating users for Astra Automation CREATE USER automationgateway WITH PASSWORD 'gateDBpaS$12345'; CREATE USER awx WITH PASSWORD 'ctrlDBpaS$123456'; CREATE USER automationhub WITH PASSWORD 'hUbPa55I2345b'; CREATE USER automationedacontroller WITH PASSWORD 'edapassword'; -- Creating databases CREATE DATABASE automationgateway OWNER automationgateway; CREATE DATABASE awx OWNER awx; CREATE DATABASE automationhub OWNER automationhub; CREATE DATABASE automationedacontroller OWNER automationedacontroller;
Предупреждение
Пароли в примере являются демонстрационными. При использовании в продуктовой среде замените их на собственные.
Поддержка ICU (International Components for Unicode). Проверка доступности ICU (непустой результат означает поддержку):
SELECT * FROM pg_collation WHERE collprovider = 'i' LIMIT 1;
Инициализация кластера БД с провайдером ICU:
initdb -D pgdata --locale-provider=icu --icu-locale=en
Работающий сервис Autovacuum для исключения бесконтрольного увеличения размера таблиц.
Для отказоустойчивого внешнего кластера PostgreSQL в Kubernetes необходимо использовать стабильную точку подключения к основному узлу PostgreSQL (stable writer endpoint). В качестве стабильной точки подключения используйте виртуальный IP-адрес (VIP), FQDN балансировщика или другой плавающий адрес, который всегда указывает на текущий основной узел PostgreSQL. Именно этот адрес должен использоваться далее в поле
hostсекретов подключения к внешней СУБД.
Настройка сетевых фильтров#
Для взаимодействия компонентов платформы необходимо обеспечить установление требуемых сетевых связей по соответствующим портам TCP, как представлено в таблице.
Источник |
Назначение |
Служба |
Порт TCP |
|---|---|---|---|
Admin workstation |
Kubernetes cluster |
HTTPS |
6443 |
User workstation |
Platform Gateway |
HTTP/HTTPS |
80/443 |
Content pod |
External S3 |
HTTPS |
443 |
All pods |
External PostgreSQL |
TCP |
5432 |
Automation Controller |
Execution nodes |
Receptor |
27199 |
Automation Controller |
Hop nodes |
Receptor |
27199 |
Execution nodes |
Platform Gateway |
HTTP/HTTPS |
80/443 |
Execution nodes |
Управляемый сегмент |
SSH |
22 |