Sdílet prostřednictvím


Vertikální navýšení kapacity primárního typu uzlu clusteru Service Fabric

Tento článek popisuje, jak vertikálně navýšit kapacitu primárního uzlu clusteru Service Fabric s minimálními výpadky. Místní upgrady skladové položky nejsou podporované na uzlech clusteru Service Fabric, například takové operace mohou zahrnovat ztrátu dat a dostupnosti. Nejbezpečnější, nejspolehlivější a nejspolehlivější metodou vertikálního navýšení kapacity typu uzlu Service Fabric je:

  1. Přidejte do clusteru Service Fabric nový typ uzlu, který je zajištěný upgradovanou (nebo upravenou) skladovou jednotkou a konfigurací škálovací sady virtuálních počítačů. Tento krok také zahrnuje nastavení nového nástroje pro vyrovnávání zatížení, podsítě a veřejné IP adresy pro škálovací sadu.

  2. Jakmile jsou původní i upgradované škálovací sady spuštěné vedle sebe, zakažte instance původních uzlů po jednom, aby systémové služby (nebo repliky stavových služeb) migrovaly do nové škálovací sady.

  3. Ověřte, že cluster a nové uzly jsou v pořádku, odeberte původní škálovací sadu (a související prostředky) a stav uzlu pro odstraněné uzly.

Následující postup vás provede procesem aktualizace velikosti virtuálního počítače a operačního systému virtuálních počítačů primárního typu uzlu ukázkového clusteru s odolností Silver, která je zajištěna jednou škálovací sadou s pěti uzly. Upgradujeme primární typ uzlu:

  • Z velikosti virtuálního počítače Standard_D2_V2 až po D4_V2 Standard a
  • Z operačního systému virtuálního počítače s Windows Serverem 2019 Datacenter až po Windows Server 2022 Datacenter.

Upozorňující

Před pokusem o provedení tohoto postupu v produkčním clusteru doporučujeme prozkoumat ukázkové šablony a ověřit proces na testovacím clusteru. Cluster může být také po krátkou dobu nedostupný.

Nepokoušejte se o postup vertikálního navýšení kapacity primárního typu uzlu, pokud není stav clusteru v pořádku, protože tím se cluster ještě více stabilizuje.

Podrobné šablony nasazení Azure, které použijeme k dokončení tohoto ukázkového scénáře upgradu, jsou k dispozici na GitHubu.

Nastavení testovacího clusteru

Pojďme nastavit počáteční testovací cluster Service Fabric. Nejprve si stáhněte ukázkové šablony Azure Resource Manageru, které použijeme k dokončení tohoto scénáře.

Pak se přihlaste ke svému účtu Azure.

# Sign in to your Azure account
Login-AzAccount -SubscriptionId "<subscription ID>"

Potom otevřete soubor parameters.json a aktualizujte hodnotu clusterName na něco jedinečného (v rámci Azure).

Následující příkazy vás provedou generováním nového certifikátu podepsaného svým držitelem a nasazením testovacího clusteru. Pokud už máte certifikát, který chcete použít, přeskočte na Použití existujícího certifikátu k nasazení clusteru.

Vygenerování certifikátu podepsaného svým držitelem a nasazení clusteru

Nejprve přiřaďte proměnné, které potřebujete pro nasazení clusteru Service Fabric. Upravte hodnoty pro resourceGroupName, certSubjectName, parameterFilePatha templateFilePath pro konkrétní účet a prostředí:

# Assign deployment variables
$resourceGroupName = "sftestupgradegroup"
$certOutputFolder = "c:\certificates"
$certPassword = "Password!1" | ConvertTo-SecureString -AsPlainText -Force
$certSubjectName = "sftestupgrade.southcentralus.cloudapp.azure.com"
$parameterFilePath = "C:\parameters.json"
$templateFilePath = "C:\Initial-TestClusterSetup.json"

Poznámka:

Před spuštěním příkazu pro nasazení nového clusteru Service Fabric se ujistěte, že certOutputFolder umístění existuje na místním počítači.

Pak nasaďte testovací cluster Service Fabric:

# Deploy the initial test cluster
New-AzServiceFabricCluster `
    -ResourceGroupName $resourceGroupName `
    -CertificateOutputFolder $certOutputFolder `
    -CertificatePassword $certPassword `
    -CertificateSubjectName $certSubjectName `
    -TemplateFile $templateFilePath `
    -ParameterFile $parameterFilePath

