Быстрое развертывание платформы#
Быстрое развертывание платформы 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для обеспечения доступа к интерфейсу платформы;доступ к реестру контейнерных образов по протоколу HTTP (без TLS).
Если Minikube развернут локально и вы планируете подключаться к интерфейсу по адресу вида
https://<minikube_ip>:<nodeport_https>, используйте следующую команду:minikube start --cpus=6 --memory=12288 --disk-size=50g \ --addons=ingress \ --insecure-registry="<minikube_ip>:<nodeport_https>"
Здесь:
<minikube_ip>– IP-адрес узла Minikube (обычно 192.168.49.2);<nodeport_https>– HTTPS порт сервисаingress-nginx-controller(обычно 31569).
Отмеченный выше IP-адрес назначается на узел Minikube (Docker container) по умолчанию c использованием Docker как драйвера на вновь созданной ВМ согласно приведенным ранее шагам. Проверить адрес узла Minikube можно командой
minikube ipтолько после старта Minikube. Если эти адреса не совпадают, необходимо остановить Minikube командойminikube stop, удалить все настройки командойminikube deleteи повторить запуск с исправленным значением адреса. При необходимости можно назначить IP-адрес из свободного диапазона адресов с помощью аргумента--static-ipв команде запуска.Если Minikube развернут на внешней ВМ и вы планируете подключаться к интерфейсу по адресу вида
https://<ip_vm>:8443, используйте следующую команду:minikube start --cpus=6 --memory=12288 --disk-size=50g \ --addons=ingress \ --insecure-registry="<ip_vm>:8443"
Здесь
<ip_vm>– IP-адрес внешней ВМ, на которой запускается Minikube.Параметр
--insecure-registryзадает адрес реестра контейнерных образов, к которому разрешено обращаться по протоколу HTTP без использования TLS.Предупреждение
Использование подключения без TLS является упрощением, допустимым только для демонстрационных и тестовых развертываний.
В производственной среде необходимо использовать реестр контейнерных образов, доступный по HTTPS, и не применять параметр
--insecure-registry.Проверьте состояние Minikube:
minikube statusКоманда выводит на экран терминала следующие данные:
Развертывание платформы#
Выполните следующие шаги для развертывания платформы:
Распакуйте архив платформы в рабочем каталоге:
mkdir astra-automation-setuptar -xvzf <package_name> -C astra-automation-setup/ && cd astra-automation-setup
Здесь <package_name> – название архивированного файла, загруженного из Личного кабинета, например
aa-kubernetes-bundle-2-0-upd1.tar.gz.Структура пакета имеет следующий вид:
├── 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.Перед развертыванием определите адреса, по которым будет выполняться доступ к интерфейсу платформы.
В среде Minikube доступ к сервисам осуществляется напрямую по IP-адресу узла.
Получите IP-адрес Minikube:
minikube ipПример вывода:
Добавьте этот адрес в параметр
CSRF_TRUSTED_ORIGINSв манифесте платформы, выполнив следующие действия:Получите URL и порты сервиса
ingress-nginx-controller:minikube service ingress-nginx-controller -n ingress-nginx --url
Пример вывода:
Команда выводит два URL:
первый – для HTTP (NodePort сервиса, соответствующий порту 80);
второй – для HTTPS (NodePort сервиса, соответствующий порту 443).
Откройте файл
examples/minikube/minimal/minikube-minimal-aa-demo.yamlи добавьте в конец блокаspecманифеста блокextra_settings.Пример:
extra_settings: - setting: CSRF_TRUSTED_ORIGINS value: - 'https://<minikube_ip>:<nodeport_https>' - 'https://<ip_vm>:8443'
Здесь:
https://<minikube_ip>:<nodeport_https>– адрес для локального доступа:
<minikube_ip>– IP-адрес узла Minikube (обычно192.168.49.2);<nodeport_https>– порт HTTPS сервисаingress-nginx-controller(из второго URL, полученного ранее, например31569).
https://<ip_vm>:8443– адрес для удалённого доступа. Укажите эту строку только если Minikube развернут на внешней виртуальной машине.
<ip_vm>– IP-адрес виртуальной машины.
(Опционально) Загрузите пользовательские контейнерные образы.
В среде Minikube отсутствует полноценный внешний реестр контейнеров с поддержкой TLS. Для загрузки образов используется объект маршрутизации
ingress, доступный по HTTP.Поскольку соединение выполняется по HTTP, данные передаются в открытом виде. Поэтому при работе с Podman необходимо явно отключить проверку TLS (
--tls-verify=false). Для этого выполните следующие действия:Добавьте метку для образа:
podman tag hub.astra-automation.ru/aa-2.0/aa-minimal-ee:latest \ <minikube_ip>:<nodeport_https>/aa-2.0/aa-minimal-ee:latest
Выполните аутентификацию:
podman login <minikube_ip>:<nodeport_https> --tls-verify=false
Загрузите образ:
podman push <minikube_ip>:<nodeport_https>/aa-2.0/aa-minimal-ee:latest --tls-verify=false
Запустите развертывание платформы в минимальном составе:
kubectl apply -n astra-automation -f examples/minikube/minimal/minikube-minimal-aa-demo.yaml
На развертывание потребуется несколько минут. Дождитесь готовности подов платформы:
kubectl -n astra-automation get pods -w
Поды должны быть в состоянии
RunningилиCompleted.Проверьте доступность объекта платформы
ingress:kubectl get ingress aa-demo -n astra-automation
Пример вывода:
Значение
*в полеHOSTSозначает, чтоingressпринимает запросы по IP-адресу без использования доменного имени.Важно
Если вы добавили или изменили
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.
Развертывание платформы с помощью операторов.
Обеспечение доступа к интерфейсу платформы.
Активизация лицензии на использование платформы.