【发布时间】:2021-08-05 06:55:54
【问题描述】:
我使用 terraform 创建了多个节点,然后使用 ansible 将这些节点部署为一个集群。
resource "google_compute_instance" "cluster"
count = 6
machine_type = "e2.micro"
...
}
现在假设其中一个节点有一些问题,例如硬件问题,所以我必须销毁它并启动另一个节点,然后使用 Ansible 部署它。
如何销毁它,然后使用相同的 Terraform 代码启动一个新的?使用上面的 Terraform,我只知道如何通过将计数更改为 7 来添加新节点。
此外,有什么方法可以更改上述节点之一的实例类型?用例有时是其中一个节点内存不足所以我想增加这个节点的实例类型(可能是临时的)
【问题讨论】:
-
为什么不使用期望计数为 6 的自动缩放组?
-
嗨,Marcin:它实际上不是 aws ec2 而是 gcp 实例。我已经换了帖子。我知道 gcp 也有自动缩放功能。我的问题是如何删除一个特定的实例,比如 6 个节点的第三个实例,然后创建一个新的第三个实例?
-
gcp 还 has 自动缩放。但是通过自动缩放,您不能只更改单个实例。您可以通过基于负载添加/删除实例来横向扩展。
-
在我的例子中,6 个节点意味着 3 组节点。每组是一个主节点,它的副本(从节点)和每组节点存储一部分数据(分区)。如果主节点由于硬件问题而失败,它的从节点将升级为主节点,因此它的数据不会丢失,但我确实需要销毁这个有问题的节点并启动一个新节点。我认为自动缩放不会起作用,因为我猜自动缩放不会存储数据。
标签: terraform