Поделиться через


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

Масштабируемый набор виртуальных машин возвращает каждый тип узла в управляемом кластере Service Fabric. При работе с управляемыми кластерами все необходимые изменения вносятся через поставщик ресурсов кластера 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 , узлы управляемых кластеров по умолчанию не обновляются, чтобы предотвратить непредвиденные нарушения работы в кластере.

Примечание.

Автоматическое обновление образа ОС поддерживается как для Marketplace, так и для пользовательских образов.

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

  • Используйте ресурсы 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) и server с 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 его в нижней части. На этом снимке экрана Name SSD_Premium используется Value trueс . Пример: добавление свойства размещения

  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 должен быть уникальным для каждого диска и не может использовать зарезервированную lun 0 или 1
  • Буква диска не может использовать зарезервированные буквы 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": "2",
      "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"
    }
  }
}

Задание префикса имени компьютера

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

Примечание.

Префикс имени компьютера работает только для версии 2024-04-01 or laterAPI Service Fabric.

Реализуйте следующие изменения шаблона ARM, чтобы задать префикс имени компьютера:

{
  "apiVersion": "2024-04-01",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', 'BE-testResourceGroup-testRegion-test')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
      "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isPrimary": false,
    "dataDiskSizeGB": "[parameters('dataDiskSizeGB')]",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('vmSize')]",
    "vmInstanceCount": "[parameters('vmInstanceCount')]",
    "computerNamePrefix": "computerNamePrefix"
  }
} 

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