Inleiding tot automatisch schalen in beheerde Service Fabric-clusters
Automatische schaalaanpassing biedt een grote elasticiteit en maakt het toevoegen of verminderen van knooppunten op aanvraag mogelijk op een secundair knooppunttype. Dit geautomatiseerde en elastische gedrag vermindert de overhead van het beheer en de mogelijke bedrijfsimpact door het aantal knooppunten dat uw workload onderhoudt te bewaken en te optimaliseren. U configureert regels voor uw workload en laat automatische schaalaanpassing de rest afhandelen. Wanneer aan deze gedefinieerde drempelwaarden wordt voldaan, ondernemen regels voor automatische schaalaanpassing actie om de capaciteit van uw knooppunttype aan te passen. Automatisch schalen kan op elk gewenst moment worden ingeschakeld, uitgeschakeld of geconfigureerd. Dit artikel bevat een voorbeeldimplementatie, het in- of uitschakelen van automatisch schalen en het configureren van een voorbeeldbeleid voor automatisch schalen.
Vereisten en ondersteunde metrische gegevens:
- De apiVersion van de beheerde Service Fabric-clusterresource moet 2022-01-01 of hoger zijn.
- De cluster-SKU moet Standard zijn.
- Kan alleen worden geconfigureerd op een secundair knooppunttype in uw cluster.
- Nadat u automatische schaalaanpassing voor een knooppunttype hebt ingeschakeld, configureert u
vmInstanceCount
de eigenschap voor-1
bij het opnieuw implementeren van de resource. - Alleen gepubliceerde metrische gegevens van Azure Monitor worden ondersteund.
Notitie
Als u een installatiekopie van het Windows-besturingssysteem gebruikt waarvoor de Hyper-V-rol is ingeschakeld, dat wil doen. de VM wordt geconfigureerd voor geneste virtualisatie. De metrische gegevens over beschikbaar geheugen zijn niet beschikbaar, omdat het dynamische geheugenstuurprogramma in de VM de status Gestopt heeft.
Een veelvoorkomend scenario waarbij automatisch schalen handig is, is wanneer de belasting van een bepaalde service in de loop van de tijd varieert. Een service zoals een gateway kan bijvoorbeeld worden geschaald op basis van de hoeveelheid resources die nodig zijn om binnenkomende aanvragen te verwerken. Laten we eens kijken naar een voorbeeld van hoe deze schaalregels eruit kunnen zien. We gebruiken ze verderop in het artikel:
- Als alle exemplaren van mijn gateway gemiddeld meer dan 70% gebruiken, schaalt u de gatewayservice uit door twee extra exemplaren toe te voegen. Doe dit elke 30 minuten, maar u hebt in totaal nooit meer dan twintig exemplaren.
- Als alle exemplaren van mijn gateway gemiddeld minder dan 40% kerngeheugens gebruiken, schaalt u de service in door één exemplaar te verwijderen. Doe dit elke 30 minuten, maar u hebt nooit minder dan drie exemplaren in totaal.
Voorbeeld van implementatie van automatische schaalaanpassing
In dit voorbeeld wordt het volgende uitgelegd:
- Het maken van een Standard SKU Service Fabric beheerd cluster met twee knooppunttypen,
NT1
enNT2
standaard. - Regels voor automatisch schalen toevoegen aan het secundaire knooppunttype,
NT2
.
Notitie
Automatische schaalaanpassing van het knooppunttype wordt uitgevoerd op basis van de metrische gegevens van de VMSS CPU-host van het beheerde cluster. VMSS-resource wordt automatisch opgelost in de sjabloon.
Het volgende leidt u stap voor stap door het instellen van een cluster met automatische schaalaanpassing geconfigureerd.
Resourcegroep maken in een regio
Login-AzAccount Select-AzSubscription -SubscriptionId $subscriptionid New-AzResourceGroup -Name $myresourcegroup -Location $location
Clusterresource maken
Download dit voorbeeld van een standard-SKU beheerd service fabric-cluster Voer deze opdracht uit om de clusterresource te implementeren:
$parameters = @{ clusterName = $clusterName adminPassword = $VmAdminPassword clientCertificateThumbprint = $clientCertificateThumbprint } New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
Regels voor automatische schaalaanpassing configureren en inschakelen op een secundair knooppunttype
Download de voorbeeldsjabloon voor automatische schaalaanpassing van beheerde clusters die u gaat gebruiken om automatisch schalen te configureren met de volgende opdrachten:
$parameters = @{ clusterName = $clusterName } New-AzResourceGroupDeployment -Name "deploy_autoscale" -ResourceGroupName $resourceGroupName -TemplateFile .\sfmc-deploy-autoscale.json -TemplateParameterObject $parameters -Verbose
Notitie
Nadat deze implementatie is voltooid, moeten toekomstige implementaties van clusterresources de vmInstanceCount
eigenschap -1
instellen op secundaire knooppunttypen waarvoor regels voor automatisch schalen zijn ingeschakeld. Dit zorgt ervoor dat clusterimplementaties niet conflicteren met automatische schaalaanpassing.
Automatisch schalen in- of uitschakelen op een secundair knooppunttype
Knooppunttypen die zijn geïmplementeerd door een beheerd Service Fabric-cluster, maken automatisch schalen niet standaard mogelijk. Automatisch schalen kan op elk gewenst moment worden in- of uitgeschakeld, per knooppunttype dat is geconfigureerd en beschikbaar.
Als u deze functie wilt inschakelen, configureert u de enabled
eigenschap onder het type Microsoft.Insights/autoscaleSettings
in een ARM-sjabloon, zoals hieronder wordt weergegeven:
"resources": [
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2015-04-01",
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"location": "[resourceGroup().location]",
"properties": {
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"targetResourceUri": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'), '/nodetypes/', parameters('nodeType2Name'))]",
"enabled": true,
...
Als u automatisch schalen wilt uitschakelen, stelt u de waarde in op false
Regels voor automatisch schalen verwijderen
Als u de instellingen voor beleid voor automatisch schalen voor een knooppunttype wilt verwijderen, kunt u de volgende PowerShell-opdracht uitvoeren.
Remove-AzResource -ResourceId "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/microsoft.insights/autoscalesettings/$name" -Force
Beleid instellen voor automatisch schalen
Een beheerd Service Fabric-cluster configureert standaard geen beleid voor automatisch schalen . Beleid voor automatisch schalen moet worden geconfigureerd om ervoor te zorgen dat schaalacties worden uitgevoerd op de onderliggende resources.
In het volgende voorbeeld wordt een beleid ingesteld voor nodeType2Name
ten minste 3 knooppunten, maar kan omhoog worden geschaald naar 20 knooppunten. Er wordt omhoog schalen geactiveerd wanneer het gemiddelde CPU-gebruik gedurende de afgelopen 30 minuten 70% is met een granulariteit van 1 minuut. Het omlaag schalen wordt geactiveerd zodra het gemiddelde CPU-gebruik de afgelopen 30 minuten onder de 40% is met een granulariteit van 1 minuut.
"resources": [
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2015-04-01",
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"location": "[resourceGroup().location]",
"properties": {
"name": "[concat(parameters('clusterName'), '-', parameters('nodeType2Name'))]",
"targetResourceUri": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'), '/nodetypes/', parameters('nodeType2Name'))]",
"enabled": "[parameters('enableAutoScale')]",
"profiles": [
{
"name": "Autoscale by percentage based on CPU usage",
"capacity": {
"minimum": "3",
"maximum": "20",
"default": "3"
},
"rules": [
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricNamespace": "",
"metricResourceUri": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/SFC_', reference(resourceId('Microsoft.ServiceFabric/managedClusters', parameters('clusterName')), '2022-01-01').clusterId,'/providers/Microsoft.Compute/virtualMachineScaleSets/',parameters('nodeType2Name'))]",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT30M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 70
},
"scaleAction": {
"direction": "Increase",
"type": "ChangeCount",
"value": "5",
"cooldown": "PT5M"
}
},
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricNamespace": "",
"metricResourceUri": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/SFC_', reference(resourceId('Microsoft.ServiceFabric/managedClusters', parameters('clusterName')), '2022-01-01').clusterId,'/providers/Microsoft.Compute/virtualMachineScaleSets/',parameters('nodeType2Name'))]",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT30M",
"timeAggregation": "Average",
"operator": "LessThan",
"threshold": 40
},
"scaleAction": {
"direction": "Decrease",
"type": "ChangeCount",
"value": "1",
"cooldown": "PT5M"
}
}
]
}
]
}
}
]
U kunt deze ARM-sjabloon downloaden om automatisch schalen in te schakelen . Dit voorbeeld bevat het bovenstaande voorbeeld
Geconfigureerde definities van automatische schaalaanpassing van uw beheerde clusterresource weergeven
U kunt geconfigureerde instellingen voor automatisch schalen weergeven met behulp van Azure Resource Explorer.
Ga naar Azure Resource Explorer
Navigeer naar
subscriptions
->SubscriptionName
->resource group
->microsoft.insights
->autoscalesettings
- Naam> van beleid voor automatisch schalen: bijvoorbeeld .sfmc01-NT2
U ziet iets dat er ongeveer als volgt uitziet in de navigatiestructuur:
Aan de rechterkant ziet u de volledige definitie van deze instelling voor automatisch schalen.
In dit voorbeeld wordt automatisch schalen geconfigureerd met een regel voor uitschalen en inschalen op basis van CPU%.
Problemen oplossen
Houd rekening met het volgende:
Gebeurtenissen voor automatisch schalen controleren die worden geactiveerd voor secundaire knooppunttypen van beheerde clusters
- Ga naar het activiteitenlogboek van het cluster
- Bekijk het activiteitenlogboek voor de voltooide bewerking Automatisch omhoog/omlaag schalen
Hoeveel VM's zijn geconfigureerd voor het knooppunttype en vindt de workload plaats op alle vm's of op slechts enkele vm's?
Zijn de drempelwaarden voor in- en uitschalen voldoende verschillend?
Stel dat u een regel instelt om uit te schalen wanneer het gemiddelde CPU in vijf minuten groter is dan 50%, en om in te schalen wanneer het gemiddelde CPU lager is dan 50%. Deze instelling veroorzaakt een 'flapping'-probleem wanneer het CPU-gebruik dicht bij de drempelwaarde ligt, waarbij schaalacties voortdurend toenemen en de grootte van de set verkleinen. Vanwege deze instelling probeert de service voor automatisch schalen 'flapping' te voorkomen, waardoor kan worden gemanifesteerd als niet schalen. Zorg er daarom voor dat de drempelwaarden voor uitschalen en inschalen voldoende verschillen om ruimte tussen het schalen toe te staan.
Kunt u een knooppunttype in- of uitschalen? Pas het aantal knooppunten op het niveau van het knooppunttype aan en zorg ervoor dat dit is voltooid. Een knooppunttype schalen in een beheerd cluster
Controleer uw Microsoft.ServiceFabric/managedclusters/nodetypes en Microsoft.Insights-resources in Azure Resource Explorer
Azure Resource Explorer is een onmisbaar hulpprogramma voor probleemoplossing waarmee u de status van uw Azure Resource Manager-resources kunt zien. Klik op uw abonnement en bekijk de resourcegroep die u wilt oplossen. Zoek onder de
ServiceFabric/managedclusters/clustername
resourceprovider naarNodeTypes
knooppunttypen die u hebt gemaakt en controleer de eigenschappen om te valideren ofprovisioningState
isSucceeded
. Ga vervolgens naar de resourceprovider Microsoft.Insights onderclustername
en controleer of de regels voor automatisch schalen er goed uitzien.Zijn de verzonden metrische waarden zoals verwacht?
Get-AzMetric
De PowerShell-module gebruiken om de metrische waarden van een resource op te halen en te controleren
Als u deze stappen hebt doorlopen en nog steeds problemen ondervindt met automatisch schalen, kunt u de volgende resources proberen: Een ondersteuningsaanvraag indienen. Wees voorbereid op het delen van de sjabloon en een weergave van uw prestatiegegevens.