为什么在负载平衡器服务上部署fargate比在自己的服务上部署fargate要花费更多的时间?



我正在用一些后端和前端docker容器制作一些基本架构。

我开始部署一个后端容器,用AWS Fargate定义了一个任务,并配置了自己的服务。部署的时间大约2分钟,但现在我有一个Network Load Balancer服务,目标组瞄准我的容器,部署大约需要6-10分钟,这是正常的吗?

这个部署时间并不困扰我,但是,当我研究这项技术时,它变得有点慢(例如针对kubernetes集群),我的计划是有一个更大的架构,包括后,前,db和自动缩放器,只是为了学习。

不共享您的配置(CloudFormation模板)很难确切地说出是什么导致了这个问题,但我可以指出一些可能导致更长时间部署的地方。

  • 可能将默认运行状况检查间隔设置为30秒。这意味着它等待30对TCP端口进行另一次检查。
    • 您可以将其减少到10加快运行状况检查
  • 可能将默认运行状况检查运行状况阈值设置为3。加上默认的检查间隔增加了90用于稳定容器并返回健康状态的几秒钟。
  • 部署单个容器并且没有跨区域启用负载均衡,并具有轮询路由算法。
    • 此设置可能无法通过健康检查,然后重新开始阈值计数,您需要3返回健康状态
  • 最后,Fargate因为没有图像缓存,所以拉取时间比EC2实例支持的ECS要长一点,所以也会增加部署时间。

正确配置以上所有内容后,您通常可以在网络负载平衡器目标组部署上恢复几分钟,但它们通常比应用程序负载平衡器慢一点部署。

如果你的应用不需要网络负载均衡器,建议使用应用负载均衡器。应用程序负载均衡器更深入,它不仅能够根据对特定页面的成功HTTP GET,而且能够根据输入参数验证内容是否符合预期,从而确定可用性。

最新更新