3

我创建了一个基于模板的部署,它过度配置了许多 Linux VM。我想根据经典实例自动缩放它们,Azure 将根据 CPU 负载打开/关闭实例。

ARM模式可以吗?如果没有,是否有建议的替代方法?我能找到的唯一示例是使用 Application Insights 和 PaaS 功能。我有一个 Python 应用程序在 Ubuntu 主机上的 Docker 中运行。

4

2 回答 2

1

对于 IaaS,您必须使用虚拟机规模集才能使用自动缩放,否则您需要坚持使用 PaaS(Web 应用程序)。

于 2016-04-05T13:19:24.757 回答
0

为此,您首先需要为 VM 创建一个可用性组。ARM 模板中的资源声明如下所示:

{
 "type": "Microsoft.Compute/availabilitySets",
  "name": "[variables('availabilitySetName')]",
  "apiVersion": "2015-05-01-preview",
  "location": "[parameters('location')]",
  "properties": {
       "platformFaultDomainCount": "2"
   }
}

然后对于虚拟机资源,ARM 模板中的 decliration 将如下所示:

    {
            "apiVersion": "2015-05-01-preview",
            "type": "Microsoft.Compute/virtualMachines",
            "name": "[concat(variables('vmName'), '0')]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[concat('Microsoft.Storage/storageAccounts/', parameters('newStorageAccountName'))]",
                "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'), '0')]",
                "[concat('Microsoft.Compute/availabilitySets/', variables('availabilitySetName'))]"
            ],
            "properties": {
                "availabilitySet": {
                    "id": "[resourceId('Microsoft.Compute/availabilitySets', variables('availabilitySetName'))]"
                }, 
      ...},

快速入门模板是一个很好的参考: https ://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-2-vms-2-FDs-no-resource-loops/azuredeploy.json

在可用性集中拥有两个或多个相同大小的 VM 后,您将使用 microsoft.insights/autoscalesettings 配置自动缩放,我相信您在问题中引用了它。这是在云服务上完成的,因此它的工作方式与 PaaS 类似......就像这样:

{
      "apiVersion": "2014-04-01",
      "name": "[concat(variables('vmName'), '-', resourceGroup().name)]",
      "type": "microsoft.insights/autoscalesettings",
      "location": "East US",
      ...},

一个很好的例子在这里:https ://raw.githubusercontent.com/Azure/azure-quickstart-templates/6abc9f320e39d9d75dffb60846e88ab80d3ff33a/201-web-app-sql-database/azuredeploy.json

我还首先使用门户设置了自动缩放,并查看了 ARMExplorer,以便更好地了解代码中的内容。ARMExplorer 在这里:Azure 资源浏览器

于 2015-07-21T19:58:02.237 回答