Использование 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 <=
Конфигурация
Переместите файл лицензии 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",minio.enable— "0". - ./cfg/image-api.values.yaml:
processing.enable_hpa— "1",processing.enable_node_selector— "1",processing.enable_resource_management— "1").
- ./cfg/aws.settings.cfg:
Убедитесь, что имя пользователя и пароль, указанные в поле postgres-root-credentials файла platform.secrets.json, совпадают с именем пользователя и паролем в полях rds_root_username и rds_root_password файла aws.settings.cfg.
- Сохраните изменения в файлах.
Развертывание в AWS
Загрузите образы.
./cli.sh generic load-imagesСоздайте ECR репозитории.
./cli.sh aws ecr createВойдите в реестр ECR.
./cli.sh aws ecr loginОтправьте образы в реестр ECR.
./cli.sh aws ecr pushСоздайте управляемый 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 минут.Создайте ключевую пару для 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 и в{ ingress.host }в файле ./cfg/image-api.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Для отслеживания развертывания откройте ещё одну вкладку терминала и выполните команду:
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.