Быстрое развертывание платформы#

Быстрое развертывание платформы Astra Automation предназначено для получения оперативного доступа к системе и ознакомления с ее базовыми возможностями. Для этого в качестве рабочей среды предлагаем использовать Kubernetes Minikube.

Предупреждение

Использование Minikube для развертывания Astra Automation допустимо только в ознакомительных целях и не предназначено для эксплуатации в промышленных рабочих окружениях.

Предварительные требования#

Для развертывания платформы потребуются дополнительные аппаратные и программные ресурсы.

Программное обеспечение платформы#

Для использования платформы необходима подписка. Чтобы получить пробную подписку, перейдите на сайт Astra Automation и нажмите кнопку Запросить пробную версию платформы бесплатно.

Развертывание выполняется с помощью архивированного пакета, доступного в Личном кабинете.

Рабочее окружение#

Для развертывания платформы понадобится узел в виде ВМ или физического компьютера, обладающий характеристиками не ниже указанных:

Характеристика

Значение

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

8

Объем RAM, ГБ

16

Свободное дисковое пространство, ГБ

50

Вы можете использовать любую операционную систему, в которой можно установить Minikube. Для данной демонстрации использовалась ВМ с установленной операционной системой Astra Linux Special Edition 1.8.4 в базовом режиме защищенности («Орел»). Для настройки узла необходим доступ к нему по протоколу SSH.

Подготовка узла#

Подготовьте узел следующим образом:

  1. Подключитесь к узлу по SSH.

  2. Установите и настройте систему Docker:

    sudo apt update && sudo apt install -y make git curl docker.io docker-compose docker-buildx
    
    sudo usermod -aG docker $USER && newgrp docker
    
  3. Установите систему оркестрации контейнеров Minikube:

    curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
    chmod +x minikube
    sudo install minikube /usr/local/bin/
    
  4. Установите утилиту управления kubectl:

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
    

Подготовка Kubernetes#

Переведите рабочую среду в активное состояние:

  1. Убедитесь, что вы подключены к целевому узлу по SSH.

  2. Запустите сервис Minikube и установите контроллер ingress для обеспечения доступа к интерфейсу платформы:

    minikube start --cpus=6 --memory=12288 --disk-size=50g --addons=ingress
    
  3. Проверьте состояние Minikube:

    minikube status
    

    Команда выводит на экран терминала следующие данные:

    minikube
    type: Control Plane
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Configured
    

Развертывание платформы#

Выполните следующие шаги для развертывания платформы:

  1. Распакуйте архив платформы в рабочем каталоге:

    mkdir astra-automation-setup
    
    tar -xvzf aa-kubernetes-bundle-2-0-preview.tar.gz -C astra-automation-setup/ && cd astra-automation-setup
    

    Структура пакета имеет следующий вид:

    ├── examples/
    │   ├── kubernetes/
    │   └── minikube/
    └── operators/
        ├── aa-operator-deploy.yaml
        ├── ac-operator-deploy.yaml
        ├── eda-operator-deploy.yaml
        └── pah-operator-deploy.yaml
    
  2. Установите операторы платформы:

    kubectl apply -f operators/
    

    Создаются контейнеры и сервисы Kubernetes в пространстве astra-automation. Это потребует несколько минут. Для проверки состояния подов используйте следующую команду:

    kubectl -n astra-automation get pods -w
    

    Поды должны быть в состоянии running.

  3. Перед развертыванием определите адреса, по которым будет выполняться доступ к интерфейсу платформы.

    Эти адреса необходимо добавить в параметр CSRF_TRUSTED_ORIGINS в манифесте платформы.

    1. Получите текущие URL и порты сервиса ingress-nginx-controller:

      minikube service ingress-nginx-controller -n ingress-nginx
      
    2. Откройте файл examples/minikube/minimal/minikube-minimal-aa-demo.yaml и добавьте в конец манифеста блок extra_settings. Укажите в CSRF_TRUSTED_ORIGINS все источники (origin), с которых вы будете открывать интерфейс в браузере.

      Используйте IP-адрес Minikube и URL/порты из вывода команды minikube service .... Пример:

      extra_settings:
      - setting: CSRF_TRUSTED_ORIGINS
        value:
        - 'https://<minikube_ip>'
        - 'http://<minikube_ip>:<nodeport_http>'
        - 'http://<minikube_ip>:<nodeport_https>'
        - 'https://<minikube_ip>:<nodeport_https>'
      

      Здесь:

      • <minikube_ip> – IP-адрес узла Minikube;

      • <nodeport_http> – HTTP порт сервиса ingress-nginx-controller;

      • <nodeport_https> – HTTPS порт сервиса ingress-nginx-controller.

      Если Minikube развернут на внешней ВМ и вы планируете подключаться к интерфейсу по адресу вида https://<ip_vm>:8443, добавьте origin с IP-адресом внешней ВМ:

      extra_settings:
      - setting: CSRF_TRUSTED_ORIGINS
        value: ['https://<ip_vm>:8443']
      

      Здесь <ip_vm> – IP-адрес внешней ВМ, на которой запущен Minikube.

  4. Запустите развертывание платформы в минимальном составе:

    kubectl apply -n astra-automation -f examples/minikube/minimal/minikube-minimal-aa-demo.yaml
    

    На развертывание потребуется несколько минут. Дождитесь готовности подов платформы:

    kubectl -n astra-automation get pods -w
    

    Поды должны быть в состоянии running.

    Важно

    Если вы добавили или изменили extra_settings после первичного развертывания, примените манифест повторно и подождите несколько минут, пока оператор применит изменения:

    kubectl apply -n astra-automation -f examples/minikube/minimal/minikube-minimal-aa-demo.yaml
    

