如何使用 ECS 和 EC2 实例集群实现零停机部署

时间:2021-03-26 20:28:20

标签: amazon-web-services docker amazon-ec2 containers amazon-ecs

我有一个带有默认容量提供程序的集群,其中包含一个“t2.small”。我也设置了 ALB。一切正常。但是当我尝试更新我的 TaskDefinition 时,默认行为应该是:

  • 使用该 NEW TaskDefinition 创建一个容器实例
  • 当 NEW 准备好时,将其注册到 ALB 并向其发送 HTTP 流量
  • ALB 开始使用 OLD TaskDefinition 排空容器实例的连接
  • 杀死 OLD 容器实例。

*** 我假设desiredCount:1,deploymentMinimumHealthyPercent:100,deploymentMaximumPercent:200。

但问题是我的实例类型只提供 3 个 ENI,当网络模式为 var popupContent = `<div id="divTrophy"> <img src="${trophy}"/> <button onClick="trophyCollection('${trophy}')">Collect trophy</button> <button onclick="closePopUp()">Close pop up</button> </div>` 时,我只能有 2 个容器实例。我将网络模式更改为 trophy 但现在它会发生冲突,因为在放置更新任务时,新容器实例与旧容器实例冲突,因为它们使用相同的端口。使用 Fargate 服务,我没有这个问题。我应该如何解决这个问题以实现零停机部署

0 个答案:

没有答案