Без доступа в интернет#

Развертывание платформы в кластере Kubernetes требует дополнительных подготовительных шагов.

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

Для развертывания Astra Automation в кластере Kubernetes без доступа в интернет необходимо подготовить все требуемые контейнерные образы локально на каждом рабочем узле (worker node). По умолчанию Kubernetes использует среду исполнения контейнеров containerd. При отсутствии доступа к внешнему реестру контейнеров потребуются дополнительные шаги по загрузке этих образов во все рабочие узлы.

Доступ к узлам Kubernetes#

Для выполнения последующих действий оператор установочного узла должен иметь доступ по SSH ко всем узлам (master, workers) кластера Kubernetes с административными привилегиями (через утилиту sudo). Настройте доступ как описано в руководстве Настройка целевых узлов.

Подготовка образов контейнеров#

Пакет для развертывания Astra Automation в сегменте сети без доступа к интернет поставляется в виде архивированного файла aa-kubernetes-bundle-<version>-offline.tar.gz, доступного в Личном кабинете при наличии действующей лицензии на Astra Automation.

Выполните следующие подготовительные действия:

  1. Загрузите архивированный файл на установочный узел.

    Архивированный пакет имеет размер около 6.6 ГБ. После распаковки его содержимое занимает около 23 ГБ дискового пространства.

    Для подготовки и распаковки offline-пакета на установочном узле рекомендуется заранее зарезервировать не менее 30 ГБ свободного пространства. Дополнительные сведения о требованиях к ресурсам узлов приведены в разделе Топология.

  2. Подготовьте временный каталог для размещения пакета:

    mkdir temp_bundle_contents
    
  3. Распакуйте архив в этот каталог:

    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

Сценарий выполняет следующие действия:

  1. Устанавливает сервис rsync на узлах, если его нет.

  2. Копирует все файлы с расширением .tar из каталога images/ во временный каталог на указанные узлы кластера.

  3. Импортирует каждый образ этих файлов для службы containerd.

  4. После завершения выводит список образов, загруженных для containerd.