Po dokončení nasazení vyhledejte soubor .pfx ($certPfx) na místním počítači a naimportujte ho do úložiště certifikátů:

cd c:\certificates
$certPfx = ".\sftestupgradegroup20200312121003.pfx"

Import-PfxCertificate `
     -FilePath $certPfx `
     -CertStoreLocation Cert:\CurrentUser\My `
     -Password (ConvertTo-SecureString Password!1 -AsPlainText -Force)

Operace vrátí kryptografický otisk certifikátu, který teď můžete použít k připojení k novému clusteru a zkontrolovat jeho stav. (Přeskočte následující část, což je alternativní přístup k nasazení clusteru.)

Nasazení clusteru pomocí existujícího certifikátu

Případně můžete k nasazení testovacího clusteru použít existující certifikát služby Azure Key Vault. K tomu potřebujete získat odkazy na službu Key Vault a kryptografický otisk certifikátu.

# Key Vault variables
$certUrlValue = "https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
$sourceVaultValue = "/subscriptions/########-####-####-####-############/resourceGroups/sftestupgradegroup/providers/Microsoft.KeyVault/vaults/sftestupgradegroup"
$thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"

Dále určete název skupiny prostředků pro cluster a nastavte umístěnítemplateFilePath:parameterFilePath

Poznámka:

Určená skupina prostředků už musí existovat a být umístěná ve stejné oblasti jako vaše služba Key Vault.

$resourceGroupName = "sftestupgradegroup"
$templateFilePath = "C:\Initial-TestClusterSetup.json"
$parameterFilePath = "C:\parameters.json"

Nakonec spuštěním následujícího příkazu nasaďte počáteční testovací cluster:

# Deploy the initial test cluster
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

Připojení k novému clusteru a kontrola stavu

Připojte se ke clusteru a ujistěte se, že je všech pět uzlů v pořádku (nahraďte clusterName thumb je vlastními hodnotami):

# Connect to the cluster
$clusterName = "sftestupgrade.southcentralus.cloudapp.azure.com:19000"
$thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"

Connect-ServiceFabricCluster `
    -ConnectionEndpoint $clusterName `
    -KeepAliveIntervalInSec 10 `
    -X509Credential `
    -ServerCertThumbprint $thumb  `
    -FindType FindByThumbprint `
    -FindValue $thumb `
    -StoreLocation CurrentUser `
    -StoreName My

# Check cluster health
Get-ServiceFabricClusterHealth

Teď jsme připraveni zahájit postup upgradu.

Nasazení nového primárního typu uzlu s upgradovanou škálovací sadou

Aby bylo možné upgradovat (vertikálně škálovat) typ uzlu, musíme nejprve nasadit nový typ uzlu, který je založený na nové škálovací sadě a podpůrných prostředcích. Nová škálovací sada se označí jako primární (isPrimary: true), stejně jako původní škálovací sada. Pokud chcete vertikálně navýšit kapacitu jiného typu než primárního uzlu, přečtěte si téma Vertikální navýšení kapacity clusteru Service Fabric, který není primárním typem uzlu. Prostředky vytvořené v následující části se nakonec stanou novým typem primárního uzlu v clusteru a původní prostředky typu primárního uzlu se odstraní.

Aktualizace šablony clusteru pomocí upgradované škálovací sady

Tady jsou úpravy oddílů původní šablony nasazení clusteru pro přidání nového primárního typu uzlu a podpůrných prostředků.

Požadované změny pro tento krok už byly provedeny v souboru šablony Step1-AddPrimaryNodeType.json a následující informace podrobně vysvětlují tyto změny. Pokud chcete, můžete vysvětlení přeskočit a dál získat odkazy na key Vault a nasadit aktualizovanou šablonu , která do clusteru přidá nový primární typ uzlu.

Poznámka:

Ujistěte se, že používáte názvy, které jsou jedinečné z původního typu uzlu, škálovací sady, nástroje pro vyrovnávání zatížení, veřejné IP adresy a podsítě původního primárního typu uzlu, protože tyto prostředky se v pozdějším kroku procesu odstraní.

Vytvoření nové podsítě v existující virtuální síti

{
    "name": "[variables('subnet1Name')]",
    "properties": {
        "addressPrefix": "[variables('subnet1Prefix')]"
    }
}

Vytvoření nové veřejné IP adresy s jedinečným názvem domainNameLabel

{
    "apiVersion": "[variables('publicIPApiVersion')]",
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[concat(variables('lbIPName'),'-',variables('vmNodeType1Name'))]",
    "location": "[variables('computeLocation')]",
    "properties": {
        "dnsSettings": {
            "domainNameLabel": "[concat(variables('dnsName'),'-','nt1')]"
        },
        "publicIPAllocationMethod": "Dynamic"
    },
    "tags": {
        "resourceType": "Service Fabric",
        "clusterName": "[parameters('clusterName')]"
    }
}

Vytvoření nového nástroje pro vyrovnávání zatížení pro veřejnou IP adresu

"dependsOn": [
    "[concat('Microsoft.Network/publicIPAddresses/',concat(variables('lbIPName'),'-',variables('vmNodeType1Name')))]"
]

Vytvoření nové škálovací sady virtuálních počítačů (s upgradovanými skladovými jednotkami virtuálního počítače a SKU operačního systému)

Odkaz typu uzlu

"nodeTypeRef": "[variables('vmNodeType1Name')]"

Skladová položka virtuálního počítače

"sku": {
    "name": "[parameters('vmNodeType1Size')]",
    "capacity": "[parameters('nt1InstanceCount')]",
    "tier": "Standard"
}

Skladová položka operačního systému

"imageReference": {
    "publisher": "[parameters('vmImagePublisher1')]",
    "offer": "[parameters('vmImageOffer1')]",
    "sku": "[parameters('vmImageSku1')]",
    "version": "[parameters('vmImageVersion1')]"
}

Pokud měníte skladovou položku operačního systému v clusteru s Linuxem

V clusteru s Windows je hodnota vlastnosti vmImage Windows, zatímco hodnota stejné vlastnosti pro cluster s Linuxem je název použité image operačního systému. Například – Ubuntu20_04(použijte nejnovější název image virtuálního počítače).

Pokud tedy měníte image virtuálního počítače (SKU operačního systému) v clusteru s Linuxem, aktualizujte také nastavení vmImage pro prostředek clusteru Service Fabric.

#Update the property vmImage with the required OS name in your ARM template
{
    "vmImage": "[parameter(newVmImageName]”
}

Poznámka: Příklad newVmImageName: Ubuntu20_04

Prostředek clusteru můžete také aktualizovat pomocí následujícího příkazu PowerShellu:

# Update cluster vmImage to target OS. This registers the SF runtime package type that is supplied for upgrades.
Update-AzServiceFabricVmImage -ResourceGroupName $resourceGroup -ClusterName $clusterName -VmImage Ubuntu20_04

Také se ujistěte, že zahrnete všechna další rozšíření, která jsou potřebná pro vaši úlohu.

Přidání nového typu primárního uzlu do clusteru

Teď, když má nový typ uzlu (vmNodeType1Name) vlastní název, podsíť, IP adresu, nástroj pro vyrovnávání zatížení a škálovací sadu, může znovu použít všechny ostatní proměnné z původního typu uzlu (například nt0applicationEndPort, nt0applicationStartPorta nt0fabricTcpGatewayPort):

"name": "[variables('vmNodeType1Name')]",
"applicationPorts": {
    "endPort": "[variables('nt0applicationEndPort')]",
    "startPort": "[variables('nt0applicationStartPort')]"
},
"clientConnectionEndpointPort": "[variables('nt0fabricTcpGatewayPort')]",
"durabilityLevel": "Bronze",
"ephemeralPorts": {
    "endPort": "[variables('nt0ephemeralEndPort')]",
    "startPort": "[variables('nt0ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[variables('nt0fabricHttpGatewayPort')]",
"isPrimary": true,
"reverseProxyEndpointPort": "[variables('nt0reverseProxyEndpointPort')]",
"vmInstanceCount": "[parameters('nt1InstanceCount')]"

Po implementaci všech změn v šabloně a souborech parametrů přejděte k další části a získejte odkazy na key Vault a nasaďte aktualizace do clusteru.

Získání odkazů na službu Key Vault

Pokud chcete nasadit aktualizovanou konfiguraci, potřebujete několik odkazů na certifikát clusteru uložený ve službě Key Vault. Nejjednodušší způsob, jak tyto hodnoty najít, je prostřednictvím webu Azure Portal. Potřebujete:

  • Adresa URL služby Key Vault vašeho certifikátu clusteru. Ve službě Key Vault na webu Azure Portal vyberte Certifikáty>, u které jste zvolili identifikátor tajného klíče požadovaného certifikátu:>

    $certUrlValue="https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
    
  • Kryptografický otisk certifikátu clusteru. (Certifikát už pravděpodobně máte, pokud jste se připojili k počátečnímu clusteru a zkontrolovali jeho stav.) Ve stejném okně certifikátu (certifikáty>, které jste si přáli) na webu Azure Portal zkopírujte kryptografický otisk X.509 SHA-1 (v šestnáctkovém formátu):

    $thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"
    
  • ID prostředku služby Key Vault. Ve službě Key Vault na webu Azure Portal vyberte ID prostředku Vlastnosti>:

    $sourceVaultValue = "/subscriptions/########-####-####-####-############/resourceGroups/sftestupgradegroup/providers/Microsoft.KeyVault/vaults/sftestupgradegroup"
    

Nasazení aktualizované šablony

templateFilePath Podle potřeby upravte a spusťte následující příkaz:

# Deploy the new node type and its resources
$templateFilePath = "C:\Step1-AddPrimaryNodeType.json"

New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

Po dokončení nasazení znovu zkontrolujte stav clusteru a ujistěte se, že jsou všechny uzly v obou typech uzlů v pořádku.

Get-ServiceFabricClusterHealth

Migrace počátečních uzlů na nový typ uzlu

Teď jsme připraveni aktualizovat původní typ uzlu jako neprimární a začít zakazovat jeho uzly. Jakmile uzly zakážete, systémové služby clusteru a počáteční uzly se migrují do nové škálovací sady.

Zrušení označení původního typu uzlu jako primárního

Nejprve odeberte isPrimary označení v šabloně z původního typu uzlu.

{
    "isPrimary": false,
}

Pak šablonu nasaďte s aktualizací. Toto nasazení zahájí migraci počátečních uzlů do nové škálovací sady.

$templateFilePath = "C:\Step2-UnmarkOriginalPrimaryNodeType.json"

New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

Poznámka:

Dokončení migrace počátečního uzlu do nové škálovací sady bude nějakou dobu trvat. Pokud chcete zaručit konzistenci dat, může se najednou změnit jenom jeden počáteční uzel. Každá změna počátečního uzlu vyžaduje aktualizaci clusteru; nahrazení počátečního uzlu vyžaduje dva upgrady clusteru (jeden pro přidání a odebrání uzlu). Upgradem pěti počátečních uzlů v tomto ukázkovém scénáři dojde k deseti upgradům clusteru.

Pomocí Service Fabric Exploreru můžete monitorovat migraci počátečních uzlů do nové škálovací sady. Uzly původního typu uzlu (nt0vm) by měly být ve sloupci Is Seed Node (Počáteční uzel) false a ty z nového typu uzlu (nt1vm) by měly být pravdivé.

Zakázání uzlů ve škálovací sadě původního typu uzlu

Po migraci všech počátečních uzlů do nové škálovací sady můžete zakázat uzly původní škálovací sady.

# Disable the nodes in the original scale set.
$nodeType = "nt0vm"
$nodes = Get-ServiceFabricNode

Write-Host "Disabling nodes..."
foreach($node in $nodes)
{
  if ($node.NodeType -eq $nodeType)
  {
    $node.NodeName

    Disable-ServiceFabricNode -Intent RemoveNode -NodeName $node.NodeName -Force
  }
}

Pomocí Service Fabric Exploreru můžete monitorovat průběh uzlů v původní škálovací sadě z zakázání na zakázaný stav.

Service Fabric Explorer zobrazující stav zakázaných uzlů

V případě odolnosti Silver a Gold budou některé uzly přecházet do stavu Zakázáno, zatímco jiné můžou zůstat ve stavu Zakázání . V Service Fabric Exploreru zkontrolujte kartu Podrobnosti uzlů v zakázání stavu. Pokud se jim zobrazí čekající bezpečnostní kontrola typu EnsurePartitionQuorem (zajištění kvora pro oddíly služby infrastruktury), je bezpečné pokračovat.

Pokud se u nich zobrazí čekající bezpečnostní kontrola typu EnsurePartitionQuorum, můžete pokračovat zastavením dat a odebráním uzlů zablokovaných ve stavu Zakázání.

Pokud je váš cluster bronzový, počkejte, až se všechny uzly dostanou do stavu Zakázáno .

Zastavení dat na zakázaných uzlech

Teď můžete zastavit data na zakázaných uzlech.

# Stop data on the disabled nodes.
foreach($node in $nodes)
{
  if ($node.NodeType -eq $nodeType)
  {
    $node.NodeName

    Start-ServiceFabricNodeTransition -Stop -OperationId (New-Guid) -NodeInstanceId $node.NodeInstanceId -NodeName $node.NodeName -StopDurationInSeconds 10000
  }
}

Odebrání původního typu uzlu a vyčištění jeho prostředků

Jsme připraveni odebrat původní typ uzlu a jeho přidružené prostředky k závěru postupu vertikálního škálování.

Odebrání původní škálovací sady

Nejprve odeberte backingovou škálovací sadu typu uzlu.

$scaleSetName = "nt0vm"
$scaleSetResourceType = "Microsoft.Compute/virtualMachineScaleSets"

Remove-AzResource -ResourceName $scaleSetName -ResourceType $scaleSetResourceType -ResourceGroupName $resourceGroupName -Force

Odstranění původní IP adresy a prostředků nástroje pro vyrovnávání zatížení

Teď můžete odstranit původní IP adresu a prostředky nástroje pro vyrovnávání zatížení. V tomto kroku také aktualizujete název DNS.

Poznámka:

Tento krok je volitelný, pokud už používáte veřejnou IP adresu skladové položky Standard a nástroj pro vyrovnávání zatížení. V takovém případě můžete mít ve stejném nástroji pro vyrovnávání zatížení více typů škálovacích sad nebo uzlů.

Spusťte následující příkazy a upravte $lbname hodnotu podle potřeby.

# Delete the original IP and load balancer resources
$lbName = "LB-sftestupgrade-nt0vm"
$lbResourceType = "Microsoft.Network/loadBalancers"
$ipResourceType = "Microsoft.Network/publicIPAddresses"
$oldPublicIpName = "PublicIP-LB-FE-nt0vm"
$newPublicIpName = "PublicIP-LB-FE-nt1vm"

$oldPrimaryPublicIP = Get-AzPublicIpAddress -Name $oldPublicIpName  -ResourceGroupName $resourceGroupName
$primaryDNSName = $oldPrimaryPublicIP.DnsSettings.DomainNameLabel
$primaryDNSFqdn = $oldPrimaryPublicIP.DnsSettings.Fqdn

Remove-AzResource -ResourceName $lbName -ResourceType $lbResourceType -ResourceGroupName $resourceGroupName -Force
Remove-AzResource -ResourceName $oldPublicIpName -ResourceType $ipResourceType -ResourceGroupName $resourceGroupName -Force

$PublicIP = Get-AzPublicIpAddress -Name $newPublicIpName  -ResourceGroupName $resourceGroupName
$PublicIP.DnsSettings.DomainNameLabel = $primaryDNSName
$PublicIP.DnsSettings.Fqdn = $primaryDNSFqdn
Set-AzPublicIpAddress -PublicIpAddress $PublicIP

Odebrání stavu uzlu z původního typu uzlu

U uzlů typu původního uzlu se teď zobrazí chyba pro jejich stav. Odeberte stav uzlu z clusteru.

# Remove state of the obsolete nodes from the cluster
$nodeType = "nt0vm"
$nodes = Get-ServiceFabricNode

Write-Host "Removing node state..."
foreach($node in $nodes)
{
  if ($node.NodeType -eq $nodeType)
  {
    $node.NodeName

    Remove-ServiceFabricNodeState -NodeName $node.NodeName -Force
  }
}

Service Fabric Explorer by teď měl odrážet pouze pět uzlů nového typu uzlu (nt1vm), a to vše s hodnotami stavu OK. Váš stav clusteru bude stále zobrazovat chybu. Tento postup opravíme tak, že šablonu aktualizujeme tak, aby odrážela nejnovější změny a opětovné nasazení.

Aktualizace šablony nasazení tak, aby odrážela nově škálovaný primární typ uzlu

Požadované změny pro tento krok už byly provedeny v souboru šablony Step3-CleanupOriginalPrimaryNodeType.json a následující části podrobně vysvětlují tyto změny šablony. Pokud chcete, můžete vysvětlení přeskočit a pokračovat v nasazení aktualizované šablony a dokončit kurz.

Aktualizace koncového bodu správy clusteru

Aktualizujte cluster managementEndpoint v šabloně nasazení tak, aby odkaz na novou IP adresu (aktualizací vmNodeType0Name pomocí vmNodeType1Name).

  "managementEndpoint": "[concat('https://',reference(concat(variables('lbIPName'),'-',variables('vmNodeType1Name'))).dnsSettings.fqdn,':',variables('nt0fabricHttpGatewayPort'))]",

Odebrání odkazu na původní typ uzlu

Odeberte původní odkaz na typ uzlu z prostředku Service Fabric v šabloně nasazení:

"name": "[variables('vmNodeType0Name')]",
"applicationPorts": {
    "endPort": "[variables('nt0applicationEndPort')]",
    "startPort": "[variables('nt0applicationStartPort')]"
},
"clientConnectionEndpointPort": "[variables('nt0fabricTcpGatewayPort')]",
"durabilityLevel": "Bronze",
"ephemeralPorts": {
    "endPort": "[variables('nt0ephemeralEndPort')]",
    "startPort": "[variables('nt0ephemeralStartPort')]"
},
"httpGatewayEndpointPort": "[variables('nt0fabricHttpGatewayPort')]",
"isPrimary": true,
"reverseProxyEndpointPort": "[variables('nt0reverseProxyEndpointPort')]",
"vmInstanceCount": "[parameters('nt0InstanceCount')]"

Konfigurace zásad stavu pro ignorování existujících chyb

Pouze pro clustery se stříbrnou a vyšší odolností aktualizujte prostředek clusteru v šabloně a nakonfigurujte zásady stavu tak, aby ignorovaly fabric:/System stav aplikace přidáním applicationDeltaHealthPolicies do vlastností prostředků clusteru, jak je uvedeno níže. Následující zásada bude ignorovat existující chyby, ale nepovolí nové chyby stavu.

"upgradeDescription":  
{ 
 "forceRestart": false, 
 "upgradeReplicaSetCheckTimeout": "10675199.02:48:05.4775807", 
 "healthCheckWaitDuration": "00:05:00", 
 "healthCheckStableDuration": "00:05:00", 
 "healthCheckRetryTimeout": "00:45:00", 
 "upgradeTimeout": "12:00:00", 
 "upgradeDomainTimeout": "02:00:00", 
 "healthPolicy": { 
   "maxPercentUnhealthyNodes": 100, 
   "maxPercentUnhealthyApplications": 100 
 }, 
 "deltaHealthPolicy":  
 { 
   "maxPercentDeltaUnhealthyNodes": 0, 
   "maxPercentUpgradeDomainDeltaUnhealthyNodes": 0, 
   "maxPercentDeltaUnhealthyApplications": 0, 
   "applicationDeltaHealthPolicies":  
   { 
       "fabric:/System":  
       { 
           "defaultServiceTypeDeltaHealthPolicy":  
           { 
                   "maxPercentDeltaUnhealthyServices": 0 
           } 
       } 
   } 
 } 
}

Odebrání podpůrných prostředků pro původní typ uzlu

Odeberte všechny ostatní prostředky související s původním typem uzlu ze šablony ARM a souboru parametrů. Odstraňte následující:

    "vmImagePublisher": {
      "value": "MicrosoftWindowsServer"
    },
    "vmImageOffer": {
      "value": "WindowsServer"
    },
    "vmImageSku": {
      "value": "2019-Datacenter"
    },
    "vmImageVersion": {
      "value": "latest"
    },

Nasazení finalizované šablony

Nakonec nasaďte upravenou šablonu Azure Resource Manageru.

# Deploy the updated template file
$templateFilePath = "C:\Step3-CleanupOriginalPrimaryNodeType"

New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile $templateFilePath `
    -TemplateParameterFile $parameterFilePath `
    -CertificateThumbprint $thumb `
    -CertificateUrlValue $certUrlValue `
    -SourceVaultValue $sourceVaultValue `
    -Verbose

Poznámka:

Tento krok bude chvíli trvat, obvykle až dvě hodiny.

Upgrade změní nastavení služby InfrastructureService, proto je potřeba restartovat uzel. V tomto případě se forceRestart ignoruje. upgradeReplicaSetCheckTimeout Parametr určuje maximální dobu, po kterou Service Fabric čeká na to, aby oddíl byl v bezpečném stavu, pokud ještě není v bezpečném stavu. Jakmile bezpečnostní kontroly projdou všechny oddíly na uzlu, Service Fabric pokračuje upgradem na daném uzlu. Hodnotu parametru upgradeTimeout lze snížit na 6 hodin, ale pro maximální bezpečnost je třeba použít 12 hodin.

Po dokončení nasazení ověřte na webu Azure Portal, že je stav prostředku Service Fabric připravený. Ověřte, že se můžete připojit k novému koncovému bodu Service Fabric Exploreru, stav clusteru je v pořádku a všechny nasazené aplikace fungují správně.

Teď jste vertikálně škálovali primární typ uzlu clusteru.

Další kroky