我正在尝试在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管道中使用?最佳做法是什么?
2条答案
按热度按时间nlejzf6q1#
不,没有办法禁用这个行为。这是通过设计。我不认为有任何可行的解决方案,而不使用脚本来获取现有的节点计数,并把它作为一个资源放入arm模板,也许使用
reference()
函数来拉相同的值可能工作,但你需要一个嵌套的模板5f0d552i2#
如果在容量中传递空值,则不会影响现有节点计数。您可以设置参数或变量标志以允许/限制缩放。
在SKU中:
放置if条件,如果不想更改节点计数,则传递null,否则传递节点的值。
示例: