Типы узла управляемого кластера Service Fabric

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

В остальной части этого документа содержится информация о том, как настроить различные параметры, в том числе создать тип узла, настроить число экземпляров узла, включить автоматическое обновление образов ОС, изменить образ ОС и настроить свойства размещения. Кроме того, в этом документе рассматривается внесение изменений с помощью портала Azure или шаблонов Azure Resource Manager.

Важно!

В настоящее время управляемые кластеры Service Fabric не поддерживают пользовательские образы ОС.

Примечание

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

Добавление типа узла

Добавить тип узла в управляемый кластер Service Fabric можно с помощью шаблона Azure Resource Manager или PowerShell.

Добавление с помощью портала

Примечание

С помощью портала можно добавлять только дополнительные узлы.

  1. Войдите на портал Azure.

  2. Перейдите на страницу обзора кластерного ресурса. Страница обзора примера

  3. Выберите Node types в представлении раздела Settings.

  4. Щелкните Add в верхней части, укажите необходимые сведения, а затем нажмите "Добавить" в нижней части.

  5. Дождись, пока будет добавлен новый тип узла.

Добавление с помощью шаблона ARM

Добавьте другой тип ресурса Microsoft.ServiceFabric/managedclusters/nodetypes с требуемыми значениями и выполните развертывание кластера, чтобы параметр вступил в силу.

  • Значением apiVersion для ресурса управляемого кластера Service Fabric должно быть 2021-05-01 или выше.
  • Если нужно заменить существующий тип первичного узла, задайте для параметра isPrimary значение true.
{
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeType2Name'))]",
    "location": "[resourcegroup().location]",
    "dependsOn": [
        "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
    ],
    "properties": {
        "isPrimary": false,
        "vmImagePublisher": "[parameters('vmImagePublisher')]",
        "vmImageOffer": "[parameters('vmImageOffer')]",
        "vmImageSku": "[parameters('vmImageSku')]",
        "vmImageVersion": "[parameters('vmImageVersion')]",
        "vmSize": "[parameters('nodeType2VmSize')]",
        "vmInstanceCount": "[parameters('nodeType2VmInstanceCount')]",
        "dataDiskSizeGB": "[parameters('nodeType2DataDiskSizeGB')]",
        "dataDiskType": "[parameters('nodeType2managedDataDiskType')]"
    }
}

Пример конфигурации с двумя типами узлов см. в примере шаблона ARM для двух типов узлов.

Добавление с помощью PowerShell

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

  • Группа ресурсов — группа ресурсов, в которой развернут кластер.
  • Имя кластера — имя управляемого кластера.
  • Имя типа узла. Имя, уникальное для всех существующих типов узлов в кластере.
  • Число экземпляров. Начальное число узлов нового типа узла.
  • Размер виртуальной машины. Номер SKU виртуальной машины для узлов. Если значение не задано, по умолчанию используется значение Standard_D2.

Примечание

При добавлении типа первичного узла необходимо использовать свойство -Primary.

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "nt2"
$vmSize = "Standard_D2_v2"

New-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -Name $nodeTypeName -InstanceCount 3 -vmSize $vmSize

Удаление типа узла

Удалить тип узла управляемого кластера Service Fabric можно с помощью портала или PowerShell.

Примечание

Чтобы удалить тип первичного узла из управляемого кластера Service Fabric, необходимо использовать PowerShell. Кроме того, должно быть доступно более одного типа первичного узла.

Удаление с помощью портала

  1. Войдите на портал Azure.

  2. Перейдите на страницу обзора кластерного ресурса. Страница обзора примера

  3. Выберите Node types в представлении раздела Settings.

  4. Выберите Node Type, который необходимо удалить, и нажмите кнопку Delete в верхней части.

Удаление с помощью PowerShell

Примечание

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

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

  • Группа ресурсов — группа ресурсов, в которой развернут кластер.
  • Имя кластера — имя управляемого кластера.
  • Имя типа узла. Имя, уникальное для всех существующих типов узлов в кластере.
$resourceGroup = "myResourceGroup"
$clusterName = "myCluster"
$nodeTypeName = "nt2"

Remove-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName  -Name $nodeTypeName

Масштабирование типа узла

Масштабировать тип узла управляемого кластера Service Fabric можно с помощью портала, шаблона ARM или PowerShell. Можно также настроить автомасштабирование для типа дополнительного узла, если требуется полностью автоматизированное решение.

Примечание

  • Для типа первичного узла нельзя задать автоматическое масштабирование, он поддерживает только масштабирование вручную.
  • Если тип узла является основным, вы не сможете использовать следующие 3 узла для кластера SKU "Базовый" и 5 узлов для кластера SKU "Стандартный".

Масштабирование с помощью портала

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

  1. Войдите на портал Azure.

  2. Перейдите на страницу обзора кластерного ресурса. Страница обзора примера

  3. В разделе Settings выберите Node Types.

  4. Выберите Node type name, который необходимо изменить.

  5. При необходимости проверьте и обновите свойства типа узла.

