2

我们使用 terraform 来管理我们的 AWS 资源,并拥有将服务从一个负载均衡器更改为两个负载均衡器的代码。

但是,terraform 希望在重新创建服务之前将其销毁。AWS cli 文档指出了原因 - API 只能在服务创建期间修改 LB,而不能在更新时修改。

看来我们需要一个蓝/绿部署,一个 LB 和两个 LB 服务同时存在于同一个集群上。我希望我们需要在此更改之前创建多个任务集和其余的蓝/绿方法(无论如何我们都计划这样做,只是现在没有)

有没有人有这个场景的一个很好的例子,或者知道除了完全蓝/绿部署之外的任何其他方法?

4

1 回答 1

1

唉,在更新期间无法更改 LB 的数量。服务必须被销毁并重新创建。

理想情况下,使用多个 ECS 集群和一组 LB 进行蓝绿色部署。然后集群 A 可以拥有旧服务,集群 B 拥有新服务,当我们从蓝色变为绿色时,允许流量从 A 移动到 B。

我们还没有到那里,但计划很快。所以,现在,我们将使用经典的停车场切换方法:

在此示例中,需要从 1 LB 变为 2 LB 的服务称为 target_service

  1. 克隆 target_service 成为 target_service2
  2. 部署可以与 target_service 或 target_service2 对话的微服务
  3. 验证 target_service 和 target_service2 是否都在处理传入的数据和请求
  4. 修改 target_service infra-as-code 从 1 到 2 LB
  5. 部署修改后的target_service(terraform部署工具将销毁target_service,留下target_service2以弥补差距,然后部署2个LB的target_service
  6. 验证具有 2 个 LBS 的 target_service 是否正常工作并处理请求
  7. 销毁并删除 target_service2,因为它不再需要

所以,这是一个像部署一样的蓝绿色,虽然不那么优雅。

于 2020-10-08T16:13:33.157 回答