Шаблон виртуальной машины
При создании группы необходимо описать шаблон виртуальной машины — конфигурацию базовой виртуальной машины, по которой будут развертываться все ВМ группы.
В CLI описание шаблона передается вместе с описанием политик в виде YAML-файла при создании или изменении группы ВМ с помощью флага --file
. Таким образом, удобно передать значение из нескольких строк. Подробнее читайте в разделе Создать группу виртуальных машин фиксированного размера.
Вы можете задать переменные значения для шаблона ВМ. Подробнее читайте в разделе Переменные в шаблоне виртуальной машины.
Вычислительные ресурсы
При описании шаблона, вы указываете, сколько вычислительных ресурсов будет выделено каждой виртуальной машине: количество и гарантированный уровень производительности ядер процессора (vCPU), количество памяти (RAM). Вы можете выбрать подходящее количество вычислительных ресурсов из расчета планируемой нагрузки. Подробнее читайте в разделе Уровни производительности vCPU.
Вы также можете указать в шаблоне, чтобы создавались прерываемые виртуальные машины — они дешевле обычных. Автоматическое восстановление прерываемых ВМ будет происходить только, если в зоне доступности для этого достаточно вычислительных ресурсов. Если ресурсов недостаточно, Instance Groups продолжит автоматическое восстановление, когда появятся свободные ресурсы, но этот процесс может занять продолжительное время.
Для виртуальных машин в группе можно включить программно-ускоренную сеть. Тогда обработка сетевого трафика ВМ будет перенесена на дополнительные вычислительные ядра.
Диски и файловые хранилища
К каждой виртуальной машине в группе должен быть подключен как минимум один диск — загрузочный. Каждый загрузочный диск создается автоматически и подключается только к одной виртуальной машине при создании группы ВМ. Подробнее читайте в разделе Диски.
Помимо этого, к каждой виртуальной машине можно подключить дополнительные диски. Вы можете создать дополнительный диск вместе с группой виртуальных машин. Новый диск можно создать пустым, восстановить из снимка или из образа. Подключать и отключать дополнительные диски можно только при создании или изменении группы. Изменять дополнительные диски можно с помощью обновления YAML-спецификации.
Внимание
При удалении виртуальной машины в группе будут удалены и ее диски. Виртуальная машина может быть удалена при масштабировании или автоматическом восстановлении.
Кроме дисков, к виртуальным машинам в группе можно подключать файловые хранилища. Файловые хранилища позволяют настроить работу ВМ со Stateful-нагрузкой за счет сохранения состояний запущенных на ВМ приложений в независимом от группы ВМ хранилище.
После подключения файлового хранилища к ВМ группы, смонтируйте его в операционной системе виртуальной машины. Подключать файловые хранилища можно с помощью CLI, Terraform или API. Подробнее см. в разделе Создать группу виртуальных машин с подключением к файловому хранилищу.
Сеть
При создании группы вы можете:
- задать сеть для самой группы;
- задать подсети для каждой виртуальной машины группы.
У сервисного аккаунта, от имени которого выполняются операции в Instance Groups, должна быть роль для доступа к сети и подсетям, в которых размещается группа ВМ. Подробнее см. на странице Доступ.
Вы можете создать группу, не задавая подсети для виртуальных машин, если выбранная для каждой виртуальной машины зона доступности содержит ровно одну подсеть указанной сети.
Примечание
В облачной сети помимо подсетей, созданных вами, могут размещаться подсети, созданные автоматически. Например служебные подсети Cloud Functions, Serverless Containers и API Gateway или зарезервированные адреса для подов и сервисов кластера Managed Service for Kubernetes.
Также для каждой виртуальной машины можно настроить публичный 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
filesystem_specs:
- mode: READ_WRITE
device_name: sample-fs
filesystem_id: epdccsrlalon********
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********
service_account_id: ajegtlf2q28a********
metadata_options:
gce_http_endpoint: ENABLED
aws_v1_http_endpoint: DISABLED
gce_http_token: DISABLED
aws_v1_http_token: DISABLED
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 ТБ) включительно. |
filesystem_specs |
(опционально) Параметры файлового хранилища. |
filesystem_specs.mode |
Режим доступа к файловому хранилищу: – READ_ONLY — доступ на чтение.– READ_WRITE — доступ на чтение и запись (по умолчанию). |
filesystem_specs.device_name |
Имя устройства, под которым файловое хранилище будет подключено к ВМ. Например: sample-fs . После подключения файлового хранилища к ВМ группы, смонтируйте его в операционной системе виртуальной машины. Подробнее см. в разделе Создать группу виртуальных машин с подключением к файловому хранилищу. |
filesystem_specs.filesystem_id |
Идентификатор файлового хранилища. |
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_options |
(опционально) Параметры сервиса метаданных. |
metadata_options.gce_http_endpoint |
(опционально) Доступ к метаданным с использованием формата Google Compute Engine.– enabled — включен.– disabled — выключен. |
metadata_options.aws_v1_http_endpoint |
(опционально) Доступ к метаданным с использованием формата AWS (IMDSv1).– enabled — включен.– disabled — выключен. |
metadata_options.gce_http_token |
(опционально) Доступ к учетным данным Identity and Access Management с использованием формата Google Compute Engine.– enabled — включен.– disabled — выключен. |
metadata_options.aws_v1_http_token |
(опционально) Доступ к учетным данным Identity and Access Management с использованием формата AWS (IMDSv1).– enabled — включен.– disabled — выключен. |
metadata |
(опционально) Метаданные для шаблонной ВМ. Подробнее см. раздел Метаданные виртуальной машины. |
metadata.user-data |
Дополнительные настройки для инициализации виртуальной машины. В приведенном примере настройки описаны для программы cloud-init . |
placement_policy |
(опционально) Параметры группы размещения ВМ. |
placement_policy.placement_group_id |
Идентификатор группы размещения. ВМ будут размещаться на серверных стойках дата-центра согласно выбранной стратегии размещения:– распределенное размещение (spread ) — каждая ВМ будет гарантированно расположена на отдельной серверной стойке в одной из зон доступности.– размещение разделами (partition ) — ВМ будут равномерно распределены по разделам группы; ВМ из разных разделов будут гарантированно расположены в разных серверных стойках в одной из зон доступности. |
service_account_id |
(опционально) Сервисный аккаунт, привязанный к виртуальным машинам группы и позволяющий им работать с ресурсами облака. Использование сервисного аккаунта позволяет гибко настраивать права доступа к ресурсам.Чтобы добиться более гранулярного управления правами доступа, привязывайте к группе ВМ и к виртуальным машинам группы разные сервисные аккаунты с разными наборами разрешений. |
О технических ограничениях компонента Instance Groups читайте в разделе Квоты и лимиты в Compute Cloud.