Docker发布插件,简化了在AWS中的部署

2020-07-27 13:30:19

Docker已宣布其增强的Docker与AWS弹性容器服务和AWS Fargate集成的公开测试版。ECS插件的发布允许开发人员在Docker体验中工作,以创建在AWS中运行所需的基础设施。

目前的测试版用户体验需要在Docker命令中使用ECS语法,因为插件将在短期内直接使用。例如,执行docker ECS Compose Up将创建应用程序和AWS中需要的所有资源,如compose.yaml文件中所述。这样就不需要单独创建不属于组成规范的AWS ECS资源,例如vPC、ECS群集和ECS任务定义。

ECS Docker插件需要设置AWS配置文件,以便从中选择必要的AWS API凭据。创建后,AWS配置文件和区域将存储在Docker上下文中。这可以通过坞站ECS SETUP命令启动。

该插件将解析compose.yaml文件,并将其转换为适当的CloudFortification模板。然后使用该模板以规定的顺序创建应用程序资源。资源可以通过DOWN命令清除,或者在部署失败时自动清除。

ECS集成执行一个四步流程。加载阶段依赖Compose-Go来加载和解析Compose.yaml文件。在验证阶段,ECS缺省值被注入到Compose-Go模型中,并对compose e.yaml文件进行验证,以确保它不包含不受支持的特性。转换阶段生成一个CloudFortification模板,该模板定义在AWS上实现应用程序模型所需的所有应用程序资源。最后,应用阶段通过导出到堆栈文件或在AWS上部署来应用CloudFortification模板。

在此过程中,组合服务被映射到ECS服务。由于Compose不支持多容器服务,如Kubernetes Pod或SideCar,因此使用自定义Compose扩展(即x-AWS-*)将ECS功能公开为服务级别功能。

网络抽象从组合模型映射到AWS安全组。应用程序在单个VPC内创建,每个合成网络都会创建安全组,包括隐式默认安全组。然后根据在组合模型中声明网络的方式附加服务。这使得附加到公共安全组的服务能够彼此通信。

还会为每个应用程序创建云地图私有命名空间{project}.local。AWS Cloud Map是一项资源发现服务。它允许使用自定义名称注册任何应用程序资源。然后,Cloud Map将检查注册资源的运行状况,以确保它们的位置是最新的。

GA版本预计将在今年晚些时候发布,并将使插件成为Docker上下文的一部分。Docker上下文为单个CLI实例提供了一种拥有多个上下文的方式。每个环境都包含管理群集或节点所需的所有必要端点和安全信息。例如,同一笔记本电脑上可能有开发人员上下文和生产上下文。命令docker context use<;context-name>;可用于在上下文之间切换。

要开始使用,需要Docker ID和Docker Desktop Edge版本2.3.3.0。GitHub资源库中提供了一个演示应用程序。Docker还在寻找要提交给路线图的功能请求。

InfoQ上上周内容的综述每周二都会发布。加入一个超过25万名高级开发人员的社区。查看示例。

选择您的国家/地区我同意InfoQ.com按照本隐私声明中的说明处理我的数据。