平台:在EKS / ECS上部署Docker Compose应用程序

问题描述 投票:5回答:1

TL; DR

我使用开源服务器应用程序在Docker Compose上运行。它具有一些服务,包括PostgreSQL DB和Redis。

我如何最好地使用Terraform在完全IaC中将此应用程序部署到AWS?

到目前为止的解决方案

1。 AWS ecs-cli

[ecs-cli现在ecs-cli在Amazon ECS中发送supports配置。

但是,我不认为它可以与Terraform工作流程集成(这可能不是一个大问题)。我可以确定的是,根据docker composeecs-cli是否CloudFormation中不受支持

仍在此时打开。因此,我认为也不能轻易将其添加到Terraform。

2。硬EKS方式
  • 将您的this issue文件转换为docker-compose.yml YAML。

  • ((每次软件包升级时都准备这样做。)>
  • 使用Terraform的+ EKS API进行部署(最小kubectl)。
  • 但这还不是完全的IaC。而且,每次docker-compose在源存储库中发生更改时,您都必须重新转换您的配置。这听起来像是很多工作。

    3。使用舵图
    • 为应用程序编写Helm图表。
    • 运行Terraform以启动集群。

  • 仍然使用example helm来运行Terraform以在群集上安装带有Helm的应用程序。
  • 4。 [不正常] k8s Kompose

    [我读过provider可以将Docker Compose配置自动转换为k8s配置,但是它们似乎并没有移植到AWS上,更不用说Terraform了。

    5。 [不正常]肮脏的AMI解决方案

    • 使用Packer构建自定义EC2 AMI。
    • 使用Terraform,设置数据库,Redis和所有权限/网络/等等。>
    • 使用定制的AMI启动EC2实例。
    • AMI包含(定制的)应用程序代码,尤其是Kompose。还有Docker映像。
    • AMI启动了Docker Compose docker-compose.yml服务。
    • 那会很受伤:构建时间长,监控困难,无法扩展。

      旁注
      • 我提到我需要完整IaC
      。我的意思是:
      1. systemctl上的书面配置(仅适用于它)告诉您部署了什么。
      2. 部署将完成,而我的团队无需运行任何其他命令。它基本上可以在CI / CD或单推'n'go上工作。

    • 可以在IaC中轻松配置监视和警报。
    • 我希望将某些服务替换为AWS组件(即,RDS替换为PostgreSQL服务,而ElastiCache替换为Redis服务)。
    • 应用程序happens为master。但是我也想知道什么是解决Docker Compose问题的最佳通用方法。
    • TL; DR我使用在Docker Compose上运行的开源服务器应用程序。它具有一些服务,包括PostgreSQL DB和Redis。我该如何最好地通过...

    1。观望]]

    谁知道,Apache Superset可能与CloudFormation和/或Terraform更好地集成。

    2。使用头盔图表

    如问题中所述。可能是最好的解决方案,尽管需要(很少)努力来参数化Helm。

    另请参见:ecs-cli-v2

    3。 Docker Swarm + CloudFormation + Terraform

    [Docker Swarm现在ecs-cli-v2来自Getting started with Helm文件的输入。可以找到并配置模板accepts。配置完成后,可以将其集成到Terraform基础架构中。

    此(3岁)docker-compose.yml解释了如何在AWS上使用Docker Swarm模式。

    要启动容器,如有必要(未经充分调查,欢迎提供反馈),可以使用Terraform的here。这样,您可以SSH进入主节点并运行tutorial和其他类似命令,同时仍然以IaC样式写下所有内容。

    docker-compose kubernetes-helm terraform-provider-aws amazon-eks apache-superset
    1个回答
    0
    投票

    1。观望]]

    谁知道,Apache Superset可能与CloudFormation和/或Terraform更好地集成。

    © www.soinside.com 2019 - 2024. All rights reserved.