Облачная платформаEvolution

Добавить пользовательский домен в Container Services



Перед началом работы:

  1. Создайте свое доменное имя. Для этого обратитесь к провайдеру доменов, например, Рег.ру, Руцентр и другим.

  2. Пропишите DNS-адреса у провайдера домена.

  3. Убедитесь, что в проекте подключен сервис Certificate Manager.

  4. Выпустите или загрузите свой сертификат.

  5. Добавьте 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 зарезервированы сервисом и не могут использоваться.

Новый пользовательский домен будет добавлен. Домен по умолчанию включен и используется для обращения к контейнеру.

Каждый домен вы сможете добавить только для одного контейнера. Добавление одинаковых доменов для разных контейнеров в разных проектах и организациях не допускается.