Пример: увеличение количества узлов

  1. Выберите Manage node type scaling, чтобы настроить параметры масштабирования и выбрать один из доступных вариантов: пользовательское автомасштабирование и или масштабирование вручную. Автомасштабирование — это встроенная функция, улучшающая работу приложений при запросе изменений. Вы можете вручную масштабировать ресурс до определенного числа экземпляров, можете создать настраиваемую политику автомасштабирования, которая сопоставляется с пороговыми значениями метрик, или задать расписание для изменения количества экземпляров в определенные периоды времени. Узнайте больше об автомасштабировании Azure или посмотрите видеоинструкции.

    • Пользовательское автомасштабирование: выберите подходящий режим scale mode для определения настраиваемой политики автомасштабирования: Scale to a specific instance count или Scale based on a metric. Второй вариант основан на правилах триггеров по метрикам. Например, вы можете увеличивать число экземпляров на 1, когда процент загрузки ЦП превышает 70 %. Определив политику, выберите вверху Save.

      Пример с параметрами автомасштабирования

    • Ручное масштабирование. Задайте для параметра Node count новое значение и выберите Save в нижней части. На этом снимке экрана значение 3 было изменено на 5.

      Пример с параметрами ручного масштабирования

    Выберите внизу Apply, чтобы настроить эти сохраненные параметры в типе узла.

  2. Теперь Provisioning state до завершения будет отображать состояние Updating. По завершении снова будет отображаться состояние Succeeded. Пример: изменение типа узла

Масштабирование типа узла с помощью шаблона

Чтобы изменить количество узлов для типа узла с помощью шаблона ARM, задайте для свойства vmInstanceCount новое значение и выполните развертывание кластера, чтобы параметр вступил в силу. Кластер начнет обновляться автоматически, и по завершении вы увидите дополнительные узлы.

  • Значением apiVersion для ресурса управляемого кластера Service Fabric должно быть 2021-05-01 или выше.

Примечание

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

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    ...
  }
}

Масштабирование типа узла с помощью PowerShell

Измените число экземпляров, чтобы увеличить или уменьшить количество узлов в типе узла, который необходимо масштабировать. Имена типов узлов можно найти в шаблоне Azure Resource Manager (шаблон ARM) из развертывания кластера или в Service Fabric Explorer.

$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "FE"
$instanceCount = "7"

Set-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -name $nodeTypeName -InstanceCount $instanceCount -Verbose

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

Включение автоматического обновления образа ОС

Вы можете включить автоматическое обновление образа ОС для виртуальных машин, на которых выполняются управляемые узлы кластера. Хотя ресурсы масштабируемого набора виртуальных машин управляются от вашего имени с помощью управляемых кластеров Service Fabric, вы можете включить для узлов кластера автоматическое обновление образов ОС. Как и в классических кластерах Service Fabric, узлы управляемых кластеров по умолчанию не обновляются, чтобы избежать непредвиденных перебоев в работе кластера.

Чтобы включить автоматическое обновление ОС, выполните указанные ниже действия.

  • Используйте ресурсы Microsoft.ServiceFabric/managedclusters и Microsoft.ServiceFabric/managedclusters/nodetypes с apiVersion 2021-05-01 или более поздней версии.
  • Присвойте свойству кластера enableAutoOSUpgrade значение true.
  • Присвойте свойству ресурса vmImageVersion nodeType кластера значение Latest.

Пример.

    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters",
      ...
      "properties": {
        ...
        "enableAutoOSUpgrade": true
      },
    },
    {
      "apiVersion": "[variables('sfApiVersion')]",
      "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       ...
      "properties": {
        ...
        "vmImageVersion": "latest",
        ...
      }
    }
}

После включения Service Fabric начнет запрашивать и отслеживать версии образа ОС в управляемом кластере. Если становится доступна новая версия ОС, типы узлов кластера (масштабируемые наборы виртуальных машин) будут обновляться по одному за раз. Запуск обновления среды выполнения Service Fabric выполняется только после подтверждения того, что какие-либо обновления образа ОС узла кластера не выполняются.

В случае сбоя обновления Service Fabric повторит попытку через 24 часа (до трех повторных попыток). Как и для классических (неуправляемых) обновлений Service Fabric, неработоспособные приложения или узлы могут блокировать обновление образа ОС.

Дополнительные сведения об обновлении образов см. в статье Автоматические обновления образа ОС с использованием масштабируемых наборов виртуальных машин Azure.

Изменение номера SKU ОС для типа узла

Управляемые кластеры Service Fabric позволяют изменять номер SKU ОС для типа узла. Это полезно в таких сценариях, как переход с Windows 2019 на Windows 2022 или переход на номер SKU сервера (Core) с номера SKU сервера с возможностями рабочего стола.

