Infrastructuur als code
Maak in een productiescenario Azure Service Fabric-clusters met behulp van Resource Manager-sjablonen. Resource Manager-sjablonen bieden meer controle over resource-eigenschappen en zorgen ervoor dat u een consistent resourcemodel hebt.
Voorbeelden van Resource Manager-sjablonen zijn beschikbaar voor Windows en Linux in de Azure-voorbeelden op GitHub. Deze sjablonen kunnen worden gebruikt als uitgangspunt voor uw clustersjabloon. Download azuredeploy.json
en azuredeploy.parameters.json
bewerk ze om te voldoen aan uw aangepaste vereisten.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Als u de azuredeploy.json
hierboven gedownloade sjablonen wilt azuredeploy.parameters.json
implementeren, gebruikt u de volgende Azure CLI-opdrachten:
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
Een resource maken met Behulp van 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-resources
U kunt toepassingen en services implementeren in uw Service Fabric-cluster via Azure Resource Manager. Zie Toepassingen en services beheren als Azure Resource Manager-resources voor meer informatie. Hier volgen de aanbevolen procedures voor specifieke Service Fabric-toepassingsresources die moeten worden opgenomen in uw Resource Manager-sjabloonresources.
{
"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')]"
}
Als u uw toepassing wilt implementeren met Behulp van Azure Resource Manager, moet u eerst een sfpkg Service Fabric-toepassingspakket maken. Het volgende Python-script is een voorbeeld van het maken van een 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()
Configuratie van automatische upgrade van besturingssysteem van virtuele machine
Het upgraden van uw virtuele machines is een door de gebruiker geïnitieerde bewerking. Het wordt aanbevolen om automatische installatiekopieënsetupgrades voor virtuele-machineschaalsets in te schakelen voor patchbeheer voor het Service Fabric-clusterknooppunt. Patch Orchestration Application (POA) is een alternatieve oplossing die is bedoeld voor niet-Azure gehoste clusters. Hoewel POA kan worden gebruikt in Azure, is het hosten meer beheer vereist dan alleen het inschakelen van automatische upgrades van installatiekopieën van het besturingssysteem. Hier volgen de eigenschappen van de Resource Manager-sjabloon voor de virtuele-machineschaalset om automatische besturingssysteemupgrades in te schakelen:
"upgradePolicy": {
"mode": "Automatic",
"automaticOSUpgradePolicy": {
"enableAutomaticOSUpgrade": true,
"disableAutomaticRollback": false
}
},
Wanneer u automatische upgrades van het besturingssysteem met Service Fabric gebruikt, wordt de nieuwe installatiekopieën van het besturingssysteem één updatedomein tegelijk geïmplementeerd om hoge beschikbaarheid te behouden van de services die worden uitgevoerd in Service Fabric. Als u automatische besturingssysteemupgrades in Service Fabric wilt gebruiken, moet uw cluster zijn geconfigureerd voor het gebruik van de Silver-duurzaamheidslaag of hoger.
Zorg ervoor dat de volgende registersleutel is ingesteld op false om te voorkomen dat uw Windows-hostcomputers niet-gecoördineerde updates initiëren: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.
Stel de volgende eigenschappen van de virtuele-machineschaalset in om Windows Update uit te schakelen:
"osProfile": {
"computerNamePrefix": "{vmss-name}",
"adminUsername": "{your-username}",
"secrets": [],
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": false
}
},
Upgradeconfiguratie van Service Fabric-cluster
Hier volgt de eigenschap Service Fabric-clustersjabloon om automatische upgrade in te schakelen:
"upgradeMode": "Automatic",
Als u uw cluster handmatig wilt upgraden, downloadt u de cab/deb-distributie naar een virtuele clustermachine en roept u vervolgens de volgende PowerShell aan:
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">
Volgende stappen
- Een cluster maken op VM's of computers met Windows Server: Service Fabric-cluster maken voor Windows Server
- Een cluster maken op VM's of computers met Linux: Een Linux-cluster maken
- Meer informatie over ondersteuningsopties voor Service Fabric