我有一个应用程序,分为两部分:
第一个不是问题,做到了。 CodeDeploy 将通过在“蓝色负载均衡器目标组”上创建新服务来部署新版本,并开始在蓝/绿设置中将流量转移到这些服务。
但是,Sidekiq 没有端口,因此没有健康检查。这就是我现在遇到的问题,NLB 不验证容器的运行状况,因此它不断重新启动,并且部署最终超时,因为它无法获得干净的服务。
我不确定这是否是 ECS 限制或 CodeDeploy 限制(或“我的限制”:)),但似乎我 have 有一个负载均衡器可以实现这一点。
但是这听起来有些不对劲!我确信 AWS 一定考虑过“工作容器”,对吧?如何do 设置具有两个服务的 ECS 集群,每个服务都有一个任务 - 上面的两个部分。 以及 然后如何使用 CodeDeploy 部署到该服务/任务?或者您是否以其他方式部署 Sidekiq(在本例中)?
拥有两项服务,我可以单独扩展它们。
目前,我有一个 CodePipeline,触发 CodeBuild 来构建映像,将其推送到 ECR,然后触发 CodeDeploy 进行部署。当我有 one 服务并执行两项任务时,它最初可以工作,但随后两项任务都会同时扩展,这不是我最终想要的。