С помощью этого руководства вы научитесь добавлять пользовательские домены к контейнерам в Container Apps.
Вы будете использовать следующие сервисы:
Certificate Manager — сервис управления сертификатами.
Container Apps — сервис для запуска контейнерных приложений в облаке. Не требует знания Kubernetes и создания виртуальных машин.
DNS — сервис по управлению приватными и публичными зонами и их ресурсными записями..
Провайдер доменов.
Шаги:
Создайте или загрузите сертификат в сервис Certificate Manager.
Проверьте подключение к контейнеру по пользовательскому домену.
Зарегистрируйтесь в личном кабинете Cloud.ru.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Для создания домена обратитесь к регистраторам доменных записей, например, Рег.ру, Руцентр и другим.
Создайте прямую публичную зону в сервисе Evolution DNS.
Подробную информацию о настройке доменных записей смотрите в документации вашего регистратора доменных имен, например:
Подготовьте среду, если не сделали этого ранее.
Подключите сервис Certificate Manager, если еще не подключен.
На верхней панели слева нажмите и выберите Контейнеры → Container Apps.
Выберите Container Services и нажмите Создать.
Выберите конфигурацию и укажите название контейнера.
Выберите реестр и репозиторий образа, который вы загрузили в Artifact Registry.
Укажите порт контейнера.
Нажмите Создать.
Дождитесь, когда контейнер и ревизия перейдут в статус Выполняется.
Пройдите аутентификацию.
Добавьте пользовательский домен к существующему контейнеру:
curl --request PATCH \--url https://containers.api.cloud.ru/v2/containers/<container_name>?projectId=<project_id>\--header 'authorization: Bearer <access_token>' \--header 'content-type: application/json' \--data '{"configuration": {"ingress": {"publiclyAccessible": true,"customDomains": [{"domain": "<domain_name>","certificateId": "<certificate_id>"}]}},"template": {"containers": [{"name": "<container_name_1>","image": "<image_name>","containerPort": <container_port>}]}}'
Где:
<access_token> — токен для авторизации.
<project_id>— идентификатор проекта.
<container_name> — название контейнера, который создан на предыдущем этапе.
<domain_name> — название пользовательского домена, который создали на первом этапе, в формате example.com или subdomain.example.com.
<certificate_id> — идентификатор сертификата.
<container_name_1> — название главного контейнера внутри созданного контейнера.
<image_name> — URI-адрес образа, который загружен в реестр Artifact Registry.
<container_port> — порт, на котором работает ваше приложение. Порты 8008, 8012, 8013, 8112, 8022, 9090, 9091 и порты от 1 до 1024 зарезервированы сервисом и не могут использоваться.
Пользовательский домен будет добавлен. Домен по умолчанию включен и используется для обращения к контейнеру.
На верхней панели слева нажмите и выберите Сеть → DNS.
Перейдите на вкладку Прямые зоны.
В строке прямой зоны, которую вы создали на шаге 2, нажмите и выберите Записи прямых зон.
Нажмите Создать запись.
Укажите Поддомен, который вы регистрировали на шаге 1.
(Опционально) Включите опцию Wildcard.
Выберите Тип записи CNAME.
В поле Значение укажите URL-адрес контейнера.
Задайте TTL.
Нажмите Создать.
Перейдите по URL-адресу пользовательского домена. Откроется ваше контейнерное приложение.
Вы добавили для контейнера в Container Apps пользовательский домен.