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
ésNT2
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.
Erőforráscsoport létrehozása egy régióban
Login-AzAccount Select-AzSubscription -SubscriptionId $subscriptionid New-AzResourceGroup -Name $myresourcegroup -Location $location
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
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.
Nyissa meg az Azure Resource Explorert
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:
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.
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
- Ugrás a fürt tevékenységnaplójára
- 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 aServiceFabric/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ületreclustername
, é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.