我想讨论一下工程师在升级elasticsearch
集群时的最佳实践/方法。我相信这篇文章可以作为执行策略和步骤的一个很好的例子,以确保没有数据丢失,最短停机时间,可扩展性和elasticsearch
服务的可用性。
要启动该计划,我们可以将升级分为两个小节:
1)在master nodes
上执行升级:
由于主节点不包含任何数据并负责控制群集,所以我相信我们可以放心地使用terraform来添加所有已升级的主节点VM,然后删除旧的VM。
2)在data nodes
上执行升级:
许多人已经知道,更新数据节点的能力存在一定的限制。我们无法完全取消分配虚拟机并将其替换为另一虚拟机。我认为一个好的做法是:
a)停止向旧VM分配索引
b)然后执行terraform apply
以创建数据节点VM的新升级版本(并手动修改terraform state
以便不破坏旧VM)
c)允许到新VM的流量(索引创建),并使用elasticsearch
API将数据从旧VM传输到新VM
d)手动更改terraform state
使其删除旧的VM。
这些只是理想的步骤,我希望看到您的意见和策略,以通过 Terraform 执行安全的 elasticsearch 升级。