Политики

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

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

Политика распределения

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

Регион — это определенное географическое расположение, в котором можно развертывать виртуальные машины. Каждый регион имеет одну или несколько зон. На данный момент доступен только один регион. Подробнее о географии Облака.

Регион Зоны Географическая привязка
ru-central1 ru-central1-a
ru-central1-b
ru-central1-c
Владимирская, Московская и Рязанская области.

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

Политика распределения определяется в YAML-файле, в ключе allocation-policy. Значением может быть список зон, определенных в ключе zones. Вы можете указывать любые доступные зоны, между которыми будут равномерно распределяться виртуальные машины в группе.

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

...
allocation_policy:
    zones:
        - zone_id: ru-central1-a
        - zone_id: ru-central1-b
        - zone_id: ru-central1-c
...

Ключи:

Ключ Значение
zones Список зон. Каждая зона задается в ключе zone_id, в виде пары ключ:значение.
zone_id Идентификатор зоны.

Политика развертывания

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

Политика развертывания представляет собой набор ограничений и определяется в YAML-файле, в ключе deploy_policy. Каждое ограничение задается в собственном ключе, в виде пары ключ:значение.

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

...
deploy_policy:
    max_creating: 10
    max_deleting: 10
    max_unavailable: 10
    max_expansion: 0
    startup_duration: 30s
...

Ключи:

Ключ Значение
max_creating Максимальное количество создаваемых одновременно виртуальных машин.
max_deleting Максимальное количество удаляемых одновременно виртуальных машин.
max_unavailable Максимальное количество виртуальных машин в статусе RUNNING, на которое можно уменьшить целевой размер группы.
max_expansion Максимальное количество виртуальных машин, на которое можно превысить целевой размер группы. Если ключ max_unavailable не указан или равен нулю, ключу max_expansion должно быть установлено ненулевое значение.
startup_duration Время запуска виртуальной машины в группе. Виртуальная машина начнет получать нагрузку только после того, как истечет время запуска, и будут пройдены все проверки состояния.

Политика масштабирования

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

Политика определяется в YAML-файле, в ключе scale_policy.

fixed_scale

Ключ fixed_scale определяет группу виртуальных машин фиксированного размера. Размер группы определяется в ключе size. Вы можете создать группу с необходимым вам количеством виртуальных машин в рамках доступных квот и лимитов.

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

...
scale_policy:
    fixed_scale:
        size: 3
...

Ключи:

Ключ Значение
fixed_scale Группа виртуальных машин фиксированного размера.
size* Количество виртуальных машин в группе. Каждая группа может содержать не более 100 виртуальных машин.

* Обязательное поле.

auto_scale

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

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

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

Ключи:

Ключ Значение
auto_scale Автоматически масштабируемая группа виртуальных машин.
initial_size* Начальное количество виртуальных машин в группе. Каждая группа может содержать не более 100 виртуальных машин.
max_size Максимальное количество виртуальных машин в группе.
min_zone_size Минимальное количество виртуальных машин в одной зоне доступности.
measurement_duration* Время в секундах, за которое происходит усреднение метрик по нагрузке CPU. Если средняя нагрузка по окончании интервала оказывается выше значения cpu_utilization_rule.utilization_target, то Instance Groups увеличит количество виртуальных машин в группе.
warmup_duration* Время прогрева виртуальной машины в секундах. В течение этого времени на виртуальную машину подается трафик, но метрики по нагрузке CPU не учитываются.
cooldown_duration* Минимальный временной интервал, в секундах, для мониторинга нагрузки перед тем как Instance Groups может уменьшить количество виртуальных машин в группе. В течение этого времени группа не будет уменьшаться даже если средняя нагрузка упадет ниже значения cpu_utilization_rule.utilization_target.
cpu_utilization_rule* Целевой уровень загрузки по CPU.

* Обязательное поле.