Перенести подсеть в другую зону доступности
Подсеть можно перенести в другую зону доступности. Для переноса подсеть должна быть пустой, в ней не должно быть виртуальных машин и других ресурсов.
Убедитесь, что в подсети также нет адресов целевых групп балансировщиков. Их наличие препятствует переносу. Удалите неиспользуемые целевые группы или отдельные адреса.
Чтобы перенести подсеть в другую зону доступности:
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --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] | | b0cscj0f9uq5******** | subnet-c | enc772aa2rgq******** | | ru-central1-c | [10.0.0.0/16] | +----------------------+----------+----------------------+----------------+---------------+------------------+
Примечание
В переносимой подсети не должно быть виртуальных машин. Если вам нужно перенести подсеть с виртуальными машинами, сначала перенесите в новую зону доступности все виртуальные машины, а затем подсеть.
-
Перенесите подсеть:
yc vpc subnet relocate \ --id <идентификатор_подсети> \ --destination-zone-id <идентификатор_зоны_доступности>
Где:
-
--id
— идентификатор подсети, которую требуется перенести. -
--destination-zone-id
— идентификатор зоны доступности, в которую требуется перенести подсеть. Возможные значения:ru-central1-a
;ru-central1-b
;ru-central1-c
;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" }