Een primair knooppunttype voor Service Fabric-clusters omhoog schalen
In dit artikel wordt beschreven hoe u het primaire knooppunttype van een Service Fabric-cluster omhoog schaalt met minimale downtime. In-place SKU-upgrades worden niet ondersteund op Service Fabric-clusterknooppunten, zoals bewerkingen die mogelijk betrekking hebben op gegevens- en beschikbaarheidsverlies. De veiligste, meest betrouwbare en aanbevolen methode voor het omhoog schalen van een Service Fabric-knooppunttype is:
Voeg een nieuw knooppunttype toe aan uw Service Fabric-cluster, ondersteund door de bijgewerkte (of gewijzigde) virtuele-machineschaalset en -configuratie. Deze stap omvat ook het instellen van een nieuwe load balancer, subnet en openbaar IP-adres voor de schaalset.
Zodra zowel de oorspronkelijke als de bijgewerkte schaalsets naast elkaar worden uitgevoerd, schakelt u de oorspronkelijke knooppuntexemplaren één voor één uit, zodat de systeemservices (of replica's van stateful services) naar de nieuwe schaalset worden gemigreerd.
Controleer of het cluster en de nieuwe knooppunten in orde zijn en verwijder vervolgens de oorspronkelijke schaalset (en gerelateerde resources) en de status van het knooppunt voor de verwijderde knooppunten.
Hieronder vindt u informatie over het proces voor het bijwerken van de VM-grootte en het besturingssysteem van het primaire knooppunttype VM's van een voorbeeldcluster met Silver-duurzaamheid, ondersteund door één schaalset met vijf knooppunten. Het primaire knooppunttype wordt bijgewerkt:
- Van VM-grootte Standard_D2_V2 naar Standard-D4_V2, en
- Van VM-besturingssysteem Windows Server 2019 Datacenter naar Windows Server 2022 Datacenter.
Waarschuwing
Voordat u deze procedure op een productiecluster uitvoert, raden we u aan de voorbeeldsjablonen te bestuderen en het proces te controleren op basis van een testcluster. Het cluster is mogelijk gedurende korte tijd ook niet beschikbaar.
Voer geen procedure voor het omhoog schalen van het primaire knooppunttype uit als de clusterstatus niet in orde is, omdat dit het cluster alleen verder zal stabiliseren.
De stapsgewijze Azure-implementatiesjablonen die we gebruiken om dit voorbeeldupgradescenario te voltooien, zijn beschikbaar op GitHub.
Het testcluster instellen
We gaan het eerste Service Fabric-testcluster instellen. Download eerst de Azure Resource Manager-voorbeeldsjablonen die we gaan gebruiken om dit scenario te voltooien.
Meld u vervolgens aan bij uw Azure-account.
# Sign in to your Azure account
Login-AzAccount -SubscriptionId "<subscription ID>"
Open vervolgens het bestand parameters.json en werk de waarde voor clusterName
iets unieks bij (binnen Azure).
De volgende opdrachten helpen u bij het genereren van een nieuw zelfondertekend certificaat en het implementeren van het testcluster. Als u al een certificaat hebt dat u wilt gebruiken, gaat u naar Een bestaand certificaat gebruiken om het cluster te implementeren.
Een zelfondertekend certificaat genereren en het cluster implementeren
Wijs eerst de variabelen toe die u nodig hebt voor de implementatie van het Service Fabric-cluster. Pas de waarden voor resourceGroupName
, certSubjectName
en parameterFilePath
templateFilePath
voor uw specifieke account en omgeving aan:
# 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"
Notitie
Zorg ervoor dat de certOutputFolder
locatie op uw lokale computer aanwezig is voordat u de opdracht uitvoert om een nieuw Service Fabric-cluster te implementeren.
Implementeer vervolgens het Service Fabric-testcluster:
# Deploy the initial test cluster
New-AzServiceFabricCluster `
-ResourceGroupName $resourceGroupName `
-CertificateOutputFolder $certOutputFolder `
-CertificatePassword $certPassword `
-CertificateSubjectName $certSubjectName `
-TemplateFile $templateFilePath `
-ParameterFile $parameterFilePath
Zodra de implementatie is voltooid, zoekt u het PFX-bestand ($certPfx
) op uw lokale computer en importeert u het in het certificaatarchief:
cd c:\certificates
$certPfx = ".\sftestupgradegroup20200312121003.pfx"
Import-PfxCertificate `
-FilePath $certPfx `
-CertStoreLocation Cert:\CurrentUser\My `
-Password (ConvertTo-SecureString Password!1 -AsPlainText -Force)
De bewerking retourneert de vingerafdruk van het certificaat, die u nu kunt gebruiken om verbinding te maken met het nieuwe cluster en de status ervan te controleren. (Sla de volgende sectie over. Dit is een alternatieve benadering voor clusterimplementatie.)
Een bestaand certificaat gebruiken om het cluster te implementeren
U kunt ook een bestaand Azure Key Vault-certificaat gebruiken om het testcluster te implementeren. Hiervoor moet u verwijzingen naar uw Key Vault en certificaatvingerafdruk verkrijgen.
# Key Vault variables
$certUrlValue = "https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
$sourceVaultValue = "/subscriptions/########-####-####-####-############/resourceGroups/sftestupgradegroup/providers/Microsoft.KeyVault/vaults/sftestupgradegroup"
$thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"
Wijs vervolgens een resourcegroepnaam voor het cluster aan en stel de templateFilePath
en parameterFilePath
locaties in:
Notitie
De aangewezen resourcegroep moet al bestaan en zich in dezelfde regio bevinden als uw Key Vault.
$resourceGroupName = "sftestupgradegroup"
$templateFilePath = "C:\Initial-TestClusterSetup.json"
$parameterFilePath = "C:\parameters.json"
Voer ten slotte de volgende opdracht uit om het eerste testcluster te implementeren:
# Deploy the initial test cluster
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroupName `
-TemplateFile $templateFilePath `
-TemplateParameterFile $parameterFilePath `
-CertificateThumbprint $thumb `
-CertificateUrlValue $certUrlValue `
-SourceVaultValue $sourceVaultValue `
-Verbose
Verbinding maken met het nieuwe cluster en de status controleren
Maak verbinding met het cluster en zorg ervoor dat alle vijf de knooppunten in orde zijn (vervang de clusterName
en thumb
variabelen door uw eigen waarden):
# 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
Nu zijn we klaar om de upgradeprocedure te starten.
Een nieuw primair knooppunttype implementeren met een bijgewerkte schaalset
Als u een knooppunttype (verticaal schalen) wilt upgraden, moeten we eerst een nieuw knooppunttype implementeren dat wordt ondersteund door een nieuwe schaalset en ondersteunende resources. De nieuwe schaalset wordt gemarkeerd als primair (isPrimary: true
net als de oorspronkelijke schaalset). Als u een niet-primair knooppunttype wilt opschalen, raadpleegt u Een Service Fabric-cluster omhoog schalen als niet-primair knooppunttype. De resources die in de volgende sectie zijn gemaakt, worden uiteindelijk het nieuwe primaire knooppunttype in uw cluster en de oorspronkelijke resources van het primaire knooppunt worden verwijderd.
De clustersjabloon bijwerken met de bijgewerkte schaalset
Hier volgen de sectie-per-sectie-wijzigingen van de oorspronkelijke clusterimplementatiesjabloon voor het toevoegen van een nieuw primair knooppunttype en ondersteunende resources.
De vereiste wijzigingen voor deze stap zijn al voor u aangebracht in het sjabloonbestand Step1-AddPrimaryNodeType.json . Hieronder worden deze wijzigingen in detail uitgelegd. Als u wilt, kunt u de uitleg overslaan en doorgaan met het verkrijgen van uw Key Vault-verwijzingen en het implementeren van de bijgewerkte sjabloon waarmee een nieuw primair knooppunttype aan uw cluster wordt toegevoegd.
Notitie
Zorg ervoor dat u namen gebruikt die uniek zijn van het oorspronkelijke knooppunttype, schaalset, load balancer, openbaar IP-adres en subnet van het oorspronkelijke primaire knooppunttype, omdat deze resources in een latere stap in het proces worden verwijderd.
Een nieuw subnet maken in het bestaande virtuele netwerk
{
"name": "[variables('subnet1Name')]",
"properties": {
"addressPrefix": "[variables('subnet1Prefix')]"
}
}
Een nieuw openbaar IP-adres maken met een uniek 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')]"
}
}
Een nieuwe load balancer maken voor het openbare IP-adres
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/',concat(variables('lbIPName'),'-',variables('vmNodeType1Name')))]"
]
Een nieuwe virtuele-machineschaalset maken (met bijgewerkte VM- en os-SKU's)
Verwijzing van knooppunttype
"nodeTypeRef": "[variables('vmNodeType1Name')]"
VM-SKU
"sku": {
"name": "[parameters('vmNodeType1Size')]",
"capacity": "[parameters('nt1InstanceCount')]",
"tier": "Standard"
}
SKU van het besturingssysteem
"imageReference": {
"publisher": "[parameters('vmImagePublisher1')]",
"offer": "[parameters('vmImageOffer1')]",
"sku": "[parameters('vmImageSku1')]",
"version": "[parameters('vmImageVersion1')]"
}
Als u de SKU van het besturingssysteem wijzigt in een Linux-cluster
In het Windows-cluster is de waarde voor eigenschap vmImage 'Windows' terwijl de waarde van dezelfde eigenschap voor het Linux-cluster de naam is van de gebruikte installatiekopie van het besturingssysteem. Gebruik bijvoorbeeld Ubuntu20_04 (gebruik de naam van de meest recente VM-installatiekopieën).
Als u dus de VM-installatiekopie (OS SKU) in een Linux-cluster wijzigt, werkt u ook de vmImage-instelling bij op de Service Fabric-clusterresource.
#Update the property vmImage with the required OS name in your ARM template
{
"vmImage": "[parameter(newVmImageName]”
}
Opmerking: Voorbeeld van newVmImageName: Ubuntu20_04
U kunt de clusterresource ook bijwerken met behulp van de volgende PowerShell-opdracht:
# 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
Zorg er ook voor dat u eventuele extra extensies opneemt die vereist zijn voor uw workload.
Een nieuw primair knooppunttype toevoegen aan het cluster
Nu het nieuwe knooppunttype (vmNodeType1Name) een eigen naam, subnet, IP, load balancer en schaalset heeft, kan het alle andere variabelen van het oorspronkelijke knooppunttype (zoals nt0applicationEndPort
, nt0applicationStartPort
en 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')]"
Zodra u alle wijzigingen in uw sjabloon- en parameterbestanden hebt geïmplementeerd, gaat u verder met de volgende sectie om uw Key Vault-verwijzingen te verkrijgen en de updates in uw cluster te implementeren.
Uw Key Vault-verwijzingen verkrijgen
Als u de bijgewerkte configuratie wilt implementeren, hebt u verschillende verwijzingen nodig naar het clustercertificaat dat is opgeslagen in uw Key Vault. De eenvoudigste manier om deze waarden te vinden, is via Azure Portal. U hebt het volgende nodig:
De Key Vault-URL van uw clustercertificaat. Selecteer in uw Key Vault in De Azure-portal Certificaten>de gewenste certificaatgeheim-id:>
$certUrlValue="https://sftestupgradegroup.vault.azure.net/secrets/sftestupgradegroup20200309235308/dac0e7b7f9d4414984ccaa72bfb2ea39"
De vingerafdruk van uw clustercertificaat. (Waarschijnlijk hebt u het certificaat al als u verbinding hebt met het eerste cluster om de status ervan te controleren.) Kopieer vanaf dezelfde certificaatblade (Certificaten>naar gewenst certificaat) in De Azure-portal X.509 SHA-1-vingerafdruk (in hex):
$thumb = "BB796AA33BD9767E7DA27FE5182CF8FDEE714A70"
De resource-id van uw sleutelkluis. Selecteer in uw Key Vault in De Azure-portal de resource-id eigenschappen>:
$sourceVaultValue = "/subscriptions/########-####-####-####-############/resourceGroups/sftestupgradegroup/providers/Microsoft.KeyVault/vaults/sftestupgradegroup"
De bijgewerkte sjabloon implementeren
Pas de benodigde bewerkingen templateFilePath
aan en voer de volgende opdracht uit:
# 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
Wanneer de implementatie is voltooid, controleert u de clusterstatus opnieuw en zorgt u ervoor dat alle knooppunten op beide knooppunttypen in orde zijn.
Get-ServiceFabricClusterHealth
Seed-knooppunten migreren naar het nieuwe knooppunttype
We zijn nu klaar om het oorspronkelijke knooppunttype bij te werken als niet-primair en beginnen met het uitschakelen van de knooppunten. Als de knooppunten worden uitgeschakeld, worden de systeemservices en seed-knooppunten van het cluster gemigreerd naar de nieuwe schaalset.
Het oorspronkelijke knooppunttype opheffen als primair
Verwijder eerst de isPrimary
aanduiding in de sjabloon uit het oorspronkelijke knooppunttype.
{
"isPrimary": false,
}
Implementeer vervolgens de sjabloon met de update. Met deze implementatie wordt de migratie van seed-knooppunten naar de nieuwe schaalset gestart.
$templateFilePath = "C:\Step2-UnmarkOriginalPrimaryNodeType.json"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroupName `
-TemplateFile $templateFilePath `
-TemplateParameterFile $parameterFilePath `
-CertificateThumbprint $thumb `
-CertificateUrlValue $certUrlValue `
-SourceVaultValue $sourceVaultValue `
-Verbose
Notitie
Het duurt even voordat de seed-knooppuntmigratie naar de nieuwe schaalset is voltooid. Om gegevensconsistentie te garanderen, kan slechts één seed-knooppunt tegelijk worden gewijzigd. Elke seed-knooppuntwijziging vereist een clusterupdate; voor het vervangen van een seed-knooppunt zijn dus twee clusterupgrades vereist (één voor het toevoegen en verwijderen van knooppunten). Als u de vijf seed-knooppunten in dit voorbeeldscenario bijwerkt, worden er tien clusterupgrades uitgevoerd.
Gebruik Service Fabric Explorer om de migratie van seed-knooppunten naar de nieuwe schaalset te bewaken. De knooppunten van het oorspronkelijke knooppunttype (nt0vm) moeten allemaal onwaar zijn in de kolom Is Seed Node en die van het nieuwe knooppunttype (nt1vm) moeten waar zijn.
De knooppunten in de oorspronkelijke schaalset voor knooppunttypen uitschakelen
Zodra alle seed-knooppunten zijn gemigreerd naar de nieuwe schaalset, kunt u de knooppunten van de oorspronkelijke schaalset uitschakelen.
# 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
}
}
Gebruik Service Fabric Explorer om de voortgang van knooppunten in de oorspronkelijke schaalset te controleren van Uitschakelen naar Uitgeschakelde status.
Voor duurzaamheid van Silver en Gold krijgen sommige knooppunten de status Uitgeschakeld, terwijl andere mogelijk de status Uitschakelen hebben. Controleer in Service Fabric Explorer het tabblad Details van knooppunten met de status Uitschakelen. Als ze een in behandeling zijnde veiligheidscontrole van het type EnsurePartitionQuorem weergeven (ervoor zorgen dat quorum voor infrastructuurservicepartities wordt gegarandeerd), is het veilig om door te gaan.
Als uw cluster de duurzaamheid brons is, wacht u totdat alle knooppunten de status Uitgeschakeld hebben.
Gegevens op de uitgeschakelde knooppunten stoppen
U kunt nu gegevens op de uitgeschakelde knooppunten stoppen.
# 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
}
}
Het oorspronkelijke knooppunttype verwijderen en de bijbehorende resources opschonen
We zijn klaar om het oorspronkelijke knooppunttype en de bijbehorende resources te verwijderen om de verticale schaalprocedure te sluiten.
De oorspronkelijke schaalset verwijderen
Verwijder eerst de schaalset voor backing van het knooppunttype.
$scaleSetName = "nt0vm"
$scaleSetResourceType = "Microsoft.Compute/virtualMachineScaleSets"
Remove-AzResource -ResourceName $scaleSetName -ResourceType $scaleSetResourceType -ResourceGroupName $resourceGroupName -Force
De oorspronkelijke IP- en load balancer-resources verwijderen
U kunt nu het oorspronkelijke IP-adres en de load balancer-resources verwijderen. In deze stap werkt u ook de DNS-naam bij.
Notitie
Deze stap is optioneel als u al een openbaar IP-adres en een load balancer van de Standard-SKU gebruikt. In dit geval kunt u meerdere schaalsets/knooppunttypen hebben onder dezelfde load balancer.
Voer de volgende opdrachten uit, waarbij u de $lbname
waarde indien nodig wijzigt.
# 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
Knooppuntstatus verwijderen uit het oorspronkelijke knooppunttype
Op de oorspronkelijke knooppunten van het knooppunttype wordt nu Fout weergegeven voor de status van het knooppunt. Verwijder de status van het knooppunt uit het cluster.
# 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 moet nu alleen de vijf knooppunten van het nieuwe knooppunttype (nt1vm) weergeven, allemaal met de statusstatuswaarden van OK. De status van het cluster wordt nog steeds Fout weergegeven. We herstellen dat vervolgens door de sjabloon bij te werken om de meest recente wijzigingen weer te geven en opnieuw te implementeren.
De implementatiesjabloon bijwerken om het zojuist opgeschaalde primaire knooppunttype weer te geven
De vereiste wijzigingen voor deze stap zijn al voor u aangebracht in het Step3-CleanupOriginalPrimaryNodeType.json sjabloonbestand. In de volgende secties worden deze sjabloonwijzigingen in detail uitgelegd. Als u wilt, kunt u de uitleg overslaan en doorgaan met het implementeren van de bijgewerkte sjabloon en de zelfstudie voltooien.
Het eindpunt voor clusterbeheer bijwerken
Werk het cluster managementEndpoint
in de implementatiesjabloon bij om te verwijzen naar het nieuwe IP-adres (door vmNodeType0Name bij te werken met vmNodeType1Name).
"managementEndpoint": "[concat('https://',reference(concat(variables('lbIPName'),'-',variables('vmNodeType1Name'))).dnsSettings.fqdn,':',variables('nt0fabricHttpGatewayPort'))]",
De verwijzing naar het oorspronkelijke knooppunttype verwijderen
Verwijder de oorspronkelijke verwijzing naar het knooppunttype uit de Service Fabric-resource in de implementatiesjabloon:
"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')]"
Statusbeleid configureren om bestaande fouten te negeren
Alleen voor Silver- en hogere duurzaamheidsclusters werkt u de clusterresource in de sjabloon bij en configureert u statusbeleid om de toepassingsstatus te negeren fabric:/System
door applicationDeltaHealthPolicies toe te voegen onder clusterresource-eigenschappen, zoals hieronder wordt aangegeven. Het onderstaande beleid negeert bestaande fouten, maar staat geen nieuwe statusfouten toe.
"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
}
}
}
}
}
Ondersteunende resources verwijderen voor het oorspronkelijke knooppunttype
Verwijder alle andere resources met betrekking tot het oorspronkelijke knooppunttype uit de ARM-sjabloon en het parameterbestand. Verwijder het volgende:
"vmImagePublisher": {
"value": "MicrosoftWindowsServer"
},
"vmImageOffer": {
"value": "WindowsServer"
},
"vmImageSku": {
"value": "2019-Datacenter"
},
"vmImageVersion": {
"value": "latest"
},
De voltooide sjabloon implementeren
Implementeer ten slotte de gewijzigde Azure Resource Manager-sjabloon.
# Deploy the updated template file
$templateFilePath = "C:\Step3-CleanupOriginalPrimaryNodeType"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroupName `
-TemplateFile $templateFilePath `
-TemplateParameterFile $parameterFilePath `
-CertificateThumbprint $thumb `
-CertificateUrlValue $certUrlValue `
-SourceVaultValue $sourceVaultValue `
-Verbose
Notitie
Deze stap duurt een tijdje, meestal maximaal twee uur.
Tijdens de upgrade worden de instellingen voor InfrastructureService gewijzigd. Daarom is opnieuw opstarten van het knooppunt nodig. In dit geval wordt forceRestart genegeerd. De parameter upgradeReplicaSetCheckTimeout
geeft de maximale tijd aan die Service Fabric wacht tot een partitie in een veilige status is, als deze nog niet in een veilige status staat. Zodra de veiligheidscontroles zijn geslaagd voor alle partities op een knooppunt, gaat Service Fabric verder met de upgrade op dat knooppunt. De waarde voor de parameter upgradeTimeout
kan worden teruggebracht tot 6 uur, maar voor maximale veiligheid 12 uur moet worden gebruikt.
Zodra de implementatie is voltooid, controleert u in Azure Portal of de Service Fabric-resourcestatus gereed is. Controleer of u het nieuwe Service Fabric Explorer-eindpunt kunt bereiken, of de status van het cluster ok is en of de geïmplementeerde toepassingen correct werken.
U hebt nu een primair clusterknooppunttype verticaal geschaald.
Volgende stappen
- Meer informatie over het toevoegen van een knooppunttype aan een cluster
- Meer informatie over schaalbaarheid van toepassingen.
- Een Azure-cluster in- of uitschalen.
- Schaal een Azure-cluster programmatisch met behulp van de fluent Azure Compute SDK.
- Een zelfstandig cluster in- of uitschalen.