Шаблон виртуальной машины
При создании группы необходимо описать шаблон виртуальной машины — конфигурацию базовой виртуальной машины, по которой будут развертываться все ВМ группы.
В CLI описание шаблона передается вместе с описанием политик в виде YAML-файла при создании или изменении группы ВМ с помощью флага --file
. Таким образом, удобно передать значение из нескольких строк. Подробнее читайте в разделе Создать группу виртуальных машин фиксированного размера.
Вы можете задать переменные значения для шаблона ВМ. Подробнее читайте в разделе Переменные в шаблоне виртуальной машины.
Вычислительные ресурсы
При описании шаблона, вы указываете, сколько вычислительных ресурсов будет выделено каждой виртуальной машине: количество и гарантированный уровень производительности ядер процессора (vCPU), количество памяти (RAM). Вы можете выбрать подходящее количество вычислительных ресурсов из расчета планируемой нагрузки. Подробнее читайте в разделе Уровни производительности vCPU.
Вы также можете указать в шаблоне, чтобы создавались прерываемые виртуальные машины — они дешевле обычных. Автоматическое восстановление прерываемых ВМ будет происходить только, если в зоне доступности для этого достаточно вычислительных ресурсов. Если ресурсов недостаточно, Instance Groups продолжит автоматическое восстановление, когда появятся свободные ресурсы, но этот процесс может занять продолжительное время.
Для виртуальных машин в группе можно включить программно-ускоренную сеть. Тогда обработка сетевого трафика ВМ будет перенесена на дополнительные вычислительные ядра.
Диски
К каждой виртуальной машине в группе должен быть подключен как минимум один диск — загрузочный. Каждый загрузочный диск создается автоматически и подключается только к одной виртуальной машине при создании группы ВМ. Подробнее читайте в разделе Диски.
Помимо этого, к каждой виртуальной машине можно подключить дополнительные диски. Вы можете создать дополнительный диск вместе с группой виртуальных машин. Новый диск можно создать пустым, восстановить из снимка или из образа. Подключать и отключать дополнительные диски можно только при создании или изменении группы. Изменять дополнительные диски можно с помощью обновления YAML-спецификации.
Внимание
При удалении виртуальной машины в группе будут удалены и ее диски. Виртуальная машина может быть удалена при масштабировании или автоматическом восстановлении.
Сеть
При создании группы вы можете:
- задать сеть для самой группы;
- задать подсети для каждой виртуальной машины группы.
Вы можете создать группу, не задавая подсети для виртуальных машин, если выбранная для каждой виртуальной машины зона доступности содержит ровно одну подсеть указанной сети.
Также для каждой виртуальной машины можно настроить публичный IP-адрес. Это позволит виртуальной машине взаимодействовать с другими сервисами в интернете. Подробнее читайте в разделе Сеть на виртуальной машине.
Вы можете задать подходящие группы безопасности в шаблоне или настроить их индивидуально для каждой виртуальной машины из группы.
Метаданные
В шаблоне можно описать метаданные ВМ для машин в группе. Например, пользователей системы, которых нужно создавать при запуске новой машины, следует описать в ключе user-data
. Подробнее о том, какие метаданные поддерживает Compute Cloud, читайте в разделе Метаданные виртуальной машины.
Описание шаблона в YAML-файле
Шаблон представляет собой описание конфигурации базовой виртуальной машины и определяется в YAML-файле, в ключе instance_template
.
Пример записи в YAML-файле:
...
instance_template:
platform_id: standard-v3
resources_spec:
memory: 2G
cores: 2
core_fraction: 20
boot_disk_spec:
mode: READ_WRITE
disk_spec:
image_id: jk9ib7ecsbrj********
type_id: network-hdd
size: 50G
preserve_after_instance_delete: false
secondary_disk_specs:
- name: disk-2
mode: READ_WRITE
disk_spec:
preserve_after_instance_delete: false
type_id: network-hdd
size: 21474836480
network_interface_specs:
- network_id: adv1rq7pmi05********
subnet_ids:
- u8zxv2v5f3rr********
primary_v4_address_spec: {
one_to_one_nat_spec: {
ip_version: IPV4
}
}
security_group_ids:
- enps0ar5s3ti********
network_settings:
type: SOFTWARE_ACCELERATED
placement_policy:
placement_group_id: rmppvhrgm77g********
metadata:
user-data: |-
#cloud-config
write_files:
- path: /var/lib/cloud/scripts/per-boot/01-run-load-generator.sh
permissions: '0555'
content: |
#!/bin/bash
docker run -d --net=host -p 80:80 openresty/openresty:alpine
users:
- name: my-user
groups: sudo
shell: /bin/bash
sudo: 'ALL=(ALL) NOPASSWD:ALL'
ssh-authorized-keys:
- ssh-ed25519 AAAAB3...
...
По умолчанию размер диска указывается в байтах. Вы можете указать другую единицу измерения с помощью соответствующего суффикса.
Суффикс | Приставка и множитель | Пример |
---|---|---|
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 |
Идентификатор аппаратной платформы виртуальной машины. |
resources_spec.memory |
Объем памяти в байтах, доступный виртуальной машине. Максимальное значение — 274877906944 (275 ГБ). |
resources_spec.cores |
Количество ядер, доступных виртуальной машине. Значение зависит от типа платформы. |
resources_spec.core_fraction |
Базовый уровень производительности vCPU. |
boot_disk_spec |
Параметры загрузочного диска. |
boot_disk_spec.disk_spec.mode |
Режим доступа к диску.– READ_ONLY — доступ на чтение.– READ_WRITE — доступ на чтение и запись. |
boot_disk_spec.disk_spec.image_id |
Идентификатор образа, из которого будет создан диск. |
boot_disk_spec.disk_spec.type_id |
Идентификатор типа диска. Чтобы получить список доступных типов дисков, используйте запрос diskTypes. |
boot_disk_spec.disk_spec.size |
Размер диска в байтах. Допустимые значения — от 4194304 (4 МБ) до 4398046511104 (4 ТБ) включительно. |
boot_disk_spec.preserve_after_instance_delete |
Опция для сохранения диска после удаления виртуальной машины.– true — сохранять диск после удаления виртуальной машины.– false — удалять диск вместе с виртуальной машиной. |
secondary_disk_specs |
(опционально) Параметры дополнительных дисков. |
secondary_disk_specs.name |
(опционально) Имя дополнительного диска. В одной спецификации имена должны быть либо присвоены всем дополнительным дискам, либо не присвоены ни одному. Подробнее см. в разделе Изменение дополнительных дисков в шаблоне виртуальной машины. |
secondary_disk_specs.mode |
Режим доступа к диску.– READ_ONLY — доступ на чтение.– READ_WRITE — доступ на чтение и запись. |
secondary_disk_specs.disk_spec.preserve_after_instance_delete |
Опция для сохранения диска после удаления виртуальной машины.– true — сохранять диск после удаления виртуальной машины.– false — удалять диск вместе с виртуальной машиной. |
secondary_disk_specs.disk_spec.type_id |
Идентификатор типа диска. Чтобы получить список доступных типов дисков, используйте запрос diskTypes. |
secondary_disk_specs.disk_spec.size |
Размер диска в байтах. Допустимые значения — от 4194304 (4 МБ) до 4398046511104 (4 ТБ) включительно. |
network_interface_specs.network_id |
Идентификатор облачной сети. |
network_interface_specs.subnet_ids |
Идентификаторы облачных подсетей. |
network_interface_specs.ip_version |
Версия IP для публичного IP-адреса. |
network_interface_specs.security_group_ids |
Идентификаторы групп безопасности. |
network_settings.type |
(опционально) Тип сети.– SOFTWARE_ACCELERATED — программно-ускоренная сеть.– STANDARD — обычная сеть, параметр по умолчанию. |
metadata |
Метаданные для шаблонной ВМ. Подробнее см. раздел Метаданные виртуальной машины. |
metadata.user-data |
Дополнительные настройки для инициализации виртуальной машины. В приведенном примере настройки описаны для программы cloud-init . |
placement_policy |
(опционально) Параметры группы размещения ВМ. |
placement_policy.placement_group_id |
Идентификатор группы размещения. ВМ будут размещаться на серверных стойках дата-центра согласно выбранной стратегии размещения:– распределенное размещение (spread ) — каждая ВМ будет гарантированно расположена на отдельной серверной стойке в одной из зон доступности.– размещение разделами (partition ) — ВМ будут равномерно распределены по разделам группы; ВМ из разных разделов будут гарантированно расположены в разных серверных стойках в одной из зон доступности. |
О технических ограничениях компонента Instance Groups читайте в разделе Квоты и лимиты в Compute Cloud.