Развертывание кластера Azure Service Fabric с типами узлов без учета состояния

Типы узлов Microsoft Azure Service Fabric изначально предполагают, что в какой-то момент на узлах могут быть размещены службы с отслеживанием состояния. Типы узлов без отслеживания состояния меняют это предположение о типах узлов. Это позволяет типу узла использовать такие функции, как более быстрое масштабирование, поддержка автоматического обновления ОС, точечные виртуальные машины и масштабирование до более чем 100 узлов в типе узла.

  • Основные типы узлов нельзя настроить на работу без отслеживания состояния.
  • Для типов узлов без отслеживания состояния требуется API версии 2021-05-01 или более поздней.
  • В этом случае свойству multipleplacementgroup автоматически задается значение true. Дополнительные сведения см. здесь.
  • Это позволяет поддерживать до 1000 узлов для заданного типа узла.
  • Типы узлов без отслеживания состояния могут использовать временный диск номера SKU виртуальной машины.

Добавление типов узлов без отслеживания состояния в управляемом кластере Service Fabric

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

Примеры шаблонов доступны на странице шаблонов типов узлов Service Fabric без отслеживания состояния.

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

Включение типов узлов без отслеживания состояния с использованием точечных виртуальных машин в управляемом кластере Service Fabric (предварительная версия)

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

Чтобы задать один или несколько типов узлов без отслеживания состояния для использования точечных виртуальных машин, задайте для свойств isStatless и IsSpotVM значение true. При развертывании кластера Service Fabric с типами узлов без отслеживания состояния необходимо иметь по крайней мере один основной тип узла, который не является узлом без отслеживания состояния в кластере. Для типов узлов без отслеживания состояния, настроенных для использования точечных виртуальных машин, для политики вытеснения по умолчанию задано значение "Удалить". Клиенты могут настроить для evictionPolicy значение "Удалить" или "Завершить общение", однако сделать это можно только во время создания типа узла.

Примеры шаблонов доступны на странице шаблонов типов точечных узлов Service Fabric

  • Значением apiVersion для ресурса управляемого кластера Service Fabric должно быть 2022-06-01-preview или выше.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isStateless": true,
    "isPrimary": false,
    "IsSpotVM": true,
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('nodeTypeSize')]",
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    "dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
  }
}

Включение точечных виртуальных машин с помощью try и restore

Эта конфигурация позволяет платформе автоматически пытаться восстановить вытесненные точечные виртуальные машины. Дополнительные сведения см. в документации по масштабируемым наборам виртуальных машин. Эта конфигурация может быть включена только в новых типах узлов Spot, указав spotRestoreTimeout, которая является длительностью времени ISO 8601 с значением от 30 до 2880 мин. Платформа попытается восстановить виртуальные машины в течение этого интервала времени после вытеснения.

{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isStateless": true,
    "isPrimary": false,
    "IsSpotVM": true,
    "evictionPolicy": "deallocate",
    "spotRestoreTimeout": "PT30M",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('nodeTypeSize')]",
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    "dataDiskSizeGB": "[parameters('nodeTypeDataDiskSizeGB')]"
  }
}

Настройка типов узлов без отслеживания состояния для обеспечения устойчивости зоны

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

Примечание.

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

Поддержка временных дисков

Типы узлов без отслеживания состояния можно настроить для использования временного диска в качестве диска данных вместо управляемого диска. Использование временного диска может снизить затраты на рабочие нагрузки без отслеживания состояния. Чтобы настроить тип узла без отслеживания состояния для использования временного диска, задайте для свойства useTempDataDisk значение true.

  • Размер временного диска должен быть не менее 32 ГБ. Размер временного диска зависит от размера виртуальной машины.
  • Временный диск не шифруется с помощью шифрования на стороне сервера, если только вы не включили шифрование на узле.
  • Для ресурса управляемого кластера Service Fabric параметр apiVersion должен иметь значение 2022-01-01 или выше.
{
  "apiVersion": "[variables('sfApiVersion')]",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[resourcegroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isStateless": true,
    "isPrimary": false,
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('nodeTypeSize')]",
    "vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
    "useTempDataDisk": true
  }
}

Переход на использование типов узлов без отслеживания состояния в кластере

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

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

Дополнительные сведения об управляемых кластерах Service Fabric см. в статье: