Перед началом работы:
Создайте свое доменное имя. Для этого обратитесь к провайдеру доменов, например, Рег.ру, Руцентр и другим.
Пропишите DNS-адреса у провайдера домена.
Убедитесь, что в проекте подключен сервис Certificate Manager.
Добавьте CNAME-запись для домена.
Чтобы создать новый контейнер со своим пользовательским доменом, воспользуйтесь методом POST:
curl --request POST \--url https://containers.api.cloud.ru/v2/containers \--header 'authorization: Bearer <access_token>' \--header 'content-type: application/json' \--data '{"projectId": "<project_id>","name": "<container_name>","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 зарезервированы сервисом и не могут использоваться.
Чтобы добавить пользовательский домен к существующему контейнеру, воспользуйтесь методом PATCH:
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 зарезервированы сервисом и не могут использоваться.
Новый пользовательский домен будет добавлен. Домен по умолчанию включен и используется для обращения к контейнеру.
Каждый домен вы сможете добавить только для одного контейнера. Добавление одинаковых доменов для разных контейнеров в разных проектах и организациях не допускается.