Быстрое развертывание платформы#
Быстрое развертывание платформы Astra Automation предназначено для получения оперативного доступа к системе и ознакомления с ее базовыми возможностями. Для этого в качестве рабочей среды предлагаем использовать Kubernetes Minikube.
Предупреждение
Использование Minikube для развертывания Astra Automation допустимо только в ознакомительных целях и не предназначено для эксплуатации в промышленных рабочих окружениях.
Предварительные требования#
Для развертывания платформы потребуются дополнительные аппаратные и программные ресурсы.
Программное обеспечение платформы#
Для использования платформы необходима подписка. Чтобы получить пробную подписку, перейдите на сайт Astra Automation и нажмите кнопку Запросить пробную версию платформы бесплатно.
Развертывание выполняется с помощью архивированного пакета, доступного в Личном кабинете.
Рабочее окружение#
Для развертывания платформы понадобится узел в виде ВМ или физического компьютера, обладающий характеристиками не ниже указанных:
Характеристика |
Значение |
|---|---|
Количество ядер CPU |
8 |
Объем RAM, ГБ |
16 |
Свободное дисковое пространство, ГБ |
50 |
Вы можете использовать любую операционную систему, в которой можно установить Minikube. Для данной демонстрации использовалась ВМ с установленной операционной системой Astra Linux Special Edition 1.8.4 в базовом режиме защищенности («Орел»). Для настройки узла необходим доступ к нему по протоколу SSH.
Подготовка узла#
Подготовьте узел следующим образом:
Подключитесь к узлу по SSH.
Установите и настройте систему Docker:
sudo apt update && sudo apt install -y make git curl docker.io docker-compose docker-buildx
sudo usermod -aG docker $USER && newgrp docker
Установите систему оркестрации контейнеров Minikube:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 chmod +x minikube sudo install minikube /usr/local/bin/
Установите утилиту управления
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#
Переведите рабочую среду в активное состояние:
Убедитесь, что вы подключены к целевому узлу по SSH.
Запустите сервис Minikube и установите контроллер
ingressдля обеспечения доступа к интерфейсу платформы:minikube start --cpus=6 --memory=12288 --disk-size=50g --addons=ingress
Проверьте состояние Minikube:
minikube statusКоманда выводит на экран терминала следующие данные:
Развертывание платформы#
Выполните следующие шаги для развертывания платформы:
Распакуйте архив платформы в рабочем каталоге:
mkdir astra-automation-setuptar -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Установите операторы платформы:
kubectl apply -f operators/
Создаются контейнеры и сервисы Kubernetes в пространстве
astra-automation. Это потребует несколько минут. Для проверки состояния подов используйте следующую команду:kubectl -n astra-automation get pods -w
Поды должны быть в состоянии
running.Перед развертыванием определите адреса, по которым будет выполняться доступ к интерфейсу платформы.
Эти адреса необходимо добавить в параметр
CSRF_TRUSTED_ORIGINSв манифесте платформы.Получите текущие URL и порты сервиса
ingress-nginx-controller:minikube service ingress-nginx-controller -n ingress-nginx
Откройте файл
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.
Запустите развертывание платформы в минимальном составе:
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]
В данном примере установлены следующие перенаправления:
http://192.168.49.2:32390 -> http://<gateway>
https://192.168.49.2:31668 -> https://<gateway>
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.
Первоначальная настройка платформы#
Первоначальная настройка состоит из следующих шагов:
При первом подключении браузер выводит предупреждение о том, что подключение не защищено. Это нормальное поведение, поскольку для защиты подключения контроллер использует самоподписанный сертификат. При использовании браузера на основе Chromium выполните следующие действия:
Нажмите кнопку Дополнительные.
Нажмите ссылку Перейти на сайт <IP> (небезопасно).
Для аутентификации в интерфейсе платформы введите название учетной записи
adminи пароль, определенный ранее.Активируйте лицензию на продукт, следуя инструкции.
Заключение#
В этом сценарии вы познакомились с основными шагами по развертыванию платформы и его использованию для настройки управляемых узлов. Из всей последовательности шагов важно выделить следующие действия:
Обеспечение предварительных требований.
Установка операторов в окружении Kubernetes.
Развертывание платформы с помощью операторов.
Обеспечение доступа к интерфейсу платформы.
Активизация лицензии на использование платформы.