Создать группу виртуальных машин фиксированного размера
Вы можете создать группу с фиксированным количеством ВМ. Управление размером такой группы ВМ осуществляется вручную. Подробнее читайте в разделе Группы с ручным масштабированием.
Внимание
Создавая группы ВМ, учитывайте лимиты. Чтобы не нарушить работу компонента Instance Groups, не изменяйте и не удаляйте вручную созданные им ресурсы: целевую группу Network Load Balancer, ВМ и диски. Вместо этого измените или удалите группу полностью.
По умолчанию все операции в Instance Groups выполняются от имени сервисного аккаунта. Если сервисного аккаунта нет, создайте его.
Если вы используете образ на основе Windows, сбросьте пароль после создания ВМ.
Чтобы создать группу ВМ фиксированного размера:
- В консоли управления
выберите каталог, в котором будет создана группа виртуальных машин. - В списке сервисов выберите Compute Cloud.
- На панели слева выберите
Группы виртуальных машин. - Нажмите кнопку Создать группу виртуальных машин.
- В блоке Базовые параметры:
-
Введите имя и описание группы ВМ. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Примечание
Имя виртуальной машины используется для генерации внутреннего FQDN единожды — при создании ВМ. Если для вас важен внутренний FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
-
Выберите сервисный аккаунт из списка или создайте новый. Чтобы иметь возможность создавать, обновлять и удалять ВМ в группе, назначьте сервисному аккаунту роль
editor
. По умолчанию все операции в Instance Groups выполняются от имени сервисного аккаунта.Сервисный аккаунт нельзя удалить, пока он связан с группой виртуальных машин.
-
При необходимости включите опцию Защита от удаления. Пока опция включена, группу удалить невозможно.
-
- В блоке Распределение в поле Зона доступности выберите нужные. ВМ группы могут находиться в разных зонах доступности.
- В блоке Шаблон виртуальной машины нажмите кнопку Задать, чтобы задать конфигурацию базовой ВМ:
-
В блоке Общая информация введите описание шаблона.
-
В блоке Образ загрузочного диска выберите, какую систему развернуть на загрузочном диске ВМ.
-
В блоке Диски:
- Выберите тип диска.
- Укажите размер диска.
- Чтобы добавить дополнительные диски, нажмите Добавить диск.
-
В блоке Вычислительные ресурсы:
-
Выберите платформу.
-
Укажите необходимое количество vCPU, гарантированную долю vCPU и объем RAM.
-
При необходимости сделайте виртуальную машину Прерываемой.
Создавая группу прерываемых машин, учитывайте, что виртуальные машины будут останавливаться спустя 24 часа непрерывной работы, а могут быть остановлены еще раньше. При этом возможна ситуация, что Instance Groups не сможет сразу перезапустить их из-за нехватки ресурсов. Это может произойти, если резко возрастет потребление вычислительных ресурсов в Yandex Cloud.
-
(опционально) Включите программно-ускоренную сеть.
-
-
В блоке Сетевые настройки:
-
Укажите идентификатор подсети или выберите облачную сеть из списка.
Если сети нет, нажмите Создать сеть и создайте ее:- В открывшемся окне укажите имя сети.
- (Опционально) Для автоматического создания подсетей выберите опцию Создать подсети.
- Нажмите Создать сеть.
У каждой сети должна быть как минимум одна подсеть. Если подсети нет, создайте ее, выбрав Создать подсеть.
-
В поле Публичный адрес выберите способ назначения адреса:
Автоматически
— чтобы назначить случайный IP-адрес из пула адресов Yandex Cloud.Без адреса
— чтобы не назначать публичный IP-адрес.
-
Выберите подходящие группы безопасности.
-
(опционально) Создайте записи для ВМ в зоне DNS:
- Разверните блок Настройки DNS для внутренних адресов и нажмите кнопку Добавить запись.
- Укажите зону, FQDN и время жизни записи. При указании FQDN для зоны доступна опция
Определять автоматически
.
Вы можете добавить несколько записей во внутренние зоны DNS. Подробнее см. Интеграция Cloud DNS с Compute Cloud.
-
-
В блоке Доступ укажите данные для доступа на ВМ:
- Выберите сервисный аккаунт, который следует привязать к ВМ.
- Если выбран образ на основе Linux, заполните поля Логин и SSH-ключ. В качестве ключа укажите содержимое файла открытого ключа.
- При необходимости выберите опцию
Доступ к серийной консоли
.
-
Нажмите кнопку Сохранить.
-
- В блоке В процессе создания и обновления разрешено:
-
В поле Добавлять выше целевого значения укажите, на какое количество ВМ можно превышать размер группы.
При приведении количества ВМ в группе к целевому значению, созданные сверх целевого размера по квоте
max_expansion
виртуальные машины могут остаться в группе, в то время как ВМ, существовавшие в группе до этого, могут быть удалены. -
В поле Уменьшать относительно целевого значения укажите, на какое количество ВМ можно уменьшать размер группы.
-
В поле Одновременно создавать укажите, сколько ВМ можно одновременно создавать.
-
В поле Время запуска укажите срок, после которого ВМ начнет получать нагрузку.
-
В поле Одновременно останавливать укажите, сколько ВМ можно одновременно останавливать.
-
В поле Останавливать машины по стратегии укажите одну из стратегий:
Автоматическая
— Instance Groups самостоятельно выбирает, какие ВМ остановить при обновлении или уменьшении группы.Ручная
— Instance Groups ожидает, когда ВМ остановятся самостоятельно или будут остановлены пользователем.
-
- В блоке Масштабирование:
- Выберите
Фиксированный
тип масштабирования. - Укажите размер группы ВМ.
- Выберите
- При необходимости активируйте опцию Проверка состояний для получения сведений о состоянии ВМ и их автоматического восстановления в случае сбоя.
- В поле Тип выберите протокол проверок состояния:
HTTP
илиTCP
. - В поле Путь (для типа HTTP) укажите URL‐путь запроса, на который Instance Groups будет отправлять запросы проверки для HTTP.
- В поле Порт укажите номер порта от 1 до 32767, на который Instance Groups будет отправлять запросы проверки.
- В поле Время ожидания, c укажите время ожидания ответа от 1 до 60 секунд.
- В поле Интервал, c укажите интервал между повторными проверками от 1 до 60 секунд. Интервал должен быть больше времени ожидания минимум на 1 секунду.
- В поле Порог работоспособности укажите количество успешных проверок, после которого ВМ будет считаться работающей нормально.
- В поле Порог неработоспособности укажите количество неудачных проверок, после которого ВМ будет считаться неработающей.
- В поле Тип выберите протокол проверок состояния:
- В блоке Пользовательские переменные при необходимости укажите пары
Ключ
-Значение
. - Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания группы ВМ:
yc compute instance-group create --help
-
Проверьте, есть ли в каталоге сети:
yc vpc network list
Если ни одной сети нет, создайте ее.
-
Выберите один из публичных образов Yandex Cloud Marketplace (например, CentOS 7).
Чтобы получить список доступных образов с помощью CLI, выполните следующую команду:
yc compute image list --folder-id standard-images
Результат:
+----------------------+-------------------------------------+--------------------------+----------------------+--------+ | ID | NAME | FAMILY | PRODUCT IDS | STATUS | +----------------------+-------------------------------------+--------------------------+----------------------+--------+ ... | fdvk34al8k5n******** | centos-7-1549279494 | centos-7 | dqni65lfhvv2******** | READY | | fdv7ooobjfl3******** | windows-2016-gvlk-1548913814 | windows-2016-gvlk | dqnnc72gj2is******** | READY | | fdv4f5kv5cvf******** | ubuntu-1604-lts-1549457823 | ubuntu-1604-lts | dqnnb6dc7640******** | READY | ... +----------------------+-------------------------------------+--------------------------+----------------------+--------+
-
Создайте YAML-файл с произвольным именем, например
specification.yaml
. -
Опишите в созданном файле:
-
Общую информацию о группе ВМ:
name: first-fixed-group service_account_id: <идентификатор_сервисного_аккаунта> description: "Эта группа ВМ создана с помощью YAML-файла конфигурации."
Где:
-
name
— произвольное имя группы ВМ. Имя должно быть уникальным в рамках каталога. Имя может содержать строчные буквы латинского алфавита, цифры и дефисы. Первый символ должен быть буквой. Последний символ не может быть дефисом. Максимальная длина имени — 63 символа. -
service_account_id
— идентификатор сервисного аккаунта.Сервисный аккаунт нельзя удалить, пока он связан с группой виртуальных машин.
-
description
— произвольное описание группы ВМ.
-
-
Шаблон ВМ, например:
instance_template: platform_id: standard-v3 resources_spec: memory: 2g cores: 2 boot_disk_spec: mode: READ_WRITE disk_spec: image_id: fdvk34al8k5n******** type_id: network-hdd size: 32g network_interface_specs: - network_id: c64mknqgnd8a******** primary_v4_address_spec: {} security_group_ids: - enps0ar5s3ti******** scheduling_policy: preemptible: false placement_policy: placement_group_id: rmppvhrgm77g********
По умолчанию размер диска указывается в байтах. Вы можете указать другую единицу измерения с помощью соответствующего суффикса.
Суффикс Приставка и множитель Пример k
кило- (210) 640k
= 640 × 210 =655360
m
мега- (220) 48m
= 48 × 220 =50331648
g
гига- (230) 10g
= 10 × 230 =10737418240
t
тера- (240) 4t
= 4 × 240 =4398046511104
p
пета- (250) 2p
= 2 × 250 =2251799813685248
Где:
-
platform_id
— идентификатор платформы. -
memory
— количество памяти (RAM). -
cores
— количество ядер процессора (vCPU). -
mode
— режим доступа к диску.READ_ONLY
— доступ на чтение.READ_WRITE
— доступ на чтение и запись.
-
image_id
— идентификатор публичного образа. Идентификаторы образа можно посмотреть в консоли управления при создании ВМ или в Cloud Marketplace на странице образа в блоке Идентификаторы продукта. -
type_id
— тип диска. -
size
— размер диска. -
network_id
— идентификатор сетиdefault-net
. -
primary_v4_address_spec
— спецификация версии интернет протокола IPv4. Вы можете предоставить публичный доступ к ВМ группы, указав версию IP для публичного IP-адреса. Подробнее читайте в разделе Описание шаблона в YAML-файле. -
security_group_ids
— список идентификаторов групп безопасности. -
scheduling_policy
— конфигурация политики планирования. -
preemptible
— флаг, указывающий создавать прерываемые ВМ.true
— будет создана прерываемая ВМ.false
(по умолчанию) — обычная.
Создавая группу прерываемых ВМ учитывайте, что ВМ будут останавливаться спустя 24 часа непрерывной работы, а могут быть остановлены еще раньше. При этом возможна ситуация, что ВМ не смогут сразу перезапуститься их из-за нехватки ресурсов. Это может произойти, если резко возрастет потребление вычислительных ресурсов в Yandex Cloud.
-
placement_policy
— (опционально) параметры группы размещения ВМ:placement_group_id
— идентификатор группы размещения.
-
-
deploy_policy: max_unavailable: 1 max_expansion: 0 scale_policy: fixed_scale: size: 3 allocation_policy: zones: - zone_id: ru-central1-a instance_tags_pool: - first - second - third
Где:
deploy_policy
— политика развертывания ВМ в группе.scale_policy
— политика масштабирования ВМ в группе.allocation_policy
— политика распределения ВМ по зонам доступности.
Полный код файла
specification.yaml
:name: first-fixed-group service_account_id: ajed6ilf11qg******** description: "Эта группа ВМ создана с помощью YAML-файла конфигурации." instance_template: platform_id: standard-v3 resources_spec: memory: 2g cores: 2 boot_disk_spec: mode: READ_WRITE disk_spec: image_id: fdvk34al8k5n******** type_id: network-hdd size: 32g network_interface_specs: - network_id: c64mknqgnd8a******** primary_v4_address_spec: {} security_group_ids: - enps0ar5s3ti******** placement_policy: placement_group_id: rmppvhrgm77g******** deploy_policy: max_unavailable: 1 max_expansion: 0 scale_policy: fixed_scale: size: 3 allocation_policy: zones: - zone_id: ru-central1-a instance_tags_pool: - first - second - third
-
-
Создайте группу ВМ в каталоге по умолчанию:
yc compute instance-group create --file specification.yaml
Данная команда создаст группу из трех однотипных ВМ со следующими характеристиками:
- С именем
first-fixed-group
. - С OC CentOS 7.
- В сети
default-net
. - В зоне доступности
ru-central1-a
. - С 2 vCPU и 2 ГБ RAM.
- С сетевым HDD-диском объемом 32 ГБ.
- С именем
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_iam_service_account" "ig-sa" { name = "ig-sa" description = "Сервисный аккаунт для управления группой ВМ." } resource "yandex_resourcemanager_folder_iam_member" "editor" { folder_id = "<идентификатор_каталога>" role = "editor" member = "serviceAccount:${yandex_iam_service_account.ig-sa.id}" depends_on = [ yandex_iam_service_account.ig-sa, ] } resource "yandex_compute_instance_group" "ig-1" { name = "fixed-ig" folder_id = "<идентификатор_каталога>" service_account_id = "${yandex_iam_service_account.ig-sa.id}" deletion_protection = "<защита_от_удаления>" depends_on = [yandex_resourcemanager_folder_iam_member.editor] instance_template { platform_id = "standard-v3" resources { memory = <объем_RAM_ГБ> cores = <количество_ядер_vCPU> } boot_disk { mode = "READ_WRITE" initialize_params { image_id = "<идентификатор_образа>" } } network_interface { network_id = "${yandex_vpc_network.network-1.id}" subnet_ids = ["${yandex_vpc_subnet.subnet-1.id}"] security_group_ids = ["<список_идентификаторов_групп_безопасности>"] } metadata = { ssh-keys = "<имя_пользователя>:<содержимое_SSH-ключа>" } } scale_policy { fixed_scale { size = <количество_ВМ_в_группе> } } allocation_policy { zones = ["ru-central1-a"] } deploy_policy { max_unavailable = 1 max_expansion = 0 } } resource "yandex_vpc_network" "network-1" { name = "network1" } resource "yandex_vpc_subnet" "subnet-1" { name = "subnet1" zone = "ru-central1-a" network_id = "${yandex_vpc_network.network-1.id}" v4_cidr_blocks = ["192.168.10.0/24"] }
Где:
-
yandex_iam_service_account
— описание сервисного аккаунта. Все операции в Instance Groups выполняются от имени сервисного аккаунта.Сервисный аккаунт нельзя удалить, пока он связан с группой виртуальных машин.
-
yandex_resourcemanager_folder_iam_member
— описание прав доступа к каталогу, которому принадлежит сервисный аккаунт. Чтобы иметь возможность создавать, обновлять и удалять ВМ в группе, назначьте сервисному аккаунту рольeditor
. -
yandex_compute_instance_group
— описание группы ВМ:- Общая информация о группе ВМ:
name
— имя группы ВМ.folder_id
— идентификатор каталога.service_account_id
— идентификатор сервисного аккаунта.deletion_protection
— защита группы ВМ от удаления:true
илиfalse
. Пока опция включена, группу ВМ удалить невозможно. Значение по умолчаниюfalse
.
- Шаблон ВМ:
platform_id
— платформа.resources
— количество ядер vCPU и объем RAM, доступные ВМ. Значения должны соответствовать выбранной платформе.boot_disk
— настройки загрузочного диска.- Идентификатор выбранного образа. Вы можете получить идентификатор образа из списка публичных образов.
- Режим доступа к диску:
READ_ONLY
(чтение) илиREAD_WRITE
(чтение и запись).
network_interface
— настройка сети. Укажите идентификаторы сети, подсети и групп безопасности.metadata
— в метаданных необходимо передать открытый ключ для SSH-доступа на ВМ. Подробнее в разделе Метаданные виртуальной машины.
- Политики:
deploy_policy
— политика развертывания ВМ в группе.scale_policy
— политика масштабирования ВМ в группе.allocation_policy
— политика распределения ВМ по зонам доступности.
- Общая информация о группе ВМ:
-
yandex_vpc_network
— описание облачной сети. -
yandex_vpc_subnet
— описание подсети, к которой будет подключена группа ВМ.Примечание
Если у вас уже есть подходящие ресурсы (сервисный аккаунт, облачная сеть и подсеть), описывать их повторно не нужно. Используйте их имена и идентификаторы в соответствующих параметрах.
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
. -
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Воспользуйтесь методом REST API create для ресурса InstanceGroup или вызовом gRPC API InstanceGroupService/Create.