Шаблон виртуальной машины

При создании группы необходимо описать шаблон виртуальной машины — конфигурацию базовой виртуальной машины, по которой будут развертываться все ВМ группы.

В CLI описание шаблона передается вместе с описанием политик в виде YAML-файла при создании или изменении группы ВМ с помощью флага --file. Таким образом, удобно передать значение из нескольких строк. Подробнее читайте в разделе Создать группу виртуальных машин фиксированного размера.

Вычислительные ресурсы

При описании шаблона, вы указываете, сколько вычислительных ресурсов будет выделено каждой виртуальной машине: количество и гарантированный уровень производительности ядер процессора (vCPU), количество памяти (RAM). Вы можете выбрать подходящее количество вычислительных ресурсов из расчета планируемой нагрузки. Подробнее читайте в разделе Уровни производительности vCPU.

Вы также можете указать в шаблоне, чтобы создавались прерываемые виртуальные машины — они дешевле обычных. Автоматическое восстановление прерываемых ВМ будет происходить только, если в зоне доступности для этого достаточно вычислительных ресурсов. Если ресурсов недостаточно, Instance Groups продолжит автоматическое восстановление, когда появятся свободные ресурсы, но этот процесс может занять продолжительное время.

Диски

К каждой виртуальной машине в группе должен быть подключен как минимум один диск — загрузочный. Каждый загрузочный диск создается автоматически и подключается только к одной виртуальной машине при создании группы ВМ.

Помимо этого, к каждой виртуальной машине можно подключить дополнительные диски. Вы можете создать дополнительный диск вместе с группой виртуальных машин. Новый диск можно создать пустым, восстановить из снимка или из образа. Подключать и отключать дополнительные диски можно только при создании или изменении группы. Подробнее читайте в разделе Диски.

Внимание

При удалении виртуальной машины в группе будут удалены и ее диски. Виртуальная машина может быть удалена при масштабировании или автоматическом восстановлении.

Сеть

При создании группы вы можете:

  • задать сеть для самой группы;
  • задать подсети для каждой виртуальной машины группы.

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

Также для каждой виртуальной машины можно настроить публичный IP-адрес. Это позволит виртуальной машине взаимодействовать с другими сервисами в интернете. Подробнее читайте в разделе Сеть на виртуальной машине.

Метаданные

В шаблоне можно описать метаданные ВМ для машин в группе. Например, пользователей системы, которых нужно создавать при запуске новой машины, следует описать в ключе user-data. Подробнее о том, какие метаданные поддерживает Compute Cloud, читайте в разделе Метаданные виртуальной машины.

Описание шаблона в YAML-файле

Шаблон представляет собой описание конфигурации базовой виртуальной машины и определяется в YAML-файле, в ключе instance_template.

Пример записи в YAML-файле:

...
instance_template:
  platform_id: standard-v1
  resources_spec:
    memory: 2G
    cores: 1
    core_fraction: 5
  boot_disk_spec:
    mode: READ_WRITE
    disk_spec:
      image_id: ff8nb7ecsbrj76dfaa8b
      type_id: network-hdd
      size: 50G
  network_interface_specs:
    - network_id: rnp6rq7pmi0542gtuame
      subnet_ids:
        - e9b9v2v5f3rrpuot2mvl
      primary_v4_address_spec: {
        one_to_one_nat_spec: {
          ip_version: IPV4
        }
      }
  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-rsa AAAAB3...
...

По умолчанию размер диска указывается в байтах. Вы можете указать другую единицу измерения с помощью соответствующего суффикса.

Название Пример написания в YAML-файле
Килобайт 1073741824k
Мегабайт 1048576m
Гигабайт 1024g
Терабайт 1t

Ключи (в таблице приведены ключи, которые непосредственно определяют конфигурацию базовой виртуальной машины):

Ключ Значение
platform_id Идентификатор аппаратной платформы виртуальной машины.
memory Объем памяти в байтах, доступный виртуальной машине. Максимальное значение — 274877906944 (275 ГБ).
cores Количество ядер, доступных виртуальной машине. Значение должно быть равно 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 или 32.
core_fraction Базовый уровень производительности CPU. Значение должно быть равно 0, 5 или 100.
mode Режим доступа к диску.
- READ_ONLY — доступ на чтение.
- READ_WRITE — доступ на чтение и запись.
image_id Идентификатор образа, из которого будет создан диск.
type_id Идентификатор типа диска. Чтобы получить список доступных типов дисков, используйте запрос diskTypes.
size Размер диска в байтах. Допустимые значения — от 4194304 (4 MБ) до 4398046511104 (4 ТБ) включительно.
network_id Идентификатор облачной сети.
subnet_ids Идентификаторы облачных подсетей.
ip_version Версия IP для публичного IP-адреса.
metadata Метаданные для шаблонной ВМ. Подробнее см. раздел Метаданные виртуальной машины.
user-data Дополнительные настройки для инициализации виртуальной машины. В приведенном примере настройки описаны для программы cloud-init.

О технических ограничениях компонента Instance Groups читайте в разделе Квоты и лимиты.