Bevezetés a Service Fabric által felügyelt fürtök automatikus skálázásába

Az automatikus skálázás nagy rugalmasságot biztosít, és lehetővé teszi a csomópontok igény szerinti hozzáadását vagy csökkentését egy másodlagos csomóponttípuson. Ez az automatizált és rugalmas viselkedés csökkenti a felügyeleti terhelést és az esetleges üzleti hatást a számítási feladatokat kiszolgáló csomópontok számának monitorozásával és optimalizálásával. Szabályokat konfigurálhat a számítási feladathoz, és lehetővé teszi, hogy az automatikus skálázás kezelje a többit. Ha a megadott küszöbértékek teljesülnek, az automatikus skálázási szabályok lépéseket hajtanak végre a csomóponttípus kapacitásának módosításához. Az automatikus skálázás bármikor engedélyezhető, letiltható vagy konfigurálható. Ez a cikk egy példát mutat be az üzembe helyezésre, az automatikus skálázás engedélyezésére és letiltására, valamint egy példa automatikus skálázási szabályzat konfigurálására.

Követelmények és támogatott metrikák:

  • A Service Fabric által felügyelt fürt erőforrásának apiVersion értéke 2022-01-01 vagy újabb lehet.
  • A fürt termékváltozatának Standardnak kell lennie.
  • Csak a fürt egy másodlagos csomóponttípusán konfigurálható.
  • Miután engedélyezte az automatikus skálázást egy csomóponttípushoz, konfigurálja vmInstanceCount a -1 tulajdonságot az erőforrás újbóli üzembe helyezésekor.
  • Csak az Azure Monitor által közzétett metrikák támogatottak.

Megjegyzés

Ha windowsos operációsrendszer-lemezképet használ, amelyen engedélyezve van a Hyper-V szerepkör, azaz. a virtuális gép beágyazott virtualizálásra lesz konfigurálva, a Rendelkezésre álló memória metrika nem lesz elérhető, mivel a virtuális gépen belüli dinamikus memóriaillesztő leállított állapotban lesz.

Gyakran előfordul, hogy az automatikus skálázás hasznos, ha egy adott szolgáltatás terhelése idővel változik. Például egy szolgáltatás, például egy átjáró méretezhető a bejövő kérések kezeléséhez szükséges erőforrások mennyisége alapján. Vessünk egy példát arra, hogy ezek a skálázási szabályok hogyan nézhetnek ki, és a cikk későbbi részében ezeket fogjuk használni:

  • Ha az átjáró összes példánya átlagosan több mint 70%-ot használ, akkor skálázza fel az átjárószolgáltatást két további példány hozzáadásával. Ezt 30 percenként végezze el, de soha ne legyen összesen húsznál több példány.
  • Ha az átjáró összes példánya átlagosan kevesebb mint 40%-os magot használ, akkor skálázza fel a szolgáltatást egy példány eltávolításával. Ezt 30 percenként végezze el, de soha ne legyen összesen háromnál kevesebb példány.

Példa az automatikus skálázás üzembe helyezésére

Ez a példa végigvezeti a következőt:

  • Standard termékváltozatú Service Fabric által felügyelt fürt létrehozása két csomóponttípussal, NT1 és NT2 alapértelmezés szerint.
  • Automatikus skálázási szabályok hozzáadása a másodlagos csomóponttípushoz: NT2.

Megjegyzés

A csomóponttípus automatikus skálázása a felügyelt fürt VMSS CPU-gazdametrikái alapján történik. A VMSS-erőforrás automatikusan feloldva van a sablonban.

Az alábbiak lépésről lépésre végigvezetik egy automatikus skálázási konfigurálással rendelkező fürt beállításán.

  1. Erőforráscsoport létrehozása egy régióban

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. Fürterőforrás létrehozása

    Töltse le ezt a standard termékváltozatú Service Fabric által felügyelt fürtmintát A fürterőforrás üzembe helyezéséhez hajtsa végre ezt a parancsot:

    $parameters = @{ 
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    } 
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. Automatikus skálázási szabályok konfigurálása és engedélyezése másodlagos csomóponttípuson

    Töltse le a felügyelt fürt automatikus skálázási mintasablont , amellyel az automatikus skálázást az alábbi parancsokkal konfigurálhatja:

    $parameters = @{ 
    clusterName = $clusterName
    }
    New-AzResourceGroupDeployment -Name "deploy_autoscale" -ResourceGroupName $resourceGroupName -TemplateFile .\sfmc-deploy-autoscale.json -TemplateParameterObject $parameters -Verbose 
    

Megjegyzés

Az üzembe helyezés befejezése után a jövőbeli fürterőforrás-telepítéseknek olyan másodlagos csomóponttípusokra -1 kell beállítaniuk a tulajdonságot, amelyeken engedélyezve vannak az vmInstanceCount automatikus skálázási szabályok. Ez biztosítja, hogy a fürttelepítések ne ütköznek az automatikus skálázással.

Automatikus skálázás engedélyezése vagy letiltása másodlagos csomóponttípuson

A Service Fabric által felügyelt fürt által üzembe helyezett csomóponttípusok alapértelmezés szerint nem engedélyezik az automatikus skálázást. Az automatikus skálázás a konfigurált és elérhető csomóponttípusonként bármikor engedélyezhető vagy letiltható.

