Без доступа в интернет#
Развертывание платформы в кластере Kubernetes требует дополнительных подготовительных шагов.
Для развертывания Astra Automation в кластере Kubernetes без доступа в интернет необходимо подготовить все требуемые контейнерные образы локально на каждом рабочем узле (worker node). По умолчанию Kubernetes использует среду исполнения контейнеров containerd. При отсутствии доступа к внешнему реестру контейнеров потребуются дополнительные шаги по загрузке этих образов во все рабочие узлы.
Доступ к узлам Kubernetes#
Для выполнения последующих действий оператор установочного узла должен иметь доступ по SSH ко всем узлам (master, workers) кластера Kubernetes с административными привилегиями (через утилиту sudo).
Настройте доступ как описано в руководстве Настройка целевых узлов.
Подготовка образов контейнеров#
Пакет для развертывания Astra Automation в сегменте сети без доступа к интернет поставляется в виде архивированного файла aa-kubernetes-bundle-<version>-offline.tar.gz, доступного в Личном кабинете при наличии действующей лицензии на Astra Automation.
Выполните следующие подготовительные действия:
Загрузите архивированный файл на установочный узел.
Архивированный пакет имеет размер около 6.6 ГБ. После распаковки его содержимое занимает около 23 ГБ дискового пространства.
Для подготовки и распаковки offline-пакета на установочном узле рекомендуется заранее зарезервировать не менее 30 ГБ свободного пространства. Дополнительные сведения о требованиях к ресурсам узлов приведены в разделе Топология.
Подготовьте временный каталог для размещения пакета:
mkdir temp_bundle_contentsРаспакуйте архив в этот каталог:
tar -xzvf aa-kubernetes-bundle-<version>-offline.tar.gz -C temp_bundle_contents
cd temp_bundle_contents
Структура каталога выглядит следующим образом:
temp_bundle_contents/ ├── examples/ │ ├── kubernetes/ │ │ ├── base/ │ │ ├── enterprise/ │ │ └── minimal/ │ └── minikube/ │ └── minimal/ ├── images/ │ ├── aa_<version>.tar │ ├── aa-control-ee_<version>.tar │ ├── aa-operator_<version>.tar │ ├── aa-proxy_<version>.tar │ ├── ac_<version>.tar │ ├── ac-operator_<version>.tar │ ├── eda_<version>.tar │ ├── eda-operator_<version>.tar │ ├── eda-ui_<version>.tar │ ├── k8s-hub-content-importer_<version>.tar │ ├── kube-rbac-proxy_<version>.tar │ ├── nginx_<version>.tar │ ├── pah_<version>.tar │ ├── pah-operator_<version>.tar │ ├── postgresql_<version>.tar │ ├── redis_<version>.tar │ └── ubi18_<version>.tar ├── operators/ │ ├── aa-operator-deploy.yaml │ ├── ac-operator-deploy.yaml │ ├── eda-operator-deploy.yaml │ └── pah-operator-deploy.yaml └── tools/ ├── cleanup-images.yml ├── inventory.yml └── load-containerd-images.yml
Здесь <version> – версия Astra Automation, например 2.0-upd2.
Подготовленный каталог потребуется не только на этом шаге, но и при дальнейшей подготовке и непосредственном развертывании платформы. Он содержит следующие ресурсы:
examples/– манифесты различных секретов для установки их в кластере Kubernetes в зависимости от выбранной топологии (базовая или уровня предприятия);images/– образы контейнеров, которые необходимо установить в кластере Kubernetes;operators/– файлы-манифесты для развертывания операторов платформы Astra Automation;tools/– сценарий Ansible и описание инвентаря, включающего все рабочие узлы Kubernetes, на которых необходимо разместить образы.
Описание инвентаря#
В файле инвентаря tools/inventory.yml имеется структура описания, в которой необходимо заменить параметры рабочих узлов на параметры узлов вашего кластера, а также задать другие параметры Ansible:
---
all:
children:
k8s_nodes:
hosts:
node1.example.com:
node2.example.com:
node3.example.com:
vars:
ansible_user: astra
ansible_become: true
ansible_ssh_private_key_file: ~/.ssh/astra
images_dir: /tmp/images
В этом файле находятся следующие параметры, подлежащие настройке:
адреса узлов (доменные имена и IP-адреса);
ansible_user– учетная запись, используемая для подключения по SSH и имеющая привилегии на использование утилиты sudo для повышения привилегий до привилегий учетной записи root;ansible_become– требует для выполнения модулей Ansible на удаленном узле использовать утилиту sudo для повышения привилегий до привилегий учетной записи root;ansible_ssh_private_key_file– путь к приватному ключу учетной записи, используемой для подключения к управляемым узлам по SSH;images_dir– путь к каталогу, в котором хранятся файлы с образами контейнеров.
Размещение образов#
Используйте подготовленный сценарий для размещения образов на рабочих узлах Kubernetes:
ansible-navigator run tools/load-containerd-images.yml -i tools/inventory.yml
Сценарий выполняет следующие действия:
Устанавливает сервис
rsyncна узлах, если его нет.Копирует все файлы с расширением
.tarиз каталогаimages/во временный каталог на указанные узлы кластера.Импортирует каждый образ этих файлов для службы
containerd.После завершения выводит список образов, загруженных для
containerd.