Примечание

Если по какой-либо причине надо повторить все сначала, удалите все объекты, созданные в Minikube:

minikube stop && minikube delete --all --purge

Получение доступа к интерфейсу платформы#

Для доступа к единому интерфейсу платформы процедура развертывания создает учетную запись admin, имеющую случайным образом сгенерированный пароль. Для получения пароля воспользуйтесь следующей командой:

kubectl -n astra-automation get secret aa-demo-admin-password \
        -o jsonpath="{.data.password}" | base64 -d

Сервис (контроллер Kubernetes) ingress доступен в пространстве ingress-nginx. Получите сведения о нем:

minikube service ingress-nginx-controller -n ingress-nginx

Таблица в выходных данных показывает соответствие между URL, по которому доступен сервис, и внутренним портом пользовательского интерфейса:

┌───────────────┬──────────────────────────┬─────────────┬───────────────────────────┐
│   NAMESPACE   │           NAME           │ TARGET PORT │            URL            │
├───────────────┼──────────────────────────┼─────────────┼───────────────────────────┤
│ ingress-nginx │ ingress-nginx-controller │ http/80     │ http://192.168.49.2:32390 │
│               │                          │ https/443   │ http://192.168.49.2:31668 │
└───────────────┴──────────────────────────┴─────────────┴───────────────────────────┘
[ingress-nginx ingress-nginx-controller http/80
https/443 http://192.168.49.2:32390
http://192.168.49.2:31668]

В данном примере установлены следующие перенаправления:

192.168.49.2 является адресом узла Minikube. Если вы устанавливали все на локальной машине, то можете использовать эти URL в вашем браузере.

Если Minikube развернут на внешней ВМ, обеспечьте доступ к интерфейсу путем переназначения порта TCP (port forwarding):

kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller 8443:443 --address=0.0.0.0

После этого интерфейс будет доступен из браузера по адресу https://<ip_vm>:8443.

Первоначальная настройка платформы#

Первоначальная настройка состоит из следующих шагов:

  1. При первом подключении браузер выводит предупреждение о том, что подключение не защищено. Это нормальное поведение, поскольку для защиты подключения контроллер использует самоподписанный сертификат. При использовании браузера на основе Chromium выполните следующие действия:

    1. Нажмите кнопку Дополнительные.

    2. Нажмите ссылку Перейти на сайт <IP> (небезопасно).

  2. Для аутентификации в интерфейсе платформы введите название учетной записи admin и пароль, определенный ранее.

  3. Активируйте лицензию на продукт, следуя инструкции.

Заключение#

В этом сценарии вы познакомились с основными шагами по развертыванию платформы и его использованию для настройки управляемых узлов. Из всей последовательности шагов важно выделить следующие действия:

  • Обеспечение предварительных требований.

  • Установка операторов в окружении Kubernetes.

  • Развертывание платформы с помощью операторов.

  • Обеспечение доступа к интерфейсу платформы.

  • Активизация лицензии на использование платформы.