假设我在地形中定义了一个自动缩放组,最小值为2,最大值为10。比方说,我的ASG已经启动,自动缩放正在进行中,目前有6个实例。
现在我想更改我的ASG以添加另一个子网,还想更改max=4。我当前的6个实例不会受到影响吗?或者当我运行terraform apply时,terraform会将实例计数减少到4并添加新的子网。
发生什么取决于您的设置。现在,你刚刚写道你有min=2 and max=10
。desired_capacity
呢?
假设您从desired_capacity == min
开始的标准设置,当您的ASG处于6个实例(即由于自动缩放活动而导致的desired_capacity=6
(时,terraform apply
将终止四个实例,并将其带回desired_capacity=2
,因为这就是您的地形中的情况。如果将max
设置为4,也会发生类似的情况。
为了解决这个问题,你必须忽略TF:中desired_capacity
的更改
lifecycle {
ignore_changes = [ desired_capacity ]
}
我当前的6个实例不会受到影响吗?
否。两个将被终止。
当我运行terraform apply时,terraform会将实例数减少到4,并添加新的子网。
是。这是会发生的。但是,即使您不更改max
,也会发生这种情况,因为TF会将desired_capacity
设置为配置文件中的内容(除非明确忽略(。
除此之外,如果新子网在不同的AZ中,ASG可能会触发AZ重新平衡。ASG将尝试在AZ中平均分配您的实例。因此,在这个过程中,一些可以终止并在新的AZ中重新启动