Amazon web services 在AWS ECS上进行蓝/绿部署时获得不正常响应

Amazon web services 在AWS ECS上进行蓝/绿部署时获得不正常响应,amazon-web-services,amazon-ecs,Amazon Web Services,Amazon Ecs,根据AWS文档,blue/green部署应在应用程序部署期间提供零停机时间。我在ECS Fargate上运行了一些服务。负载平衡器检查这些容器的健康状况。在部署过程中,有时会在ECS服务事件中看到这样的错误消息: service my-api deregistered 1 targets in target-group my-api f8c332f7-ac61-4791-9b08-6fe2ee4de792 2019-10-31 17:05:00 +1100 service my-api (por

根据AWS文档,
blue/green
部署应在应用程序部署期间提供零停机时间。我在ECS Fargate上运行了一些服务。负载平衡器检查这些容器的健康状况。在部署过程中,有时会在ECS服务事件中看到这样的错误消息:

service my-api deregistered 1 targets in target-group my-api
f8c332f7-ac61-4791-9b08-6fe2ee4de792
2019-10-31 17:05:00 +1100
service my-api (port 443) is unhealthy in target-group my-api due to (reason Request timed out).
a306dabc-3961-42ba-8a08-814934409c9d
2019-10-31 17:03:32 +1100
service my-api registered 1 targets in target-group my-api
4333368f-682b-461f-9a3b-f38609b32589
它说
服务我的api(端口443)不健康
。几秒钟后就会恢复。我想知道为什么它报告
不健康
。据我所知,只有在正常情况下才能进行部署。

根据AWS的说法,您可以在接近零停机时间的情况下更新和回滚功能,也就是说,在某些情况下,可以预期最小停机时间

但更具体地说,为了回答您的问题,如果我正确理解您的日志,您的目标似乎正在从您的目标组注销,这对应于在注册下一个目标之前未通过健康检查的目标组。(您的目标组配置当前是否包含1个目标?)

我建议如下配置蓝绿色部署。 使用ALB/NLB有两个独立的目标群体,每个群体服务于蓝色或绿色环境

一旦您想要更新您的服务,请确保您的ALB/NLB将适当的“生产”流量路由到蓝色和绿色目标群体

最后,调整ALB/NLB以将流量专门路由到绿色目标组,并将蓝色目标组作为备份,以防回滚

我建议咨询AWS,它利用Amazon Code*服务和AWS Lambda自动化大部分流程

或者,关于如何使用Spotinst Ocean部署蓝绿色部署