Share via


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.

  1. Resourcegroep maken in een regio

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. 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
    
  3. 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.

  1. Ga naar Azure Resource Explorer

  2. Ga naar subscriptions - ->>resource groupSubscriptionName ->microsoft.insights ->autoscalesettings Naam> van beleid voor automatische schaalaanpassing: bijvoorbeeld. sfmc01-NT2

    U ziet iets vergelijkbaars in de navigatiestructuur:

    Voorbeeldstructuurweergave van Azure Resource Explorer

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

    Details van automatische schaalaanpassing van azure Resource Explorer-voorbeeldknooppunttypen

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

    1. Ga naar het activiteitenlogboek van het cluster
    2. 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 naar NodeTypes knooppunttypen die u hebt gemaakt en controleer de eigenschappen die u wilt valideren provisioningState Succeeded. Ga vervolgens naar de resourceprovider Microsoft.Insights en clustername 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.

Volgende stappen