Использование 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.