我正在尝试在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管道中使用?最佳做法是什么?
答案 0 :(得分:2)
不,没有办法禁用此行为。这是设计使然。我认为没有任何可行的解决方法,而无需使用脚本来获取现有节点数并将其作为资源放入arm模板中,也许使用reference()
函数来提取相同的值可能有效,但是您需要嵌套模板