Топология#

На этой стадии необходимо выбрать топологию платформы и подготовить соответствующие ресурсы.

../../../_images/day0-model-green.svg ../../../_images/day0-ws-green.svg ../../../_images/day0-topology-blue.svg ../../../_images/day0-offline-white.svg ../../../_images/day0-conf-white.svg ../../../_images/day0-model-green.svg ../../../_images/day0-ws-green.svg ../../../_images/day0-topology-blue.svg ../../../_images/day0-offline-dark.svg ../../../_images/day0-conf-dark.svg

В обзоре архитектуры вы познакомились с двумя протестированными вариантами топологии, их особенностями, преимуществами и недостатками. Это позволило вам определить вариант топологии, наиболее подходящий для ваших бизнес-планов. Следующий шаг состоит в планировании и подготовке ресурсов для выбранной топологии.

Ресурсы 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

3+

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.

Базовая топология#

В базовой топологии для развертывания Astra Automation используется минимальное количество ресурсов.

../../../_images/aa-k8s-base-light.svg ../../../_images/aa-k8s-base-dark.svg

Для обслуживания различных сегментов инфраструктуры Automation Controller подключается к сети Mesh, в которой установлены исполняющие узлы.

Требования к рабочему узлу Kubernetes#

Минимальные требования к рабочему узлу, на котором развертываются все центральные компоненты Astra Automation:

  • количество ядер CPU: 4;

  • объема RAM: 16 ГБ;

  • дисковое пространство: 100 ГБ;

  • скорость операций ввода-вывода, IOPS: 3000.

Требования к сетевому хранилищу#

Хранить контент приватного реестра рекомендуется в хранилище S3, размеры которого зависят от объема контента. Для хранения контента, полученного из облачного реестра Automation Hub, необходимо зарезервировать 3 ГБ пространства. Для загрузки дополнительного контента, например из Ansible Galaxy, может понадобиться в несколько раз больший объем, но обычно не более 40 ГБ.

Требования к исполняющему узлу Astra Automation#

Для ВМ, используемой для установки исполняющего узла (exec node), предъявляются следующие минимальные требования.

Параметр

Значение

Количество ядер CPU

8

Объем RAM

16 GB

Дисковое пространство

60 GB

Тип дискового накопителя

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 имеют несколько реплик (обычно 3) на разных рабочих узлах кластера. Для еще большего повышения уровня доступности используют кластер Kubernetes, распределенный по зонам доступности.

  • Для управления сложными распределенными инфраструктурами задействована сеть Mesh, в которой предусматривают распределение нагрузки по множеству исполняющих узлов (exec nodes) с применением переходных узлов (hop nodes) для маршрутизации трафика. Для критически важных сегментов используют несколько исполняющих узлов.

../../../_images/aa-k8s-enterprise-light.svg ../../../_images/aa-k8s-enterprise-dark.svg

Требования к рабочему узлу Kubernetes#

Минимальные требования к ресурсам для развертывания всех центральных компонентов Astra Automation с учетом только одной реплики для каждого Kubernetes pod, остаются теми же, что и для базовой топологии:

  • количество ядер CPU: 4;

  • объема RAM: 16 ГБ;

  • дисковое пространство: 100 ГБ;

  • скорость операций ввода-вывода, IOPS: 3000.

Примечание

Для оценки полного объема требуемых ресурсов надо учитывать количество реплик.

Требования к сетевому хранилищу#

Хранить контент приватного реестра рекомендуется в хранилище 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 automationcontroller 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 automationcontroller OWNER automationcontroller;
    CREATE DATABASE automationhub OWNER automationhub;
    CREATE DATABASE automationedacontroller OWNER automationedacontroller;
    
  • Поддержка ICU (International Components for Unicode). Проверка и инициализация:

    -- Validating ICU в PostgreSQL
    SELECT * FROM pg_available_extensions WHERE name = 'icu';
    
    -- Initializing DB with ICU
    initdb -D pgdata --locale-provider=icu --icu-locale=en
    
  • Работающий сервис Autovacuum для исключения бесконтрольного увеличения размера таблиц.

Настройка сетевых фильтров#

Для обеспечения взаимодействия компонентов платформы необходимо обеспечить установление требуемых сетевых связей по соответствующим портам 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