Перейти к основному содержимому
Версия: 1.14.1

5. Использование AWS (Amazon Web Services)

5.1 Системные требования

  • Учетная запись AWS с правами администратора и значением квоты сервиса L-1216C47A > 40.
  • Ubuntu >= 20.04
  • Docker >= 20.10 установленный без необходимости использования команды sudo (https://docs.docker.com/engine/install/linux-postinstall)
  • Python >= 3.8
  • Helm >= 3.10.3
  • Eksctl >= 0.137
  • Kubectl >= 1.23
  • Aws-cli >= 2.11, настроенный с помощью команды 'aws configure'.

5.2 Конфигурация

Переместите файл лицензии face_sdk.lic (файл прикреплен к электронному письму) в папку setup.

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

  • ./cfg/aws.settings.cfg: aws_account_id (состоящий только из цифр).
  • ./cfg/license-server.settings.cfg: license_key.
  • ./cfg/platform.secrets.json: заполните license-secret.key и измените пароли.
  • ./cfg/platform.values.yaml: enable_hpa - "1", enable_node_selector - "1", enable_resource_management - "1", postgres.enable - "0".
  • ./cfg/image-api.values.yaml: processing.enable_hpa - "1", processing.enable_node_selector - "1", processing.enable_resource_management - "1").

Сохраните изменения в файлах.

5.3 Развертывание

Для развертывания OMNI Platform в AWS следуйте инструкциям ниже.

  1. Загрузка образов
$ ./cli.sh generic load-images
  1. Создание управляемого кластера Kubernetes
$ ./cli.sh aws eks create
  1. Получение конфигурации кластера
$ ./cli.sh aws eks fetch-config
  1. Создание OIDC для кластера EKS
$ ./cli.sh aws eks oidc create
  1. Создание политики и роли для автомасштабирования
$ ./cli.sh aws eks autoscaler create-policy-role
  1. Установка автомасштабирования
$ ./cli.sh aws eks autoscaler install
  1. Создание экземпляра базы данных RDS PostgreSQL
$ ./cli.sh aws eks rds create
  1. Получение адреса экземпляра RDS
$ ./cli.sh aws eks rds get-address

Убедитесь, что экземпляр EC2 готов в консоли.Если получено значение 'None', значит экземпляр RDS еще не инициализирован. После получения адреса ,введите его в { postgres.host } в файле ./cfg/platform.values.yaml. Инициализация обычно занимает около 10 минут.

  1. Создание репозиториев ECR
$ ./cli.sh aws ecr create
  1. Вход в реестр ECR
$ ./cli.sh aws ecr login
  1. Отправка образов в реестр ECR
$ ./cli.sh aws ecr push
  1. Создание ключевой пары для EC2
$ ./cli.sh aws eks ec2 create-key-pair
  1. Создание экземпляра EC2 в VPC EKS
$ ./cli.sh aws eks ec2 create
  1. Получение публичного адреса EC2
$ ./cli.sh aws eks ec2 get-public-address

Вставьте полученный адрес в { <license_server_address> } в файле ./cfg/license-server.settings.cfg.

  1. Получение частного адреса EC2
$ ./cli.sh aws eks ec2 get-private-address

Вставьте полученный адрес в { <license_server_address> } в файле ./cfg/platform.secrets.json.

  1. Установка сервера метрик
$ ./cli.sh aws eks metric-server install
  1. Установка контроллера входа AWS
$ ./cli.sh aws eks ingress install
  1. Получение адреса балансировщика нагрузки
$ ./cli.sh aws eks ingress get-address

Вставьте полученный адрес в { ingress.rules.gateway.host } в файле ./cfg/platform.values.yaml.

  1. Получение адреса реестра контейнеров
$ ./cli.sh aws ecr get-address

Вставьте полученный адрес в ./cfg/platform.values.yaml, ./cfg/image-api.values.yaml в поле registry.

  1. Проверка подключения к виртуальной машине и добавление ее в список известных хостов
$ ./cli.sh aws eks ec2 connect
  1. Установка сервера лицензий
$ ./cli.sh license-server install

Убедитесь, что экземпляр EC2 готов в консоли AWS. Пользователь - "ubuntu". Выберите опцию "PEM-сертификат".

  1. Активация сервера лицензий
$ ./cli.sh license-server activate
  1. Установка секретов Kubernetes в кластер
$ ./cli.sh platform install-secrets
  1. Установка image-api
$ ./cli.sh image-api install
  1. Установка платформы
$ ./cli.sh platform install

Платформа доступна по адресу балансировщика нагрузки. Учетные данные для входа находятся в секрете пользователя платформы ./cfg/platform.secrets.json.

5.4 Проверка работоспособности

Запуск интеграционного теста платформы:

$ ./cli.sh platform test - <platform_url> <platform_user_email>

Замените <platform_url> на URL платформы и <platform_user_email> на электронную почту пользователя.

Запуск интеграционного теста image-api:

$ ./cli.sh image-api test - <image_api_url>

Замените <image_api_url> на URL image-api.

примечание

Для доступа к ImageAPI необходимо установить значение ingress.host=<public_host> в файле ./cfg/image-api.values.yaml: