Без доступа в интернет#
Развертывание платформы в кластере Kubernetes без доступа в интернет требует дополнительных подготовительных шагов.
Для развертывания Astra Automation в кластере Kubernetes без доступа в интернет необходимо подготовить все требуемые контейнерные образы локально на каждом рабочем узле (worker node). По умолчанию Kubernetes использует среду выполнения контейнеров containerd. При отсутствии доступа к внешнему реестру контейнеров потребуются дополнительные шаги по загрузке этих образов во все рабочие узлы.
Доступ к узлам Kubernetes#
Для выполнения последующих действий оператор установочного узла должен иметь доступ по SSH ко всем рабочим узлам (worker) кластера 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:
ansible_host: 10.177.1.1
node2.example.com:
ansible_host: 10.177.1.2
node3.example.com:
ansible_host: 10.177.1.3
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– в текущей версии сценариев не используется: сценарий всегда берет образы из каталогаimages/пакета и копирует их в каталог/tmp/images/на узлах.
Размещение образов#
Используйте подготовленный сценарий для размещения образов на рабочих узлах Kubernetes:
ansible-navigator run tools/load-containerd-images.yml -i tools/inventory.yml
Сценарий выполняет следующие действия:
Устанавливает пакет
rsyncна управляющем узле и на рабочих узлах, если он отсутствует.Копирует все файлы с расширением
.tarиз каталогаimages/в каталог/tmp/images/на указанных узлах кластера.Импортирует каждый образ в
containerdкомандойctr images import.Удаляет пакет
rsyncс рабочих узлов, если он был установлен этим сценарием.
После успешного импорта удалите временные копии архивов образов с рабочих узлов:
ansible-navigator run tools/cleanup-images.yml -i tools/inventory.yml