Megosztás a következőn keresztül:


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

Ez a cikk azt ismerteti, hogyan skálázható fel a Service Fabric-fürt elsődleges csomóponttípusa minimális állásidővel. 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 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, amelyet a frissített (vagy módosított) virtuálisgép-méretezési csoport termékváltozata és konfigurációja is alátámaszt. 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 csoport számára.

  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 az állapotalapú szolgáltatások replikái) áttelepüljenek 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 ezüst 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 egy öt csomópontból álló méretezési csoport biztosít. Az elsődleges csomóponttípust frissítjük:

  • A virtuális gép méretétől Standard_D2_V2 a Standard D4_V2- és
  • A Windows Server 2019 Datacenter virtuálisgép-operációs rendszertől a Windows Server 2022 Datacenterig.

Figyelmeztetés

Mielőtt megpróbálkozza 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-telepítési sablonok a GitHubon érhetők el.

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 mintasablonjait, 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éket valami egyedire clusterName (az Azure-ban).

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 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.

Ö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 az adott fiók és környezet értékeitresourceGroupNameparameterFilePathcertSubjectName:templateFilePath

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

Feljegyzés

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

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 mostantól 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 Vaultra é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áscsoportnevet a fürt számára, és állítsa be a helyeket és parameterFilePath a templateFilePath helyeket:

Feljegyzés

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

$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 (cserélje le a változókat és thumb a clusterName saját értékeit):

# 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

A csomóponttípusok frissítéséhez (függőleges skálázás) először egy új, egy új méretezési csoporttal és támogatási erőforrásokkal támogatott csomóponttípust kell üzembe helyeznünk. Az új méretezési csoport elsődlegesként (isPrimary: trueaz eredeti méretezési csoporthoz hasonlóan) 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. 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ásai törlődnek.

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

Íme az eredeti fürttelepítési sablon szakaszonkénti módosítása 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ásokat már elvégeztük a Step1-AddPrimaryNodeType.json sablonfájlban, és az alábbiak részletesen ismertetik ezeket a módosításokat. Ha szeretné, kihagyhatja a magyarázatot, és folytathatja a Key Vault-referenciák beszerzését, és üzembe helyezheti a frissített sablont , amely új elsődleges csomóponttípust ad hozzá a fürthöz.

Feljegyzé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 alhálózattó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 újraf

"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-rendszerké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 tartalmazza.

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

Most, hogy az új csomóponttípus (vmNodeType1Name) saját nevével, alhálózatával, IP-címével, terheléselosztójával és méretezési csoportjával rendelkezik, újra felhasználhatja az eredeti csomóponttípus összes többi változóját (például nt0applicationEndPort: nt0applicationStartPortnt0fabricTcpGatewayPort

"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ő szakaszban a Key Vault-referenciák beszerzéséhez és a frissítések fürtre való üzembe helyezéséhez.

Key Vault-referenciák beszerzése

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

  • A fürttanúsítvány Key Vault URL-címe. Az Azure Portal Key Vaultjában válassza a Tanúsítvány a>kívánt titkos tanúsítványazonosítót:>

    $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 csatlakozik a kezdeti fürthöz annak állapotának ellenőrzéséhez.) Az Azure Portal ugyanazon tanúsítványpanelén (a kívánt tanúsítvány tanúsítványa>) másolja az X.509 SHA-1 ujjlenyomatot (hexában):

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

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

A frissített sablon üzembe helyezése

Módosítsa a templateFilePath szükséges lépéseket, é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

Amikor az üzembe helyezés befejeződött, 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 áttelepítése az új csomóponttípusra

Most már készen állunk az eredeti csomóponttípus nem elsődlegesként való frissítésére, és megkezdjük a csomópontok letiltását. A csomópontok letiltásakor a fürt rendszerszolgáltatásai és a magcsomópontok az új méretezési csoportra migrálnak.

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

Feljegyzés

A magcsomópont új méretezési csoportra való migrálása eltarthat egy ideig. Az adatkonzisztenciának biztosítá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 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 Explorerrel figyelheti a magcsomópontok új méretezési csoportra 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 Explorerrel figyelheti az eredeti méretezési csoportban lévő csomópontok állapotát a Letiltástól a Letiltás állapotig.

A Service Fabric Explorer letiltott csomópontok állapotát jeleníti meg

A Silver és Gold tartósság érdekében egyes csomópontok letiltott állapotba kerülnek, míg mások letiltott állapotban maradnak. A Service Fabric Explorerben 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 EnsurePartitionQuorem (az infrastruktúra-szolgáltatás partícióinak kvórumának biztosítása), akkor nyugodtan folytathatja.

Folytathatja az adatok leállítását és a letiltás állapotában elakadt csomópontok eltávolítását, ha függőben lévő biztonsági ellenőrzést mutatnak a

Ha a fürt bronzos tartósságú, várja meg, 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álaké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íteni fogja.

Feljegyzé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 ugyanabban a terheléselosztóban.

Futtassa a következő 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 állapotukkal kapcsolatos 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
  }
}

A Service Fabric Explorernek mostantól csak az új csomóponttípus (nt1vm) öt csomópontját kell tükröznie, és mindegyiknek AZ állapotértékekkel kell rendelkeznie. A fürt állapotában továbbra is hiba jelenik meg. Ezt a következő lépésben a sablon frissítésével orvosoljuk, hogy az tükrözze a legújabb módosításokat és az ismételt üzembe helyezést.

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

Az ehhez a lépéshez szükséges módosításokat már elvégeztük a Step3-CleanupOriginalPrimaryNodeType.json sablonfájlban, és a következő 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 hagyják fabric:/System az alkalmazás állapotát. Ehhez adja hozzá az applicationDeltaHealthPoliciest a fürterőforrás-tulajdonságokhoz az alábbiak szerint. 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 telepítse 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

Feljegyzés

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

A frissítés módosítja a beállításokat az InfrastructureService szolgáltatásra, 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 a partíció biztonságos állapotban van, ha még nincs biztonságos állapotban. Miután a csomópont összes partíciója biztonsági ellenőrzésen megy át, a Service Fabric folytatja a frissítést az adott csomóponton. A paraméter upgradeTimeout értéke 6 órára csökkenthető, de a maximális biztonság érdekében 12 órát kell használni.

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

Most vertikálisan skálázott egy fürt elsődleges csomóponttípusát!

Következő lépések