Перенести подсеть в другую зону доступности
Подсеть можно перенести в другую зону доступности. Для переноса подсеть должна быть пустой, в ней не должно быть виртуальных машин и других ресурсов.
Убедитесь, что в подсети также нет адресов целевых групп балансировщиков. Их наличие препятствует переносу. Удалите неиспользуемые целевые группы или отдельные адреса.
Чтобы перенести подсеть в другую зону доступности:
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Посмотрите описание команды CLI для переноса подсети:
yc vpc subnet relocate --help -
В каталоге по умолчанию узнайте идентификатор подсети, которую требуется перенести:
yc vpc subnet listРезультат:
+----------------------+----------+----------------------+----------------+---------------+------------------+ | ID | NAME | NETWORK ID | ROUTE TABLE ID | ZONE | RANGE | +----------------------+----------+----------------------+----------------+---------------+------------------+ | e9bcd5mq43cn******** | subnet-a | encb4ubvmief******** | | ru-central1-a | [10.1.0.0/16] | | e2llon52hhss******** | subnet-b | enc39op1vq9m******** | | ru-central1-b | [192.168.1.0/24] | +----------------------+----------+----------------------+----------------+---------------+------------------+Примечание
В переносимой подсети не должно быть виртуальных машин. Если вам нужно перенести подсеть с виртуальными машинами, сначала перенесите в новую зону доступности все виртуальные машины, а затем подсеть.
-
Перенесите подсеть:
yc vpc subnet relocate \ --id <идентификатор_подсети> \ --destination-zone-id <идентификатор_зоны_доступности>Где:
-
--id— идентификатор подсети, которую требуется перенести. -
--destination-zone-id— идентификатор зоны доступности, в которую требуется перенести подсеть. Возможные значения:ru-central1-a;ru-central1-b;ru-central1-d.
Пример:
yc vpc subnet relocate \ --id e9bcd5mq43cn******** \ --destination-zone-id ru-central1-dРезультат:
id: e9bcd5mq43cn******** folder_id: b1gt6g8ht345******** created_at: "2023-10-06T10:30:06Z" name: subnet-a network_id: encb4ubvmief******** zone_id: ru-central1-d v4_cidr_blocks: - 10.1.0.0/16 dhcp_options: {}Подробнее о команде
yc vpc subnet relocateсм. в справочнике CLI. -
Воспользуйтесь методом REST API relocate для ресурса Subnet или вызовом gRPC API SubnetService/Relocate.
Пример запроса
Чтобы воспользоваться примером, установите cURL
-
Получите IAM-токен, чтобы аутентифицироваться в API.
-
Сохраните полученный IAM-токен в переменную:
export IAM_TOKEN=<полученный_IAM-токен> -
Подготовьте файл
body.jsonс телом запроса, указав идентификатор зоны доступности, в которую требуется перенести подсеть:{ "destinationZoneId": "<идентификатор_зоны_доступности>" } -
Выполните запрос:
curl \ --request POST \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data "@<файл_с_телом_запроса>" \ https://vpc.api.cloud.yandex.net/vpc/v1/subnets/<идентификатор_подсети>:relocateГде:
<файл_с_телом_запроса>— путь к созданному ранее файлу с телом запросаbody.json.<идентификатор_подсети>— идентификатор подсети, которую требуется перенести в новую зону доступности.
Примечание
В переносимой подсети не должно быть виртуальных машин. Если вам нужно перенести подсеть с виртуальными машинами, сначала перенесите в новую зону доступности все виртуальные машины, а затем подсеть.
Результат:
{ "done": true, "metadata": { "@type": "type.googleapis.com/yandex.cloud.vpc.v1.RelocateSubnetMetadata", "subnetId": "b0cnd1srghnm********" }, "response": { "@type": "type.googleapis.com/yandex.cloud.vpc.v1.Subnet", "v4CidrBlocks": [ "192.168.3.0/24" ], "dhcpOptions": {}, "id": "b0cnd1srghnm********", "folderId": "b1gt6g8ht345********", "createdAt": "2023-10-06T10:30:06Z", "name": "subnet-c", "networkId": "enpv51f8lple********", "zoneId": "ru-central1-d" }, "id": "enpfitqeageu********", "description": "Relocate subnet to other zone", "createdAt": "2023-11-02T10:40:52.330608134Z", "createdBy": "ajeol2afu1js********", "modifiedAt": "2023-11-02T10:40:52.782965099Z" }