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 следуйте инструкциям ниже.
- Загрузка образов
$ ./cli.sh generic load-images
- Создание управляемого кластера Kubernetes
$ ./cli.sh aws eks create
- Получение конфигурации кластера
$ ./cli.sh aws eks fetch-config
- Создание OIDC для кластера EKS
$ ./cli.sh aws eks oidc create
- Создание политики и роли для автомасштабирования
$ ./cli.sh aws eks autoscaler create-policy-role
- Установка автомасштабирования
$ ./cli.sh aws eks autoscaler install
- Создание экземпляра базы данных RDS PostgreSQL
$ ./cli.sh aws eks rds create
- Получение адреса экземпляра RDS
$ ./cli.sh aws eks rds get-address
Убедитесь, что экземпляр EC2 готов в консоли.Если получено значение 'None', значит экземпляр RDS еще не инициализирован. После получения адреса ,введите его в { postgres.host }
в файле ./cfg/platform.values.yaml. Инициализация обычно занимает около 10 минут.
- Создание репозиториев ECR
$ ./cli.sh aws ecr create
- Вход в реестр ECR
$ ./cli.sh aws ecr login
- Отправка образов в реестр ECR
$ ./cli.sh aws ecr push
- Создание ключевой пары для EC2
$ ./cli.sh aws eks ec2 create-key-pair
- Создание экземпляра EC2 в VPC EKS
$ ./cli.sh aws eks ec2 create
- Получение публичного адреса EC2
$ ./cli.sh aws eks ec2 get-public-address
Вставьте полученный адрес в { <license_server_address> }
в файле ./cfg/license-server.settings.cfg.
- Получение частного адреса EC2
$ ./cli.sh aws eks ec2 get-private-address
Вставьте полученный адрес в { <license_server_address> }
в файле ./cfg/platform.secrets.json.
- Установка сервера метрик
$ ./cli.sh aws eks metric-server install
- Установка контроллера входа AWS
$ ./cli.sh aws eks ingress install
- Получение адреса балансировщика нагрузки
$ ./cli.sh aws eks ingress get-address
Вставьте полученный адрес в { ingress.rules.gateway.host }
в файле ./cfg/platform.values.yaml.
- Получение адреса реестра контейнеров
$ ./cli.sh aws ecr get-address
Вставьте полученный адрес в ./cfg/platform.values.yaml, ./cfg/image-api.values.yaml в поле registry
.
- Проверка подключения к виртуальной машине и добавление ее в список известных хостов
$ ./cli.sh aws eks ec2 connect
- Установка сервера лицензий
$ ./cli.sh license-server install
Убедитесь, что экземпляр EC2 готов в консоли AWS. Пользователь - "ubuntu". Выберите опцию "PEM-сертификат".
- Активация сервера лицензий
$ ./cli.sh license-server activate
- Установка секретов Kubernetes в кластер
$ ./cli.sh platform install-secrets
- Установка image-api
$ ./cli.sh image-api install
- Установка платформы
$ ./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: