[英]Migrating to ECS Fargate from EKS
我目前正在将 3 个应用程序从 Elastic Kube.netes Service (EKS) 迁移到 ECS Fargate。 每个应用程序都是用 Node JS 构建的。当前设置似乎只有一个应用程序前面有 1 个负载均衡器,其他两个应用程序通过该负载均衡器访问。 这是当前访问所有三个应用程序的方式:
first_app.example.com
first_app.example.com/second_app
first_app.example.com/third_app
每个应用程序的前端都由 EKS 中的 nginx 代理提供支持。 我不完全确定我是否需要 nginx 在 ECS Fargate 中,因为我计划使用的应用程序负载均衡器将集成一个 SSL 证书,用于从 HTTP 重定向到 HTTPS。我有点不清楚如何将这些应用程序迁移到 Fargate 的方法。 此外,第三个应用程序还有 3 个附加功能:
Apollo GraphQL(前后端之间的抽象层)
CSV
文件管理器
此功能也需要在 Fargate 端实现。
目前我已经设置了一个 ECS Fargate 集群、一个 ECS 服务和一个任务定义。 任务定义目前有以下 7 个 ECR 镜像:
app_one_front_end
app_two_front_end
app_three_front_end
app_three_csv_job
app_three_file_manager_job
app_three_graphql
nginx ??
所有这些图像都存储在 ECR 中。 但是我不相信我在这个 Fargate 集群中需要 nginx。
我有点不确定如何处理这组应用程序的体系结构。 看来我只能在一项服务上运行一个任务定义,这就是为什么所有容器都被实现到一个任务定义中的原因。 然后可以将该服务与应用程序负载平衡器相关联,我在其中设置基于路径的路由来访问每个应用程序。
任何有关如何处理此迁移的建议都将不胜感激。
谢谢!
每个 Kube.netes 副本集都应转换为 ECS 服务。 每个 Kube.netes Pod 都将转换为一个 ECS 任务。
如果您在 Kube.netes 中有多个副本集,为了独立扩展您的 pod,那么为了在 ECS 中具有相同的可扩展性,您可以将它们配置为具有独立扩展配置的单独服务。
您是正确的,因为您可能不需要 ECS 中的 Nginx 容器。
看来我只能在一项服务上运行一个任务定义,这就是为什么所有容器都被实现到一个任务定义中的原因。
服务可以相互通信。 您可以启用ECS 服务发现来促进这一点。 但是,如果它们不需要独立扩展,则将它们全部放在同一个任务/服务中是很好的。
此外,如果您需要,可以通过在负载均衡器中创建不同的侦听器规则将多个服务与单个应用程序负载均衡器相关联,即 map 到不同的目标组。 即使您只有一个 ECS 服务,您也可能需要多个目标组,因为您将需要 map 个不同的负载均衡器侦听器到任务中的不同容器。 这基本上允许 Application Load Balancer 执行 Nginx 在 Kube.netes 中所做的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.