Share via


Service Fabric-fürt elsődleges csomóponttípusának vertikális felskálázása

Ez a cikk a Service Fabric-fürt elsődleges csomóponttípusának minimális állásidővel történő vertikális felskálázását ismerteti. A helyszíni termékváltozat-frissítések nem támogatottak a Service Fabric-fürtcsomópontokon, mivel az ilyen műveletek adat- és rendelkezésreállási veszteséget okozhatnak. A Service Fabric-csomóponttípusok vertikális felskálázásához a legbiztonságosabb, legmegbízhatóbb és ajánlott módszer a következő:

  1. Adjon hozzá egy új csomóponttípust a Service Fabric-fürthöz a frissített (vagy módosított) virtuálisgép-méretezési csoport termékváltozata és konfigurációja alapján. Ez a lépés egy új terheléselosztó, alhálózat és nyilvános IP-cím beállítását is magában foglalja a méretezési csoporthoz.

  2. Ha az eredeti és a frissített méretezési csoportok is egymás mellett futnak, tiltsa le egyenként az eredeti csomópontpéldányokat, hogy a rendszerszolgáltatások (vagy állapotalapú szolgáltatások replikái) áttérjenek az új méretezési csoportra.

  3. Ellenőrizze, hogy a fürt és az új csomópontok kifogástalan állapotban vannak-e, majd távolítsa el a törölt csomópontok eredeti méretezési csoportját (és kapcsolódó erőforrásait) és csomópontállapotát.

Az alábbiakban végigvezetjük egy Silver tartósságú mintafürt elsődleges csomópont típusú virtuális gépeinek virtuálisgép-méretének és operációs rendszerének frissítési folyamatán, amelyet egyetlen, öt csomóponttal rendelkező méretezési csoport biztosít. Az elsődleges csomóponttípust frissítjük:

  • Virtuális gép méretétől Standard_D2_V2standard D4_V2, és
  • A Windows Server 2019 Datacenter virtuálisgép-operációs rendszerről a Windows Server 2022 Datacenterre.

Figyelmeztetés

Mielőtt megkísérli ezt az eljárást egy éles fürtön, javasoljuk, hogy tanulmányozza a mintasablonokat, és ellenőrizze a folyamatot egy tesztfürtön. Előfordulhat, hogy a fürt rövid ideig nem érhető el.

Ne kísérelje meg az elsődleges csomóponttípus felskálázási eljárását, ha a fürt állapota nem megfelelő, mivel ez csak tovább destabilizálja a fürtöt.

A mintafrissítési forgatókönyv végrehajtásához használt, részletes Azure-beli üzembehelyezési sablonok elérhetők a GitHubon.

A tesztfürt beállítása

Állítsuk be a kezdeti Service Fabric-tesztfürtöt. Először töltse le az Azure Resource Manager mintasablonokat, amelyeket a forgatókönyv végrehajtásához fogunk használni.

Ezután jelentkezzen be az Azure-fiókjába.

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

Ezután nyissa meg a parameters.json fájlt, és frissítse az értékét clusterName valami egyedire (az Azure-on belül).

Az alábbi parancsok végigvezetik egy új önaláírt tanúsítvány létrehozásán és a tesztfürt üzembe helyezésén. Ha már rendelkezik a használni kívánt tanúsítvánnyal, ugorjon a Meglévő tanúsítvány használata a fürt üzembe helyezéséhez című témakörre.

Önaláírt tanúsítvány létrehozása és a fürt üzembe helyezése

Először rendelje hozzá a Service Fabric-fürt üzembe helyezéséhez szükséges változókat. Módosítsa a , certSubjectName, parameterFilePathés értékeket resourceGroupNameaz adott fiókhoz és templateFilePath környezethez:

# 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"

Megjegyzés

Győződjön meg arról, hogy a certOutputFolder hely létezik a helyi gépen, mielőtt futtatja az új Service Fabric-fürt üzembe helyezésére vonatkozó parancsot.

Ezután telepítse a Service Fabric tesztfürtöt:

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

Az üzembe helyezés befejezése után keresse meg a .pfx fájlt ($certPfx) a helyi gépen, és importálja a tanúsítványtárolóba:

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

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

A művelet visszaadja a tanúsítvány ujjlenyomatát, amellyel csatlakozhat az új fürthöz , és ellenőrizheti annak állapotát. (Hagyja ki a következő szakaszt, amely a fürt üzembe helyezésének alternatív megközelítése.)

Meglévő tanúsítvány használata a fürt üzembe helyezéséhez

