Удалить экземпляр из масштабного набора с помощью 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

Как мне это сделать с терраформом?


person usr1234    schedule 07.07.2020    source источник


Ответы (1)


При управлении масштабируемым набором виртуальных машин с помощью Terraform Terraform вообще не взаимодействует с отдельными экземплярами. Вместо этого он может изменить, обновить настройки масштабируемого набора, чтобы они соответствовали тому, что вы написали в конфигурации, а затем позволить масштабируемому набору должным образом реагировать на эту новую конфигурацию.

Например, если вы хотите иметь меньше экземпляров определенного SKU, вы можете изменить конфигурацию Terraform, установив меньшее значение для аргумента capacity для этого SKU, и запустить terraform apply. Если вы примете этот план, Terraform обновит масштабируемый набор, чтобы он имел меньшую емкость, а затем удаленная система масштабируемого набора решит, как на это отреагировать.

Чтобы удалить что-то, чем управляет Terraform, например, сам масштабный набор, мы должны удалить его из конфигурации и запустить terraform apply. Поскольку Terraform не управляет отдельными экземплярами в этом масштабном наборе, мы не можем указать Terraform удалить их напрямую. Если вам нужен такой контроль, вам нужно будет либо управлять виртуальными машинами напрямую с помощью Terraform (вообще не используя масштабный набор), либо использовать отдельный инструмент (за пределами Terraform) для взаимодействия с API, о котором вы упомянули.

person Martin Atkins    schedule 08.07.2020