Инфраструктура как код
В рамках рабочего сценария создайте кластеры Azure Service Fabric с помощью шаблонов Resource Manager. Шаблоны Resource Manager обеспечивают более высокий уровень контроля над свойствами ресурсов и согласованную модель ресурсов.
Примеры шаблонов Resource Manager для Windows и Linux доступны в образцах Azure на сайте GitHub. Их можно использовать в качестве отправной точки для создания шаблона кластера. Скачайте файлы azuredeploy.json
и azuredeploy.parameters.json
и измените их в соответствии со своими требованиями.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Чтобы развернуть шаблоны azuredeploy.json
и azuredeploy.parameters.json
, скачанные ранее, используйте следующие команды Azure CLI:
ResourceGroupName="sfclustergroup"
Location="westus"
az group create --name $ResourceGroupName --location $Location
az deployment group create --name $ResourceGroupName --template-file azuredeploy.json --parameters @azuredeploy.parameters.json
Создание ресурса с помощью PowerShell
$ResourceGroupName="sfclustergroup"
$Location="westus"
$Template="azuredeploy.json"
$Parameters="azuredeploy.parameters.json"
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
New-AzResourceGroupDeployment -Name $ResourceGroupName -TemplateFile $Template -TemplateParameterFile $Parameters
Ресурсы Service Fabric
Вы можете развертывать приложения и службы в кластере Service Fabric с помощью Azure Resource Manager. Дополнительные сведения см. в статье Управление приложениями и службами как ресурсами Azure Resource Manager. Ниже приведены рекомендуемые ресурсы приложения Service Fabric, которые следует добавить в список ресурсов шаблона Resource Manager.
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applicationTypes",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
"location": "[variables('clusterLocation')]",
},
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applicationTypes/versions",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
"location": "[variables('clusterLocation')]",
},
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applications",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"location": "[variables('clusterLocation')]",
},
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applications/services",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
"location": "[variables('clusterLocation')]"
}
Чтобы развернуть приложение с помощью Azure Resource Manager, сначала необходимо создать пакет приложения Service Fabric sfpkg. Следующий скрипт Python демонстрирует пример создания sfpkg:
# Create SFPKG that needs to be uploaded to Azure Storage Blob Container
microservices_sfpkg = zipfile.ZipFile(
self.microservices_app_package_name, 'w', zipfile.ZIP_DEFLATED)
package_length = len(self.microservices_app_package_path)
for root, dirs, files in os.walk(self.microservices_app_package_path):
root_folder = root[package_length:]
for file in files:
microservices_sfpkg.write(os.path.join(
root, file), os.path.join(root_folder, file))
microservices_sfpkg.close()
Конфигурация автоматического обновления ОС виртуальной машины
Обновление виртуальных машин — это операция, инициируемая пользователем; рекомендуется включить автоматическое обновление образов в масштабируемом наборе виртуальных машин для управления исправлениями узла кластера Service Fabric. Приложение для управления исправлениями (POA) — это альтернативное решение, предназначенное для кластеров, не размещенных в Azure. Хотя POA можно использовать в Azure, его размещение требует больше управления, чем просто включение автоматического обновления образа ОС в масштабируемом наборе. Ниже приведены свойства шаблона масштабируемого набора виртуальных машин в Resource Manager для включения автоматических обновлений ОС.
"upgradePolicy": {
"mode": "Automatic",
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true,
"disableAutomaticRollback": false
}
},
При использовании автоматических обновлений ОС с помощью Service Fabric новый образ ОС развертывается на доменах обновления по очереди, чтобы обеспечить высокий уровень доступности для служб, работающих в Service Fabric. Для использования автоматических обновлений ОС в Service Fabric ваш кластер должен быть настроен на использование уровня надежности Silver или выше.
Убедитесь, что для следующего раздела реестра установлено значение false, чтобы предотвратить несогласованный запуск обновлений на хост-компьютере Windows: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.
Задайте следующие свойства шаблона масштабируемого набора виртуальных машин, чтобы отключить Центр обновления Windows.
"osProfile": {
"computerNamePrefix": "{vmss-name}",
"adminUsername": "{your-username}",
"secrets": [],
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": false
}
},
Конфигурация обновления кластера Service Fabric
Ниже приведено свойство шаблона кластера Service Fabric для включения автоматического обновления.
"upgradeMode": "Automatic",
Чтобы обновить кластер вручную, скачайте файл CAB или DEB дистрибутива на виртуальную машину кластера, а затем запустите следующую команду PowerShell:
Copy-ServiceFabricClusterPackage -Code -CodePackagePath <"local_VM_path_to_msi"> -CodePackagePathInImageStore ServiceFabric.msi -ImageStoreConnectionString "fabric:ImageStore"
Register-ServiceFabricClusterPackage -Code -CodePackagePath "ServiceFabric.msi"
Start-ServiceFabricClusterUpgrade -Code -CodePackageVersion <"msi_code_version">
Следующие шаги
- Создание кластера на основе виртуальных машин или компьютеров под управлением Windows Server: Создание кластера Azure Service Fabric в локальной или облачной средах
- Создание кластера на основе виртуальных машин или компьютеров под управлением Linux: Создание кластера Linux.
- Сведения о вариантах поддержки Service Fabric