Inleiding tot automatisch schalen op beheerde Service Fabric-clusters
Automatisch schalen biedt geweldige elasticiteit en maakt toevoeging of vermindering van knooppunten op aanvraag mogelijk op een secundair knooppunttype. Dit geautomatiseerde en elastische gedrag vermindert de beheeroverhead en potentiële bedrijfsimpact door het aantal knooppunten te bewaken en te optimaliseren dat uw workload onderhoudt. U configureert regels voor uw workload en laat automatisch schalen de rest afhandelen. Wanneer aan deze gedefinieerde drempelwaarden wordt voldaan, nemen regels voor automatisch schalen actie om de capaciteit van uw knooppunttype aan te passen. Automatische schaalaanpassing 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 automatische schaalaanpassing.
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
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, is dit. de VIRTUELE machine wordt geconfigureerd voor geneste virtualisatie. De metrische gegevens over beschikbaar geheugen zijn niet beschikbaar, omdat het dynamische geheugenstuurprogramma binnen de VIRTUELE machine de status Gestopt heeft.
Een veelvoorkomend scenario waarbij automatisch schalen nuttig is, is wanneer de belasting van een bepaalde service na verloop van 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 en we gebruiken ze verderop in het artikel:
- Als alle exemplaren van mijn gateway gemiddeld meer dan 70% gebruiken, schaalt u de gatewayservice uit door nog twee exemplaren toe te voegen. Doe dit elke 30 minuten, maar heb nooit meer dan twintig exemplaren in totaal.
- 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 in totaal niet meer dan drie exemplaren.
Voorbeeld van implementatie van automatische schaalaanpassing
In dit voorbeeld wordt het volgende uitgelegd:
- Een standaard SKU Service Fabric-beheerd cluster maken met twee knooppunttypen en
NT1
NT2
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 CPU-host voor beheerde cluster-VMSS. VMSS-resource wordt automatisch opgelost in de sjabloon.
Hier volgt stapsgewijze instructies voor het instellen van een cluster met automatisch schalen 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 beheerd SKU Service Fabric-cluster met standard-SKU: 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 automatisch schalen 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 clusterresourceimplementaties de vmInstanceCount
eigenschap -1
instellen op secundaire knooppunttypen waarvoor regels voor automatische schaalaanpassing zijn ingeschakeld. Dit zorgt ervoor dat clusterimplementaties niet conflicteren met automatische schaalaanpassing.
Automatisch schalen op een secundair knooppunttype in- of uitschakelen
Knooppunttypen die door het beheerde Service Fabric-cluster zijn geïmplementeerd, schakelen automatisch schalen niet standaard in. Automatisch schalen kan op elk gewenst moment worden ingeschakeld of uitgeschakeld, per knooppunttype, die zijn geconfigureerd en beschikbaar zijn.
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 installatie van 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 . Beleidsregels voor automatisch schalen moeten worden geconfigureerd voor eventuele schaalacties die op de onderliggende resources moeten worden uitgevoerd.
In het volgende voorbeeld wordt een beleid ingesteld voor nodeType2Name
ten minste 3 knooppunten, maar kan maximaal 20 knooppunten worden geschaald. Hiermee wordt omhoog schalen geactiveerd wanneer het gemiddelde CPU-gebruik gedurende de afgelopen 30 minuten 70% is met granulariteit van 1 minuut. Het activeert omlaag schalen zodra het gemiddelde CPU-gebruik minder dan 40% is voor de afgelopen 30 minuten met 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 automatische schaalaanpassing in te schakelen die het bovenstaande voorbeeld bevat
Geconfigureerde definities van automatische schaalaanpassing van uw beheerde clusterresource weergeven
U kunt geconfigureerde instellingen voor automatische schaalaanpassing weergeven met behulp van Azure Resource Explorer.
Ga naar Azure Resource Explorer
Ga naar
subscriptions
- ->>resource group
SubscriptionName
->microsoft.insights
->autoscalesettings
Naam> van beleid voor automatische schaalaanpassing: bijvoorbeeld.sfmc01-NT2
U ziet iets vergelijkbaars in de navigatiestructuur:
Aan de rechterkant kunt u de volledige definitie van deze instelling voor automatische schaalaanpassing bekijken.
In dit voorbeeld wordt automatische schaalaanpassing geconfigureerd met een op CPU% gebaseerde uit- en inschaalregel.
Probleemoplossing
Een aantal punten die u daarbij in overweging moet nemen:
Gebeurtenissen voor automatische schaalaanpassing controleren die worden geactiveerd voor secundaire knooppunttypen van beheerde clusters
- Ga naar het activiteitenlogboek van het cluster
- Activiteitenlogboek voor voltooide bewerking voor automatisch schalen omhoog/omlaag schalen
Hoeveel VM's zijn geconfigureerd voor het knooppunttype en vindt de werkbelasting plaats op al deze of slechts enkele vm's?
Zijn uw drempelwaarden voor in- en uitschalen voldoende verschillend?
Stel dat u een regel instelt om uit te schalen wanneer de gemiddelde CPU groter is dan 50% gedurende vijf minuten en om in te schalen wanneer de gemiddelde CPU kleiner 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 verlagen. Vanwege deze instelling probeert de service voor automatisch schalen te voorkomen dat 'flapping' wordt uitgevoerd, waardoor het niet kan worden geschaald. Zorg er daarom voor dat de drempelwaarden voor uitschalen en inschalen voldoende verschillen om ruimte tussen schalen mogelijk te maken.
Kunt u een knooppunttype in- of uitschalen? Pas het aantal knooppunten op het niveau van het knooppunttype aan en zorg ervoor dat deze 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 die u wilt validerenprovisioningState
Succeeded
. Ga vervolgens naar de resourceprovider Microsoft.Insights enclustername
controleer of de regels voor automatisch schalen er goed uitzien.Zijn uw verzonden metrische waarden zoals verwacht? Gebruik de
Get-AzMetric
PowerShell-module om de metrische waarden van een resource op te halen en te controleren
Zodra u deze stappen hebt doorlopen, kunt u de volgende resources proberen als u nog steeds problemen ondervindt met automatisch schalen: Een ondersteuningsaanvraag registreren. Wees voorbereid om de sjabloon en een weergave van uw prestatiegegevens te delen.