本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ECS集群层
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
亚马逊弹性容器服务 (AmazonECS) 管理亚马逊弹性计算云 (AmazonEC2) 实例集群(称为容器实例)上的 Docker 容器。ECS集群层代表一个 Amazon ECS 集群,它通过提供以下功能来简化集群管理:
-
简化的容器实例预配置和管理
-
容器实例操作系统和软件包更新
-
用户权限管理
-
容器实例性能监控
-
亚马逊 Elastic Block Store (亚马逊EBS) 卷管理
-
公有和弹性 IP 地址管理
-
安全组管理
集ECS群层有以下限制和要求:
-
层的实例必须运行以下操作系统之一。
-
Amazon Linux 2
-
Amazon Linux 2018.03
-
Amazon Linux 2017.09
-
Amazon Linux 2017.03
-
Amazon Linux 2016.09
-
Amazon Linux 2016.03
-
Amazon Linux 2015.09
-
Amazon Linux 2015.03
-
Ubuntu 18.04 LTS
-
Ubuntu 16.04 LTS
-
Ubuntu 14.04 LTS
-
自定义
-
-
这些区域有:AWS OpsWorks 层实例上的堆栈代理版本必须为
3425-20150727112318
或更高。
向堆栈添加ECS群集层
AWS OpsWorks Stacks 简化了为现有 Amazon 集ECS群启动和维护容器实例的过程。要创建或启动其他亚马逊ECS实体,例如集群和任务,请使用亚马逊ECS控制台、命令行界面 (CLI) 或API。(有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》。) 然后,您可以通过创建集群层将ECS集群与堆栈相关联,您可以使用集群层管理中的集群 AWS OpsWorks 堆栈。
您可以将集群与堆栈关联,如下所示:
-
每个堆栈可以有一个ECS集群层,它代表一个集群。
-
一个集群只能与一个堆栈关联。
在向堆栈中添加ECS集群图层之前,必须更新 AWS OpsWorks 堆栈 AWS Identity and Access Management
(IAM) 服务角色,通常被命名为aws-opsworks-service-role
,以允许 AWS OpsWorks 用于代表您与 Amaz ECS on 互动的堆栈。有关服务角色的更多信息,请参阅允许 AWS OpsWorks Stacks 代表你行事。
首次创建ECS集群层时,控制台会提供一个更新按钮,您可以选择将其定向 AWS OpsWorks 堆叠来为你更新角色。 AWS OpsWorks 随后,Stacks 将显示添加层页面,以便您能够将层添加到堆栈。您只需更新服务角色一次。然后,您可以使用更新的角色向任何堆栈添加ECS集群层。
注意
如果您愿意,可以通过向现有策略添加 ecs:*
权限来手动更新服务角色的策略,如下所示:
{ "Statement": [ { "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*", "rds:*", "ecs:*" ], "Effect": "Allow", "Resource": ["*"] } ] }
将集群与堆栈关联需要执行两项操作:将集群注册到堆栈,然后创建关联的层。这些区域有: AWS OpsWorks Stacks 控制台结合了这些步骤;创建层会自动注册指定的集群。如果您将 AWS OpsWorks 堆栈APICLISDK、或,您必须使用单独的操作来注册集群并创建关联层。要使用控制台向堆栈添加ECS集群层,请选择层,选择 +层或添加层,然后选择ECS集群层类型。
Add Layer 页面包括以下配置选项:
- ECS集群
-
您要在堆栈中注册的 Amazon ECS 集群。
- EC2实例配置文件
-
集群的亚马逊弹性计算云 (AmazonEC2) 实例配置文件。此配置文件允许在集群容器实例上运行的应用程序访问其他AWS服务,包括 Amazon ECS。创建第一个ECS集群层时,请选择具有直接ECS访问权限的新建配置文件 AWS OpsWorks 堆叠以创建所需的配置文件,该配置文件名为
aws-opsworks-ec2-role-with-ecs
。然后,您可以将该配置文件用于所有后续的ECS集群层。有关实例配置文件的更多信息,请参阅为在EC2实例上运行的应用程序指定权限。
您可以通过编辑层的配置来指定其他设置,包括:
-
将 Elastic Load Balancing 负载均衡器连接到任何层。
这种方法可能适用于某些用例,但是 Amazon ECS 提供了更复杂的选项。有关更多信息,请参阅服务负载均衡。
-
指定是否自动向容器实例分配公有 IP 地址或弹性 IP 地址。
如果您禁用两种地址类型的自动分配,则除非子网配置正确,否则实例将无法联机NAT。有关更多信息,请参阅 在堆栈中运行堆栈 VPC。
管理集ECS群
创建ECS集群层后,可以使用 AWS OpsWorks 用于管理集群的堆栈,如下所示:
- 预配置和管理容器实例
-
最初,集ECS群层不包含任何容器实例,即使原始集群包含容器实例也是如此。一个选择是使用以下项的适当组合来管理层的实例:
注意
如果堆栈的默认操作系统不支持亚马逊ECS,则必须明确指定支持的操作系统 — 亚马逊 Linux 2、亚马逊 Linux 2018.03、亚马逊 Linux 2017.09、亚马逊 Linux 2017.03、亚马逊 Linux 2016.09、亚马逊 Linux 2016.03、亚马逊 Linux 2015.09、亚马逊 Linux 2015.03、Ubuntu 16.04、LTS Ubuntu 14.04,或自定义-创建容器实例时。LTS LTS不要使用ECS优化AMI版在ECS层中创建实例,因为这AMI已经包括了ECS代理。 AWS OpsWorks Stacks 还会在实例设置过程中尝试安装ECS代理,冲突可能导致安装失败。
有关更多信息,请参阅 优化服务器数。 AWS OpsWorks Stacks 为每个实例分AWS配 OpsWorks--ECS-集群安全组。在每个新实例完成启动后, AWS OpsWorks Stacks 通过安装 Docker 和 Amazon ECS 代理,然后在集群中注册该实例,将其转换为容器实例。
如果您更喜欢使用现有的容器实例,则可以将其注册到堆栈并将其分配给ECS集群层。请注意,这些实例必须运行支持的操作系统,即 Amazon Linux 2015.03 或更高版本,或 Ubuntu 14.04 或更高版本。LTS
注意
容器实例不能同时属于集ECS群层和另一个内置层。但是,容器实例可以属于ECS集群层和一个或多个自定义层。
- 运行操作系统和软件包更新
-
新实例完成启动后, AWS OpsWorks Stacks 会安装最新的更新。然后你可以使用 AWS OpsWorks 堆叠以使容器实例保持最新状态。有关更多信息,请参阅 管理安全更新。
- 管理用户权限
-
AWS OpsWorks Stacks 提供了一种管理容器实例权限的简单方法,包括管理用户的SSH密钥。有关更多信息,请参阅管理用户权限 和管理 SSH 访问。
- 监控性能指标
-
AWS OpsWorks Stacks 提供了多种方法来监控堆栈、层或单个实例的性能指标。有关更多信息,请参阅 监控。
您可以通过 Amazon 处理其他管理任务,例如创建任务或服务ECS。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南。
注意
要直接转到 Amazon ECS 控制台上的集群页面,请选择实例,然后选择ECS集群,该集群位于ECS集群层部分的右上角附近。
从堆栈中删除ECS集群层
当您不再需要集群时,请删除集ECS群层并取消注册关联的集群。从堆栈中删除集群需要执行两项操作:取消注册集群,然后删除关联的层。这些区域有: AWS OpsWorks Stacks 控制台结合了这些步骤;删除图层会自动注销指定集群的注册。如果您将 AWS OpsWorks 堆栈APICLISDK、或,您必须使用单独的操作来注销集群并删除关联的层。
使用控制台删除集ECS群层
-
如果您想控制关闭任务的方式,请使用 Amazon ECS 控制台API、或CLI缩小并删除集群的服务。有关更多信息,请参阅清理您的 Amazon ECS 资源。
-
停止层的实例,然后将其删除。当你停止容器实例时, AWS OpsWorks Stacks 会自动停止所有正在运行的任务,从集群中注销实例并终止该实例。
注意
如果您已在堆栈中注册了现有的容器实例,则可以从层中取消分配这些实例,然后取消注册这些实例,这将使ECS实例恢复控制。
-
删除层。 AWS OpsWorks Stacks 取消注册关联的集群,但不会删除该集群。集群仍在 Amazon 中ECS。