Автомасштабирование с несколькими профилями

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

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

В этой статье описаны различные профили в автомасштабировании и их использовании.

В параметре автомасштабирования можно использовать один или несколько профилей.

Существует три типа профиля:

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

При каждом запуске службы автомасштабирования профили оцениваются в следующем порядке:

  1. Профили фиксированной даты
  2. Повторяющиеся профили
  3. Профиль по умолчанию

Если параметры даты и времени профиля соответствуют текущему времени, автомасштабирование будет применять правила и ограничения емкости этого профиля. Используется только первый применимый профиль.

В приведенном ниже примере показан параметр автомасштабирования с профилем по умолчанию и повторяющимся профилем.

A screenshot showing an autoscale setting with default and recurring profile or scale condition.

В приведенном выше примере в понедельник после 3 утра повторяющийся профиль перестанет использоваться. Если число экземпляров меньше 3, автомасштабирование масштабируется до нового минимума трех. Автомасштабирование продолжает использовать этот профиль и масштабируется на основе ЦП% до понедельника в 8 вечера. В любое время масштабирование выполняется в соответствии с профилем по умолчанию на основе количества запросов. После 8:00 в понедельник автомасштабирование переключается на профиль по умолчанию. Например, число экземпляров в то время равно 12, автомасштабирование масштабируется до 10, что максимально допустимо для профиля по умолчанию.

Несколько смежных профилей

Автоматическое масштабирование переходов между профилями на основе времени начала. Время окончания заданного профиля определяется временем начала следующего профиля.

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

Совет

Чтобы настроить несколько смежных профилей с помощью портала, оставьте время окончания пустым. Текущий профиль перестанет использоваться, когда следующий профиль становится активным. Укажите только время окончания, если вы хотите отменить изменения профиль по умолчанию. Создание повторяющегося профиля без времени окончания поддерживается только с помощью шаблонов портала и ARM.

Несколько профилей с помощью шаблонов, CLI и PowerShell

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

Полный справочник по шаблону см. в разделе "Автомасштабирование" определения ресурса шаблона ARM.

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

Добавление повторяющегося профиля с помощью шаблонов ARM

В приведенном ниже примере показано, как создать два повторяющихся профиля. Один профиль для выходных с 00:01 в субботу утром и второй профиль дня недели, начиная с понедельников в 04:00. Это означает, что профиль выходных начнется в субботу утром в одну минуту прошло полночь и заканчивается в понедельник утром в 04:00. Профиль Weekday начнется в 4 утра в понедельник и заканчивается сразу после полуночи в субботу утром.

Чтобы развернуть шаблон, используйте следующую команду: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json где VMSSS1-autoscale.json — это файл, содержащий объект JSON ниже.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                "profiles": [
                    {
                        "name": "Weekday profile",
                        "capacity": {
                            "minimum": "3",
                            "maximum": "20",
                            "default": "3"
                        },
                        "rules": [
                            {
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "GreaterThan",
                                    "statistic": "Average",
                                    "threshold": 100,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            },
                            {
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "LessThan",
                                    "statistic": "Average",
                                    "threshold": 60,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            }
                        ],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Monday"
                                ],
                                "hours": [
                                    4
                                ],
                                "minutes": [
                                    0
                                ]
                            }
                        }
                    },
                    {
                        "name": "Weekend profile",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Saturday"                                    
                                ],
                                "hours": [
                                    0
                                ],
                                "minutes": [
                                    1
                                ]
                            }
                        }
                    }
                ],
                "notifications": [],
                "targetResourceLocation": "eastus"
            }

        }
    ]
}    

Следующие шаги