Másik lehetőségként használhat egy meglévő Azure Key Vault-tanúsítványt a tesztfürt üzembe helyezéséhez. Ehhez be kell szereznie a Key Vault és a tanúsítvány ujjlenyomatára mutató hivatkozásokat.

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

Ezután jelöljön ki egy erőforráscsoport-nevet a fürt számára, és állítsa be a és parameterFilePath a templateFilePath helyet:

Megjegyzés

A kijelölt erőforráscsoportnak már léteznie kell, és ugyanabban a régióban kell lennie, mint a Key Vault.

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

Végül futtassa a következő parancsot a kezdeti tesztfürt üzembe helyezéséhez:

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

Csatlakozzon az új fürthöz, és ellenőrizze az állapotot

Csatlakozzon a fürthöz, és győződjön meg arról, hogy mind az öt csomópontja kifogástalan állapotban van (cserélje le a és thumb a clusterName változót a saját értékeivel):

# 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

Most már készen állunk a frissítési eljárás megkezdésére.

Új elsődleges csomóponttípus üzembe helyezése frissített méretezési csoporttal

Egy csomóponttípus frissítéséhez (vertikális skálázásához) először üzembe kell helyeznünk egy új csomóponttípust, amelyet egy új méretezési csoport és támogató erőforrások támogatnak. Az új méretezési csoport az eredeti méretezési csoporthoz hasonlóan elsődlegesként (isPrimary: true) lesz megjelölve. Ha nem elsődleges csomóponttípust szeretne vertikálisan felskálázni, tekintse meg a Service Fabric-fürt nem elsődleges csomóponttípusának vertikális felskálázását ismertető cikket. A következő szakaszban létrehozott erőforrások végső soron a fürt új elsődleges csomóponttípusává válnak, és az eredeti elsődleges csomóponttípusú erőforrások törlődnek.

A fürtsablon frissítése a frissített méretezési csoporttal

Itt találja az eredeti fürttelepítési sablon szakaszonkénti módosításait egy új elsődleges csomóponttípus és a támogató erőforrások hozzáadásához.

A lépéshez szükséges módosítások már el lettek végezve a Step1-AddPrimaryNodeType.json sablonfájlban, és az alábbiakban részletesen ismertetjük ezeket a módosításokat. Ha szeretné, kihagyhatja a magyarázatot, és továbbra is beszerezheti a Key Vault hivatkozásokat, és üzembe helyezheti a frissített sablont, amely új elsődleges csomóponttípust ad hozzá a fürthöz.

Megjegyzés

Győződjön meg arról, hogy az eredeti csomóponttípustól, méretezési csoporttól, terheléselosztótól, nyilvános IP-címtől és az eredeti elsődleges csomóponttípus alhálózatától egyedi neveket használ, mivel ezek az erőforrások a folyamat egy későbbi lépésében törlődnek.

Új alhálózat létrehozása a meglévő virtuális hálózaton

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

Új nyilvános IP-cím létrehozása egyedi tartománnyalNameLabel

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

Új terheléselosztó létrehozása a nyilvános IP-címhez

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

Új virtuálisgép-méretezési csoport létrehozása (frissített virtuális gépekkel és operációsrendszer-termékváltozatokkal)

Csomóponttípus hivja

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

Virtuális gép termékváltozata

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

Operációsrendszer-termékváltozat

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

Ha linuxos fürtön módosítja az operációsrendszer-termékváltozatot

Windows-fürtön a vmImage tulajdonság értéke "Windows", míg a Linux-fürt ugyanazon tulajdonságának értéke a használt operációsrendszer-lemezkép neve. Például: - Ubuntu20_04 (használja a legújabb virtuálisgép-rendszerkép nevét).

Ha tehát módosítja a virtuálisgép-rendszerképet (OS SKU) egy Linux-fürtben, akkor frissítse a vmImage beállítást a Service Fabric-fürterőforráson is.

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

Megjegyzés: Példa a newVmImageName: Ubuntu20_04

A fürterőforrást a következő PowerShell-paranccsal is frissítheti:

# 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

Emellett győződjön meg arról, hogy a számítási feladathoz szükséges további bővítményeket is tartalmaz.

Új elsődleges csomóponttípus hozzáadása a fürthöz

