Sdílet prostřednictvím


Automatické škálování pomocí metrik hosta v šabloně škálovací sady pro Linux

V Azure jsou dva široké typy metrik, které se shromažďují z virtuálních počítačů a škálovacích sad: metriky hostitele a metriky hosta. Pokud chcete použít standardní metriky procesoru, disku a sítě, jsou metriky hostitele na vysoké úrovni vhodné. Pokud ale potřebujete větší výběr metrik, měli byste se podívat na metriky hosta.

Metriky hostitele nevyžadují další nastavení, protože jsou shromažďovány hostitelským virtuálním počítačem, zatímco metriky hosta vyžadují, abyste na hostovaný virtuální počítač nainstalovali rozšíření Windows Azure Diagnostics nebo rozšíření Azure Diagnostics pro Linux. Jedním z běžných důvodů použití metrik hosta místo metrik hostitele je to, že metriky hosta poskytují větší výběr metrik než metriky hostitele. Jedním z takových příkladů jsou metriky využití paměti, které jsou dostupné pouze prostřednictvím metrik hosta. Tady jsou uvedené podporované metriky hostitele a tady jsou uvedené běžně používané metriky hosta. Tento článek ukazuje, jak upravit základní realizovatelnou šablonu škálovací sady tak, aby používala pravidla automatického škálování na základě metrik hosta pro škálovací sady Linuxu.

Změna definice šablony

V předchozím článku jsme vytvořili základní šablonu škálovací sady. Tuto dřívější šablonu teď použijeme a upravíme ji k vytvoření šablony, která nasadí škálovací sadu pro Linux s automatickým škálováním na základě metrik hosta.

Nejprve přidejte parametry pro storageAccountName a storageAccountSasToken. Agent diagnostiky ukládá data metrik do tabulky v tomto účtu úložiště. Od agenta diagnostiky Linuxu verze 3.0 se už použití přístupového klíče úložiště nepodporuje. Místo toho použijte token SAS.

     },
     "adminPassword": {
       "type": "securestring"
+    },
+    "storageAccountName": {
+      "type": "string"
+    },
+    "storageAccountSasToken": {
+      "type": "securestring"
     }
   },

Dále upravte škálovací sadu extensionProfile tak, aby zahrnovala rozšíření diagnostiky. V této konfiguraci zadejte ID prostředku škálovací sady, ze které se mají shromažďovat metriky, a také účet úložiště a token SAS, které se mají použít k uložení metrik. Určete, jak často se metriky agregují (v tomto případě každou minutu) a jaké metriky se mají sledovat (v tomto případě procento využité paměti). Podrobnější informace o této konfiguraci a metrikách jiných než procentech využité paměti najdete v této dokumentaci.

                 }
               }
             ]
+          },
+          "extensionProfile": {
+            "extensions": [
+              {
+                "name": "LinuxDiagnosticExtension",
+                "properties": {
+                  "publisher": "Microsoft.Azure.Diagnostics",
+                  "type": "LinuxDiagnostic",
+                  "typeHandlerVersion": "3.0",
+                  "settings": {
+                    "StorageAccount": "[parameters('storageAccountName')]",
+                    "ladCfg": {
+                      "diagnosticMonitorConfiguration": {
+                        "performanceCounters": {
+                          "sinks": "WADMetricJsonBlob",
+                          "performanceCounterConfiguration": [
+                            {
+                              "unit": "percent",
+                              "type": "builtin",
+                              "class": "memory",
+                              "counter": "percentUsedMemory",
+                              "counterSpecifier": "/builtin/memory/percentUsedMemory",
+                              "condition": "IsAggregate=TRUE"
+                            }
+                          ]
+                        },
+                        "metrics": {
+                          "metricAggregation": [
+                            {
+                              "scheduledTransferPeriod": "PT1M"
+                            }
+                          ],
+                          "resourceId": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]"
+                        }
+                      }
+                    }
+                  },
+                  "protectedSettings": {
+                    "storageAccountName": "[parameters('storageAccountName')]",
+                    "storageAccountSasToken": "[parameters('storageAccountSasToken')]",
+                    "sinksConfig": {
+                      "sink": [
+                        {
+                          "name": "WADMetricJsonBlob",
+                          "type": "JsonBlob"
+                        }
+                      ]
+                    }
+                  }
+                }
+              }
+            ]
           }
         }
       }

Nakonec přidejte prostředek pro konfiguraci automatického autoscaleSettings škálování na základě těchto metrik. Tento prostředek má dependsOn klauzuli, která odkazuje na škálovací sadu, aby před pokusem o automatické škálování byla zajištěna existence škálovací sady. Pokud zvolíte jinou metriku pro automatické škálování, použijete counterSpecifier konfiguraci diagnostického rozšíření jako metricName v konfiguraci automatického škálování. Další informace o konfiguraci automatického škálování najdete v osvědčených postupech automatického škálování a referenční dokumentaci k rozhraní REST API služby Azure Monitor.

+    },
+    {
+      "type": "Microsoft.Insights/autoscaleSettings",
+      "apiVersion": "2015-04-01",
+      "name": "guestMetricsAutoscale",
+      "location": "[resourceGroup().location]",
+      "dependsOn": [
+        "Microsoft.Compute/virtualMachineScaleSets/myScaleSet"
+      ],
+      "properties": {
+        "name": "guestMetricsAutoscale",
+        "targetResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]",
+        "enabled": true,
+        "profiles": [
+          {
+            "name": "Profile1",
+            "capacity": {
+              "minimum": "1",
+              "maximum": "10",
+              "default": "3"
+            },
+            "rules": [
+              {
+                "metricTrigger": {
+                  "metricName": "/builtin/memory/percentUsedMemory",
+                  "metricNamespace": "",
+                  "metricResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]",
+                  "timeGrain": "PT1M",
+                  "statistic": "Average",
+                  "timeWindow": "PT5M",
+                  "timeAggregation": "Average",
+                  "operator": "GreaterThan",
+                  "threshold": 60
+                },
+                "scaleAction": {
+                  "direction": "Increase",
+                  "type": "ChangeCount",
+                  "value": "1",
+                  "cooldown": "PT1M"
+                }
+              },
+              {
+                "metricTrigger": {
+                  "metricName": "/builtin/memory/percentUsedMemory",
+                  "metricNamespace": "",
+                  "metricResourceUri": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', 'myScaleSet')]",
+                  "timeGrain": "PT1M",
+                  "statistic": "Average",
+                  "timeWindow": "PT5M",
+                  "timeAggregation": "Average",
+                  "operator": "LessThan",
+                  "threshold": 30
+                },
+                "scaleAction": {
+                  "direction": "Decrease",
+                  "type": "ChangeCount",
+                  "value": "1",
+                  "cooldown": "PT1M"
+                }
+              }
+            ]
+          }
+        ]
+      }
     }
   ]
 }

Další kroky

Můžete nasadit předchozí šablonu postupem podle dokumentace k Azure Resource Manageru.

Tuto sérii kurzů můžete spustit v článku se základní šablonou škálovací sady.

Můžete se podívat, jak upravit šablonu základní škálovací sady tak, aby nasadil škálovací sadu do existující virtuální sítě.

Můžete se podívat, jak upravit šablonu základní škálovací sady tak, aby nasadil škálovací sadu s vlastní imagí.

Můžete se podívat, jak upravit šablonu základní škálovací sady tak, aby nasadil škálovací sadu pro Linux s automatickým škálováním založeným na hostech.

Další informace o škálovacích sadách najdete na stránce přehledu škálovací sady.