Azure Scale设置ARM模板重新部署重置节点计数

pkwftd7m  于 2022-11-30  发布在  其他
关注(0)|答案(2)|浏览(110)

我正在尝试在Azure中为我的ARM模板设置一个连续的交付管道。该模板包含一个规模集的资源定义,其中配置了一些初始数量的示例和自动缩放规则。
类似配置的示例:https://github.com/Azure/azure-quickstart-templates/tree/master/201-vmss-windows-autoscale
我面临的问题是,每次进行模板部署时,规模集中的节点数都会重置为模板中指定的值。
示例:在比例集资源定义中,有下列值:

"sku": {
         "name": "[parameters('vmSku')]",
         "tier": "Standard",
         "capacity": "3"
       }

在自动缩放设置中,有以下值:

"capacity": {
              "minimum": "2",
              "maximum": "5",
              "default": "4"
            }

加上一些基本的CPU限制规则来进行扩展和扩展。
假设在负载较重的情况下,自动扩展机制会将节点数增加到最大值5。如果此时我重新部署用于创建集群的相同ARM模板,节点数会立即重置回3,两个节点进入删除状态,系统需要再次进行扩展,这对我来说毫无意义。
是否有办法禁用此行为,或者我是否需要维护两个ARM模板,一个用于初始化,另一个用于更新,以便在我的CD管道中使用?最佳做法是什么?

nlejzf6q

nlejzf6q1#

不,没有办法禁用这个行为。这是通过设计。我不认为有任何可行的解决方案,而不使用脚本来获取现有的节点计数,并把它作为一个资源放入arm模板,也许使用reference()函数来拉相同的值可能工作,但你需要一个嵌套的模板

5f0d552i

5f0d552i2#

如果在容量中传递空值,则不会影响现有节点计数。您可以设置参数或变量标志以允许/限制缩放。

"autoScale": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Must be set to true to change node SKU ."
      }

在SKU中:
放置if条件,如果不想更改节点计数,则传递null,否则传递节点的值。
示例:

"capacity":  "[if(parameters('autoScale'), parameters('defaultCapacity'), json('null'))]",

相关问题