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

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

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

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

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

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

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

    • ./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", minio.enable — "0".
    • ./cfg/image-api.values.yaml: processing.enable_hpa — "1", processing.enable_node_selector — "1", processing.enable_resource_management — "1").
Важно

Убедитесь, что имя пользователя и пароль, указанные в поле postgres-root-credentials файла platform.secrets.json, совпадают с именем пользователя и паролем в полях rds_root_username и rds_root_password файла aws.settings.cfg.

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

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

  1. Загрузите образы.

    ./cli.sh generic load-images
  2. Создайте ECR репозитории.

    ./cli.sh aws ecr create
  3. Войдите в реестр ECR.

    ./cli.sh aws ecr login
  4. Отправьте образы в реестр ECR.

    ./cli.sh aws ecr push
  5. Создайте управляемый Kubernetes-кластер.

    ./cli.sh aws eks create
  6. Получите конфигурацию кластера.

    ./cli.sh aws eks fetch-config
  7. Создайте OIDC для кластера EKS.

    ./cli.sh aws eks oidc create
  8. Создайте политику и роли для автомасштабирования.

    ./cli.sh aws eks autoscaler create-policy-role
  9. Установите автомасштабирование.

    ./cli.sh aws eks autoscaler install
  10. Создайте экземпляр базы данных RDS PostgreSQL.

    ./cli.sh aws eks rds create
  11. Получите адрес экземпляра RDS.

    ./cli.sh aws eks rds get-address

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

  12. Создайте ключевую пару для EC2.

    ./cli.sh aws eks ec2 create-key-pair
  13. Создайте экземпляр EC2 в VPC EKS.

    ./cli.sh aws eks ec2 create
  14. Получите публичный адрес EC2.

    ./cli.sh aws eks ec2 get-public-address

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

  15. Получите частный адрес EC2.

    ./cli.sh aws eks ec2 get-private-address

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

  16. Установите сервер метрик.

    ./cli.sh aws eks metric-server install
  17. Установите контроллер входа AWS.

    ./cli.sh aws eks ingress install
  18. Получите адрес балансировщика нагрузки.

    ./cli.sh aws eks ingress get-address

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

  19. Получите адрес реестра контейнеров.

    ./cli.sh aws ecr get-address

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

  20. Проверьте подключение к виртуальной машине и добавьте ее в список известных хостов.

    ./cli.sh aws eks ec2 connect
  21. Установите сервер лицензий.

    ./cli.sh license-server install

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

  22. Активируйте сервер лицензий.

    ./cli.sh license-server activate
  23. Установите секреты Kubernetes в кластер.

    ./cli.sh platform install-secrets
  24. Установите image-api.

    ./cli.sh image-api install
  25. Установите платформу.

    ./cli.sh platform install
  26. Для отслеживания развертывания откройте ещё одну вкладку терминала и выполните команду:

    watch 'kubectl get pods'

    Наличие у всех pods статуса Running означает, что платформа запущена.

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

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

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

./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.