Создать автоматически масштабируемую группу виртуальных машин

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

    Предупреждение

    Создавая группы, учитывайте лимиты. Чтобы не нарушить работу компонента Instance Groups, не изменяйте и не удаляйте вручную созданные им ресурсы: целевую группу Load Balancer, виртуальные машины и диски. Для этого измените или удалите группу полностью.

    По умолчанию все операции в Instance Groups выполняются от имени сервисного аккаунта. Если сервисного аккаунта нет, создайте его.

    Чтобы создать автоматически масштабируемую группу виртуальных машин:

    1. В консоли управления выберите каталог, в котором нужно создать группу виртуальных машин.
    2. Выберите сервис Compute Cloud.
    3. На странице Виртуальные машины перейдите на вкладку Группы виртуальных машин.
    4. Нажмите кнопку Создать группу.
    5. В блоке Базовые параметры:
      • Введите имя и описание группы.

        • Длина — от 3 до 63 символов.
        • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
        • Первый символ — буква. Последний символ — не дефис.
      • Выберите сервисный аккаунт из списка или создайте новый. Cервисный аккаунт должен обладать ролью editor, чтобы создавать, обновлять и удалять виртуальные машины в группе. Если сервисного аккаунта нет, создайте его.

    6. В блоке Распределение выберите нужные зоны доступности. Виртуальные машины группы могут находиться в разных зонах и регионах доступности. Подробнее о географии Облака.
    7. В блоке Шаблон виртуальной машины нажмите кнопку Задать, чтобы задать конфигурацию базовой виртуальной машины:
      • Выберите публичный образ.
      • В блоке Диски:
        • Выберите тип диска.

        • Укажите размер диска.

          Чтобы добавить дополнительные диски, нажмите Добавить диск.

      • В блоке Вычислительные ресурсы:
      • В блоке Сетевые настройки:
        • Выберите облачную сеть и подсеть. Если нужной подсети в списке нет, создайте ее.
        • Отметьте необходимость в публичном IP-адресе.
      • В блоке Доступ укажите данные для доступа на виртуальную машину:
        • В поле Логин введите имя пользователя.
        • В поле SSH-ключ вставьте содержимое файла открытого ключа. Пару ключей для подключения по SSH необходимо создать самостоятельно.
      • Нажмите кнопку Добавить.
    8. В блоке В процессе создания и обновления разрешено укажите:
      • На какое количество виртуальных машин можно превысить размер группы.

      • На какое количество виртуальных машин можно уменьшать размер группы.

      • Сколько виртуальных машин можно одновременно создавать.

      • Сколько виртуальных машин можно одновременно удалять.

        Подробнее читайте в разделе Политика развертывания.

    9. В блоке Масштабирование:
      • Выберите автоматический тип масштабирования.
      • Укажите:
        • Целевой размер группы.
        • Максимальный размер группы.
        • Минимальное количество виртуальных машин в одной зоне доступности.
        • Время усреднения метрик.
        • Время прогрева виртуальной машины в группе.
        • Время мониторинга максимальной нагрузки на сервис.
        • Целевой уровень загрузки по CPU.
    10. Нажмите кнопку Создать.

    Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

    По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

    1. Посмотрите описание команды CLI для создания группы виртуальных машин:

      $ yc compute instance-group create --help
      
    2. Проверьте, есть ли в каталоге сети:

      $ yc vpc network list
      

      Если ни одной сети нет, создайте ее.

    3. Выберите один из публичных образов (например, CentOS 7).

      Чтобы получить список доступных образов, выполните следующую команду:

      $ yc compute image list --folder-id standard-images
      +----------------------+-------------------------------------+--------------------------+----------------------+--------+
      |          ID          |                NAME                 |          FAMILY          |     PRODUCT IDS      | STATUS |
      +----------------------+-------------------------------------+--------------------------+----------------------+--------+
      ...
      | fdvk34al8k5nltb58shr | centos-7-1549279494                 | centos-7                 | dqni65lfhvv2den5gtv9 | READY  |
      | fdv7ooobjfl3ts9gqp0q | windows-2016-gvlk-1548913814        | windows-2016-gvlk        | dqnnc72gj2ist3ktjj1p | READY  |
      | fdv4f5kv5cvf3ohu4flt | ubuntu-1604-lts-1549457823          | ubuntu-1604-lts          | dqnnb6dc7640c5i968ro | READY  |
      ...
      +----------------------+-------------------------------------+--------------------------+----------------------+--------+
      
    4. Создайте YAML-файл с произвольным именем, например specification.yaml.

    5. Опишите в созданном файле:

      • Общую информацию о группе:

        name: first-autoscaled-group
        service_account_id: <ID>
        description: "This instance group was created from YAML config"
        

        Ключи:

        Ключ Значение
        name Произвольное имя группы виртуальных машин. Имя должно быть уникальным в рамках каталога. Имя может содержать строчные буквы латинского алфавита, цифры и дефисы. Первый символ должен быть буквой. Последний символ не может быть дефисом. Максимальная длина имени — 63 символа.
        service_account_id Идентификатор сервисного аккаунта.
        description Произвольное описание группы виртуальных машин.
      • Шаблон виртуальной машины:

        instance_template:
            platform_id: standard-v1
            resources_spec:
                memory: 4g
                cores: 1
            boot_disk_spec:
                mode: READ_WRITE
                disk_spec:
                    image_id: fdvk34al8k5nltb58shr
                    type_id: network-hdd
                    size: 32g
            network_interface_specs:
                - network_id: c64mknqgnd8avp6edhbt
                  primary_v4_address_spec: {}
        

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

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

        Ключи (в таблице приведены ключи, которые непосредственно определяют параметры ВМ):

        Ключ Значение
        platform_id Идентификатор платформы.
        memory Количество памяти (RAM).
        cores Количество ядер процессора (vCPU).
        mode Режим доступа к диску.
        - READ_ONLY — доступ на чтение.
        - READ_WRITE — доступ на чтение и запись.
        image_id Идентификатор публичного образа с CentOS 7.
        type_id Тип диска.
        size Размер диска.
        network_id Идентификатор сети default-net.
        primary_v4_address_spec Спецификация версии интернет протокола IPv4. На данный момент доступен только протокол IPv4. Вы можете предоставить публичный доступ к виртуальным машинам группы, указав версию IP для публичного IP-адреса. Подробнее читайте в разделе Описание шаблона в YAML-файле.
      • Политики:

        deploy_policy:
            max_unavailable: 1
            max_expansion: 0
        scale_policy:
            auto_scale:
                initial_size: 5
                max_size: 15
                min_zone_size: 3
                measurement_duration: 30
                warmup_duration: 60
                cooldown_duration: 120
                cpu_utilization_rule: 0.75
        allocation_policy:
            zones:
                - zone_id: ru-central1-a
        

        Ключи:

        Ключ Значение
        deploy_policy Политика развертывания виртуальных машин в группе.
        scale_policy Политика масштабирования виртуальных машин в группе.
        allocation_policy Политика распределения виртуальных машин по зонам и регионам.

        Полный код файла specification.yaml:

        name: first-autoscaled-group
        service_account_id: ajed6ilf11qg839dcl1e
        description: "This instance group was created from YAML config"
        instance_template:
            platform_id: standard-v1
            resources_spec:
                memory: 4g
                cores: 1
            boot_disk_spec:
                mode: READ_WRITE
                disk_spec:
                    image_id: fdvk34al8k5nltb58shr
                    type_id: network-hdd
                    size: 32g
            network_interface_specs:
                - network_id: c64mknqgnd8avp6edhbt
                  primary_v4_address_spec: {}
        deploy_policy:
            max_unavailable: 1
            max_expansion: 0
        scale_policy:
            auto_scale:
                initial_size: 5
                max_size: 15
                min_zone_size: 3
                measurement_duration: 30
                warmup_duration: 60
                cooldown_duration: 120
                cpu_utilization_rule:
                    utilization_target: 75
        allocation_policy:
            zones:
                - zone_id: ru-central1-a
        
    6. Создайте группу виртуальных машин в каталоге по умолчанию:

      $ yc compute instance-group create --file specification.yaml
      

      Данная команда создаст автоматически масштабируемую группу ВМ со следующими характеристиками:

      • С именем first-autoscaled-group.
      • С OC CentOS 7.
      • В сети default-net.
      • В зоне доступности ru-central1-a.
      • С одним vCPU и 4 ГБ RAM.
      • С сетевым HDD-диском объемом 32 ГБ.

    Воспользуйтесь методом API create.