Изменение номера SKU ОС с помощью портала

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

  1. Войдите на портал Azure.

  2. Перейдите на страницу обзора кластерного ресурса. Страница обзора примера

  3. В разделе Settings выберите Node Types.

  4. Выберите Node type name, который необходимо изменить.

  5. Задайте для параметра OS Image новое значение и выберите Apply в нижней части. ![Пример: изменение образа ОС][change-os-image]

  6. Теперь Provisioning state будет отображать состояние Updating, а обновления будут применяться к одному домену обновления за раз. По завершении снова будет отображаться состояние Succeeded. Пример: изменение типа узла

Изменение номера SKU ОС с помощью шаблона

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

  • Значением apiVersion для ресурса управляемого кластера Service Fabric должно быть 2021-05-01 или выше.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    ...
  }
}

Настройка свойств размещения для типа узла

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

Настройка свойств размещения с помощью портала

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

  1. Войдите на портал Azure.

  2. Перейдите на страницу обзора кластерного ресурса. Страница обзора примера

  3. В разделе Settings выберите Node Types.

  4. Выберите Node type name, который необходимо изменить.

  5. В разделе Placement properties добавьте имя и требуемое значение и выберите Apply в нижней части. На этом снимке экрана для NameSSD_Premium использовалось Valuetrue. Пример: добавление свойства размещения

  6. Теперь Provisioning state до завершения будет отображать состояние Updating. По завершении снова будет отображаться состояние Succeeded. Пример: изменение типа узла

Настройка свойств размещения с помощью шаблона

Чтобы изменить свойства размещения для типа узла с помощью шаблона ARM, задайте для свойства placementProperties новое(-ые) значение(-я) и выполните развертывание кластера, чтобы параметр вступил в силу. В приведенном ниже примере задается три значения для типа узла.

  • Значением apiVersion для ресурса управляемого кластера Service Fabric должно быть 2021-05-01 или выше.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    "placementProperties": {
      "PremiumSSD": "true",
      "NodeColor": "green",
      "SomeProperty": "5"
    }
  }
}

Настройка свойств размещения с помощью PowerShell

В следующем примере будут обновлены и перезаписаны все существующие свойства размещения для данного типа узла.

$rgName = "testRG"
$clusterName = "testCluster"
$NodeTypeName = "nt1"
Set-AzServiceFabricManagedNodeType -ResourceGroupName $rgName -ClusterName $clusterName -name $NodeTypeName -PlacementProperty @{NodeColor="Red";SomeProperty="6";} -Verbose

Изменение номера SKU ВМ для типа узла

Чтобы изменить размер номера SKU виртуальной машины, используемого для типа узла, с помощью шаблона ARM, измените vmSize свойство с новым значением и выполните развертывание кластера, чтобы этот параметр вступит в силу. Поставщик управляемых кластеров пересоздает образ для каждого экземпляра с помощью домена обновления. Список параметров SKU см. в статье Размеры виртуальных машин Azure Виртуальные машины | Microsoft Learn.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    ...
    "vmSize": "[parameters('vmImageVersion')]",
    ...
  }
}

Настройка нескольких управляемых дисков

Управляемые кластеры Service Fabric по умолчанию настраивают один управляемый диск. Настроив следующие дополнительные свойства и значения, можно добавить дополнительные управляемые диски к типам узлов в кластере. Можно указать букву, тип и размер диска.

Настройте дополнительные управляемые диски, задав свойство additionalDataDisks и обязательные параметры в шаблоне Resource Manager следующим образом.

Требования к компонентам

  • Логический номер устройства должен быть уникальным для диска. Использовать зарезервированный номер LUN нельзя.
  • В качестве буквы диска нельзя использовать зарезервированные буквы C и D. Кроме того, ее нельзя изменить после создания. Если буква не указана, по умолчанию будет использоваться буква S.
  • Необходимо указать поддерживаемый тип диска.
  • Для ресурса управляемого кластера Service Fabric параметр apiVersion должен иметь значение 2022-01-01 или выше.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "properties": {
    "additionalDataDisks": {
      "lun": "1",
      "diskSizeGB": "50",
      "diskType": "Standard_LRS",
      "diskLetter": "S" 
    }
  }
}

См. полный список доступных параметров.

Настройка буквы диска данных Service Fabric

Управляемые кластеры Service Fabric по умолчанию настраивают диск данных Service Fabric и автоматически настраивают букву диска на всех узлах типа узла. Настройка этого дополнительного свойства и значения позволяет указать и получить букву диска данных Service Fabric, если имеются определенные требования для сопоставления букв диска.

Требования к компонентам

  • В качестве буквы диска нельзя использовать зарезервированные буквы C и D. Кроме того, ее нельзя изменить после создания. Если буква не указана, по умолчанию будет использоваться буква S.
  • Для ресурса управляемого кластера Service Fabric параметр apiVersion должен иметь значение 2022-01-01 или выше.
{
  {
    "apiVersion": "[variables('sfApiVersion')]",
    "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
    "location": "[resourcegroup().location]",
    "properties": {
      "dataDiskLetter": "S"
    }
  }
}

Дальнейшие действия