Most, hogy az új csomóponttípus (vmNodeType1Name) saját névvel, alhálózattal, IP-címekkel, terheléselosztóval és méretezési csoporttal rendelkezik, újra felhasználhatja az eredeti csomóponttípus összes többi változóját (például nt0applicationEndPort, nt0applicationStartPortés 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')]"

Miután végrehajtotta a sablon és a paraméterfájlok összes módosítását, folytassa a következő szakaszsal a Key Vault hivatkozásainak beszerzéséhez és a frissítések fürtben való üzembe helyezéséhez.

A Key Vault referenciáinak beszerzése

A frissített konfiguráció üzembe helyezéséhez több hivatkozásra is szüksége lesz a Key Vault tárolt fürttanúsítványra. Az értékek megkeresésének legegyszerűbb módja a Azure Portal. A következők szükségesek:

  • A fürttanúsítvány Key Vault URL-címe. A Azure Portal Key Vault válassza a Tanúsítványok>A kívánt tanúsítvány>titkos azonosítója lehetőséget:

    $certUrlValue="https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
    
  • A fürttanúsítvány ujjlenyomata. (Valószínűleg már rendelkezik a tanúsítvánnyal, ha a kezdeti fürthöz csatlakozott annak állapotának ellenőrzéséhez.) Azure Portal Másolja az X.509 SHA-1 ujjlenyomatot (>hexadecimális):

    $thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"
    
  • A Key Vault erőforrás-azonosítója. A Azure Portal Key Vault válassza a Tulajdonságok>erőforrás-azonosítója lehetőséget:

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

A frissített sablon üzembe helyezése

Módosítsa a templateFilePath parancsot igény szerint, és futtassa a következő parancsot:

# 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

Az üzembe helyezés befejezése után ellenőrizze újra a fürt állapotát, és győződjön meg arról, hogy mindkét csomóponttípus összes csomópontja kifogástalan állapotban van.

Get-ServiceFabricClusterHealth

Magcsomópontok migrálása az új csomóponttípusba

Most már készen állunk arra, hogy az eredeti csomóponttípust nem elsődlegesként frissítsük, és letiltsuk a csomópontokat. Ahogy a csomópontok le lesznek tiltva, a fürt rendszerszolgáltatásai és a magcsomópontok átkerülnek az új méretezési csoportra.

Az eredeti csomóponttípus megjelölésének megszüntetése elsődlegesként

Először távolítsa el a isPrimary sablonban lévő megjelölést az eredeti csomóponttípusból.

{
    "isPrimary": false,
}

Ezután telepítse a sablont a frissítéssel. Ez az üzembe helyezés elindítja a magcsomópontok áttelepítését az új méretezési csoportba.

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

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

Megjegyzés

A magcsomópont új méretezési csoportra való migrálása eltarthat egy ideig. Az adatkonzisztencia garantálása érdekében egyszerre csak egy magcsomópont módosítható. Minden egyes magcsomópont-módosításhoz fürtfrissítésre van szükség; Így a magcsomópont cseréje két fürtfrissítést igényel (egyet-egyet a csomópontok hozzáadásához és eltávolításához). Ebben a mintaforgatókönyvben az öt magcsomópont frissítése tíz fürtfrissítést eredményez.

A Service Fabric Explorer használatával monitorozza a magcsomópontok új méretezési csoportba való migrálását. Az eredeti csomóponttípus (nt0vm) csomópontjainak mind hamisnak kell lenniük az Is Seed Node oszlopban, és az új csomóponttípus (nt1vm) csomópontjainak igaznak kell lenniük.

A csomópontok letiltása az eredeti csomóponttípus-méretezési csoportban

Miután az összes magcsomópont át lett migrálva az új méretezési csoportra, letilthatja az eredeti méretezési csoport csomópontjait.

# 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
  }
}

A Service Fabric Explorer használatával figyelheti az eredeti méretezési csoportban lévő csomópontok előrehaladását a Letiltástól a Letiltott állapotig.

Service Fabric Explorer letiltott csomópontok állapotának megjelenítése

A Silver és Gold tartóssága érdekében egyes csomópontok letiltott állapotba kerülnek, míg mások letiltási állapotban maradnak. A Service Fabric Explorer ellenőrizze a Csomópontok Részletek lapját Letiltás állapotban. Ha függőben lévő biztonsági ellenőrzést mutatnak a For Kind EnsurePartitionQuorem (az infrastruktúra-szolgáltatás partícióinak kvórumának biztosítása), akkor biztonságosan folytathatja.

Folytathatja az adatok leállítását és a letiltás állapotában elakadt csomópontok eltávolítását, ha a

Ha a fürt bronzos tartósságú, várjon, amíg az összes csomópont eléri a Letiltott állapotot.

Adatok leállítása a letiltott csomópontokon

Most már leállíthatja az adatokat a letiltott csomópontokon.

# 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
  }
}

Távolítsa el az eredeti csomóponttípust, és törölje az erőforrásokat

