Sdílet prostřednictvím


Infrastruktura jako kód

V produkčním scénáři vytvořte clustery Azure Service Fabric pomocí šablon Resource Manageru. Šablony Resource Manageru poskytují větší kontrolu nad vlastnostmi prostředků a zajišťují konzistentní model prostředků.

Ukázkové šablony Resource Manageru jsou k dispozici pro Windows a Linux v ukázkách Azure na GitHubu. Tyto šablony je možné použít jako výchozí bod pro vaši šablonu clusteru. Stáhněte azuredeploy.json a azuredeploy.parameters.json upravte je tak, aby splňovaly vaše vlastní požadavky.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Pokud chcete nasadit výše azuredeploy.jsonazuredeploy.parameters.json stažené šablony, použijte následující příkazy 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

Vytvoření prostředku pomocí PowerShellu

$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

Prostředky služby Service Fabric

Aplikace a služby můžete do clusteru Service Fabric nasadit prostřednictvím Azure Resource Manageru. Podrobnosti najdete v tématu Správa aplikací a služeb jako prostředků Azure Resource Manageru. Následující postup je osvědčeným postupem pro konkrétní prostředky aplikace Service Fabric, které se mají zahrnout do prostředků šablony Resource Manageru.

{
    "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')]"
}

Pokud chcete nasadit aplikaci pomocí Azure Resource Manageru, musíte nejprve vytvořit balíček aplikace Service Fabric sfpkg . Následující skript Pythonu je příkladem vytvoření 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()

Konfigurace automatického upgradu operačního systému virtuálního počítače

Upgrade virtuálních počítačů je operace iniciovaná uživatelem a doporučuje se povolit automatické upgrady škálovací sady virtuálních počítačů pro správu oprav uzlů clusteru Service Fabric. Aplikace orchestrace oprav (POA) je alternativní řešení určené pro clustery hostované mimo Azure. I když se poa dá použít v Azure, hostování vyžaduje větší správu, než pouhé povolení automatických upgradů imagí operačního systému škálovací sady. Následující jsou vlastnosti šablony Resource Manageru škálovací sady virtuálních počítačů, které umožňují automatické upgrady operačního systému:

"upgradePolicy": {
   "mode": "Automatic",
   "automaticOSUpgradePolicy": {
        "enableAutomaticOSUpgrade": true,
        "disableAutomaticRollback": false
    }
},

Při použití automatických upgradů operačního systému se Service Fabric nasadí nová image operačního systému po jedné aktualizační doméně, aby se zachovala vysoká dostupnost služeb spuštěných v Service Fabric. Pokud chcete v Service Fabric využívat automatické upgrady operačního systému, musí být váš cluster nakonfigurovaný tak, aby používal úroveň Silver Durability nebo vyšší.

Ujistěte se, že je následující klíč registru nastavený na hodnotu false, aby hostitelské počítače s Windows nezahajily nekoordované aktualizace: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows\WindowsUpdate\AU.

Pokud chcete zakázat služba Windows Update, nastavte následující vlastnosti šablony škálovací sady virtuálních počítačů:

"osProfile": {
        "computerNamePrefix": "{vmss-name}",
        "adminUsername": "{your-username}",
        "secrets": [],
        "windowsConfiguration": {
          "provisionVMAgent": true,
          "enableAutomaticUpdates": false
        }
      },

Konfigurace upgradu clusteru Service Fabric

Následuje vlastnost šablony clusteru Service Fabric, která umožňuje automatický upgrade:

"upgradeMode": "Automatic",

Pokud chcete cluster upgradovat ručně, stáhněte distribuci cab/deb do virtuálního počítače clusteru a pak vyvolejte následující 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">

Další kroky