A funkció engedélyezéséhez konfigurálja a enabled tulajdonságot egy ARM-sablon típusában Microsoft.Insights/autoscaleSettings az alábbi módon:

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

Az automatikus skálázás letiltásához állítsa az értéket a következő értékre: false

Automatikus skálázási szabályok törlése

A csomóponttípushoz beállított automatikus skálázási szabályzatok törléséhez futtassa a következő PowerShell-parancsot.

Remove-AzResource -ResourceId "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/microsoft.insights/autoscalesettings/$name" -Force

Szabályzatok beállítása automatikus skálázáshoz

A Service Fabric által felügyelt fürtök alapértelmezés szerint nem konfigurálnak automatikus skálázási szabályzatokat . Az automatikus skálázási szabályzatokat konfigurálni kell ahhoz, hogy a skálázási műveletek a mögöttes erőforrásokon történjenek.

Az alábbi példa egy szabályzatot állít be legalább 3 csomópontra nodeType2Name , de legfeljebb 20 csomópont skálázását teszi lehetővé. A skálázás akkor aktiválódik, ha az átlagos processzorhasználat 70%-os az elmúlt 30 percben 1 perces részletességgel. A skálázást akkor váltja ki, ha az átlagos processzorhasználat 40% alatt van az elmúlt 30 percben, 1 perces részletességgel.

    "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"
                                }
                            }
                            ]
                    }
                    ]
                }
            }
        
    ]                           

Letöltheti ezt az ARM-sablont az automatikus skálázás engedélyezéséhez , amely a fenti példát tartalmazza

Felügyelt fürterőforrás konfigurált automatikus skálázási definícióinak megtekintése

A konfigurált automatikus skálázási beállításokat az Azure Resource Explorer használatával tekintheti meg.

  1. Nyissa meg az Azure Resource Explorert

  2. Keresse meg a subscriptions következőt: ->SubscriptionName -microsoft.insights>resource group> - -autoscalesettings> - Automatikus> skálázási szabályzat neve: pl. . sfmc01-NT2

    Ehhez hasonlót fog látni a navigációs fán:

    Példa az Azure Resource Explorer fanézetére

  3. A jobb oldalon megtekintheti ennek az automatikus skálázási beállításnak a teljes definícióját.

    Ebben a példában az automatikus skálázás cpu%-alapú vertikális felskálázási és vertikális felskálázási szabálysal van konfigurálva.

    Azure Resource Explorer példacsomóponttípus automatikus skálázási részletei

Hibaelhárítás

Néhány megfontolandó szempont:

  • A felügyelt fürtök másodlagos csomóponttípusai által aktivált automatikus skálázási események áttekintése

    1. Ugrás a fürt tevékenységnaplójára
    2. A tevékenységnapló áttekintése az automatikus skálázási fel-le skálázás befejezett műveletéhez
  • Hány virtuális gép van konfigurálva a csomóponttípushoz, és a számítási feladat mindegyiken vagy csak néhányon fordul elő?

  • Elég eltérőek a vertikális felskálázási és vertikális felskálázási küszöbértékek?

    Tegyük fel, hogy olyan szabályt állított be, amely 50%-nál nagyobb 50%-nál nagyobb processzorhasználat esetén 50%-nál nagyobb, és ha az átlagos processzorhasználat 50%-nál kisebb. Ez a beállítás "kiugró" problémát okozna, ha a cpu-használat megközelíti a küszöbértéket, és a méretezési műveletek folyamatosan növelik és csökkentik a készlet méretét. Emiatt az automatikus skálázási szolgáltatás megpróbálja megakadályozni a "kicsúszást", ami nem skálázásként nyilvánulhat meg. Ezért győződjön meg arról, hogy a horizontális felskálázási és horizontális felskálázási küszöbértékek elég eltérőek ahhoz, hogy a skálázás között némi térköz legyen.

  • Felskálázhat vagy ki tud méretezni egy csomóponttípust? Módosítsa a csomópontok számát a csomóponttípus szintjén, és győződjön meg arról, hogy sikeresen befejeződik. Csomóponttípus skálázása felügyelt fürtön

  • Ellenőrizze a Microsoft.ServiceFabric/managedclusters/nodetypes és a Microsoft.Insights-erőforrásokat az Azure Resource Explorerben

    Az Azure Resource Explorer egy nélkülözhetetlen hibaelhárítási eszköz, amely bemutatja az Azure Resource Manager-erőforrások állapotát. Kattintson az előfizetésére, és tekintse meg a hibaelhárításhoz használt erőforráscsoportot. Az erőforrás-szolgáltató alatt NodeTypes keresse meg a ServiceFabric/managedclusters/clustername létrehozott csomóponttípusokat, és ellenőrizze az érvényesítendő provisioningState tulajdonságokat.Succeeded Ezután lépjen a Microsoft.Insights erőforrás-szolgáltató területre clustername , és ellenőrizze, hogy az automatikus skálázási szabályok helyesen néznek-e ki.

  • A kibocsátott metrikaértékek a várt módon vannak? Egy erőforrás metrikaértékeinek lekérése és áttekintése a Get-AzMetric PowerShell-modul használatával

Miután elvégezte ezeket a lépéseket, ha továbbra is automatikus skálázási problémákat tapasztal, próbálkozzon a következő erőforrásokkal: Támogatási kérés naplózása. Készüljön fel a sablon megosztására és a teljesítményadatok megtekintésére.

Következő lépések