Készen állunk arra, hogy eltávolítsuk az eredeti csomóponttípust és a hozzá tartozó erőforrásokat a vertikális skálázási eljárás befejezéséhez.

Az eredeti méretezési csoport eltávolítása

Először távolítsa el a csomóponttípus háttérskálázási készletét.

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

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

Az eredeti IP- és terheléselosztó-erőforrások törlése

Most már törölheti az eredeti IP-címet és a terheléselosztó erőforrásait. Ebben a lépésben a DNS-nevet is frissíti.

Megjegyzés

Ez a lépés nem kötelező, ha már standard termékváltozatú nyilvános IP-címet és terheléselosztót használ. Ebben az esetben több méretezési csoport/csomóponttípus is lehet ugyanazon terheléselosztó alatt.

Futtassa az alábbi parancsokat, és szükség szerint módosítsa az $lbname értéket.

# 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

Csomópont állapotának eltávolítása az eredeti csomóponttípusból

Az eredeti csomóponttípus-csomópontok most az állapotukhoz tartozó hibát jelenítik meg. Távolítsa el a csomópont állapotát a fürtből.

# 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 mostantól csak az új csomóponttípus (nt1vm) öt csomópontját kell tükröznie, amelyek állapota OK. A fürt állapotában továbbra is hiba jelenik meg. Ezt a következő lépésként a sablon frissítésével orvosoljuk, hogy azok tükrözzék a legújabb módosításokat és az újbóli üzembe helyezést.

Az üzembe helyezési sablon frissítése az újonnan felskálázott elsődleges csomópont típusának megfelelően

A lépéshez szükséges módosításokat már elvégezte a Step3-CleanupOriginalPrimaryNodeType.json sablonfájlban, és az alábbi szakaszok részletesen ismertetik ezeket a sablonmódosításokat. Ha szeretné, kihagyhatja a magyarázatot, és folytathatja a frissített sablon üzembe helyezését , és elvégezheti az oktatóanyagot.

A fürtkezelési végpont frissítése

Frissítse a fürtöt managementEndpoint az üzembehelyezési sablonon, hogy hivatkozzon az új IP-címre (a vmNodeType0Name és a vmNodeType1Name frissítésével).

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

Az eredeti csomóponttípus-referencia eltávolítása

Távolítsa el az eredeti csomóponttípus-hivatkozást a Service Fabric-erőforrásból az üzembe helyezési sablonban:

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

Állapotszabályzatok konfigurálása a meglévő hibák figyelmen kívül hagyására

Csak silver és magasabb tartósságú fürtök esetén frissítse a fürterőforrást a sablonban, és konfigurálja az állapotszabályzatokat úgy, hogy figyelmen kívül hagyja fabric:/System az alkalmazás állapotát. Ehhez adja hozzá az applicationDeltaHealthPolicies elemet a fürterőforrás-tulajdonságokhoz az alább megadott módon. Az alábbi szabályzat figyelmen kívül hagyja a meglévő hibákat, de nem engedélyezi az új állapothibákat.

"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 
           } 
       } 
   } 
 } 
}

Az eredeti csomóponttípus támogató erőforrásainak eltávolítása

Távolítsa el az eredeti csomóponttípushoz kapcsolódó összes többi erőforrást az ARM-sablonból és a paraméterfájlból. Törölje a következőket:

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

A véglegesített sablon üzembe helyezése

Végül helyezze üzembe a módosított Azure Resource Manager-sablont.

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

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

Megjegyzés

Ez a lépés eltarthat egy ideig, általában két óráig.

A frissítés módosítja a beállításokat az InfrastructureService-re; ezért csomópont-újraindításra van szükség. Ebben az esetben a forceRestart figyelmen kívül lesz hagyva. A paraméter upgradeReplicaSetCheckTimeout megadja, hogy a Service Fabric mennyi ideig várja meg, amíg egy partíció biztonságos állapotban van, ha még nem biztonságos állapotban van. Miután a biztonsági ellenőrzések átjutnak a csomópont összes partícióján, a Service Fabric folytatja a csomópont frissítését. A paraméter upgradeTimeout értéke 6 órára csökkenthető, de maximális biztonság esetén 12 órát kell használni.

Az üzembe helyezés befejezése után ellenőrizze a Azure Portal, hogy a Service Fabric-erőforrás állapota készen áll-e. Ellenőrizze, hogy el tudja-e érni az új Service Fabric Explorer végpontot, a fürt állapotarendben van, és az üzembe helyezett alkalmazások megfelelően működnek.

Most vertikálisan skálázott egy elsődleges fürtcsomóponttípust!

Következő lépések