使用 terraform 从规模集中删除实例

Delete instance from scaleset using terraform

我正在尝试使用 terraform 从我的规模集中删除特定实例。我知道有一个 REST API 用于此:

https://docs.microsoft.com/en-us/rest/api/compute/virtualmachinescalesets/deleteinstances

但是,azure tf 的页面并没有真正提到这一点。

https://www.terraform.io/docs/providers/azurerm/r/virtual_machine_scale_set.html

如何使用 terraform 执行此操作?

使用 Terraform 管理虚拟机规模集时,Terraform 根本不与各个实例交互。相反,它可以更改更新规模集的设置以匹配您在配置中编写的内容,然后让规模集本身适当地响应新配置。

例如,如果您希望拥有更少的特定 SKU 实例,那么您可以编辑 Terraform 配置,使该 SKU 的 capacity 参数和 运行 terraform apply。如果您接受该计划,Terraform 将更新规模集以降低容量,然后远程规模集系统将决定如何响应。

要删除 Terraform 正在管理的内容,例如规模集本身,我们会将其从配置中删除,然后 运行 terraform apply。因为 Terraform 不管理此规模集中的各个实例,所以我们无法告诉 Terraform 直接删除它们。如果您需要这种控制,那么您需要直接使用 Terraform 管理虚拟机(根本不使用规模集)或使用单独的工具(在 Terraform 之外)与 API 您交互提到。