本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ECS 集群层
重要
AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答 和 将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager:
Amazon Elastic Container Service (Amazon ECS) 管理名为容器实例的Amazon Elastic Compute Cloud (Amazon EC2) 实例集群上的 Docker 容器。ECS 集群层表示 Amazon ECS 集群,并通过提供相关功能来简化集群管理,这些功能包括:
-
简化的容器实例预配置和管理
-
容器实例操作系统和软件包更新
-
用户权限管理
-
容器实例性能监控
-
Amazon Elastic Block Store(Amazon EBS)卷管理
-
公有和弹性 IP 地址管理
-
安全组管理
ECS 集群层具有以下限制和要求:
-
层仅适用于在 VPC(包括默认 VPC)中运行的 Chef 11.10 或 Chef 12 Linux 堆栈。
-
层的实例必须运行以下操作系统之一。
-
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 Stacks 代理版本必须为
3425-20150727112318
或更高版本。
向堆栈添加 ECS 集群层
AWS OpsWorks Stacks 简化了启动和维护现有 Amazon ECS 集群的容器实例的过程。要创建或启动其他 Amazon ECS 实体(如集群和任务),请使用 Amazon ECS 控制台、命令行界面 (CLI) 或 API。(有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》。) 随后,您可以通过创建 ECS 集群层来将集群与堆栈关联,该层可用来管理 AWS OpsWorks Stacks 中的集群。
您可以将集群与堆栈关联,如下所示:
-
每个堆栈均可具有一个 ECS 集群层,它表示一个集群。
-
一个集群只能与一个堆栈关联。
您必须先更新 AWS OpsWorks Stacks AWS Identity and Access Management (IAM) 服务角色(通常名为 aws-opsworks-service-role
)以允许 AWS OpsWorks Stacks 代表您与 Amazon ECS 交互,然后才能向堆栈添加 ECS 集群层。有关服务角色的更多信息,请参阅允许 AWS OpsWorks Stacks 代表您执行操作。
当您首次创建 ECS 集群层时,控制台将提供一个更新按钮,您可以选择此按钮以指示 AWS OpsWorks Stacks 为您更新角色。AWS OpsWorks随后,Stacks 将显示添加层页面,以便您能够将层添加到堆栈。您只需更新服务角色一次。随后,您可以使用更新后的角色将 ECS 集群层添加到任意堆栈。
注意
如果您愿意,可以通过向现有策略添加 ecs:*
权限来手动更新服务角色的策略,如下所示:
{ "Statement": [ { "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*", "rds:*", "ecs:*" ], "Effect": "Allow", "Resource": ["*"] } ] }
将集群与堆栈关联需要执行两项操作:将集群注册到堆栈,然后创建关联的层。AWS OpsWorks Stacks 控制台将这些步骤组合在一起;层创建操作将自动注册指定的集群。如果您使用 AWS OpsWorks Stacks API、CLI 或开发工具包,则必须使用单独的操作来注册集群并创建关联的层。要使用控制台将 ECS 集群层添加到堆栈,请选择层,再选择+层或添加层,然后选择 ECS 集群层类型。
Add Layer 页面包括以下配置选项:
- ECS 集群
-
要注册到堆栈的 Amazon ECS 集群。
- EC2 实例配置文件
-
集群的 Amazon Elastic Compute Cloud(Amazon EC2)实例配置文件。此配置文件向正在集群的容器实例上运行的应用程序授予对其他 Amazon Web Service (包括 Amazon ECS) 的访问权。在创建您的第一个 ECS 集群层时,选择具有 ECS 访问权限的新配置文件可指示 AWS OpsWorks Stacks 创建所需的配置文件(名为
aws-opsworks-ec2-role-with-ecs
)。随后,您可以对所有后续 ECS 集群层使用该配置文件。有关实例配置文件的更多信息,请参阅为在 EC2 实例上运行的应用程序指定权限。
您可以通过编辑层的配置来指定其他设置,包括:
-
将 Elastic Load Balancing 负载均衡器连接到任何层。
此方法可能适合某些用例,但 Amazon ECS 提供了更高级的选项。有关更多信息,请参阅服务负载均衡。
-
指定是否自动向容器实例分配公有 IP 地址或弹性 IP 地址。
如果您禁用针对两个地址类型的自动分配,则除非子网已正确配置 NAT,否则该实例将无法联机。有关更多信息,请参阅在 VPC 中运行堆栈。
管理 ECS 集群
在创建 ECS 集群层后,您可以使用 AWS OpsWorks Stacks 来管理集群,如下所示:
- 预配置和管理容器实例
-
最初,ECS 集群层不包括任何容器实例,即使原始集群包含容器实例也是如此。一个选择是使用以下项的适当组合来管理层的实例:
注意
如果堆栈的默认操作系统不支持 Amazon 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 或 Custom。请不要使用经 ECS 优化的 AMI 来在 ECS 层中创建实例,因为此 AMI 已包含 ECS 代理。AWS OpsWorksStacks 还在实例设置过程中尝试安装 ECS 代理,而冲突可能会导致设置失败。
有关更多信息,请参阅 优化服务器数。AWS OpsWorksStacks 将 AWS-OpsWorks-ECS-Cluster 安全组分配给每个实例。在每个新实例完成启动后,AWS OpsWorks Stacks 会将其转换为容器实例,方式是安装 Docker 和 Amazon ECS 代理,然后将实例注册到集群。
如果您更愿意使用现有的容器实例,您可以将其注册到堆栈并将其分配给 ECS 集群层。请注意,实例必须运行支持的操作系统、Amazon Linux 2015.03 或更高版本或 Ubuntu 14.04 LTS 或更高版本。
注意
一个容器实例不能同时属于一个 ECS 集群层和另一个内置层。但是,容器实例可以属于一个 ECS 集群层和一个或多个自定义层。
- 运行操作系统和软件包更新
-
在新的实例完成启动后,AWS OpsWorks Stacks 将安装最新的更新。随后,您可以使用 AWS OpsWorks Stacks 来使容器实例保持最新。有关更多信息,请参阅管理安全更新。
- 管理用户权限
-
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 Stacks API、CLI 或开发工具包,则必须使用单独的操作来取消注册集群并删除关联的层。
使用控制台删除 ECS 集群层
-
如果您要控制任务的关闭方式,请使用 Amazon ECS 控制台、API 或 CLI 来缩减和删除集群的服务。有关更多信息,请参阅清除您的 Amazon ECS 资源。
-
停止层的实例,然后将其删除。当您停止容器实例时,AWS OpsWorks Stacks 会自动停止任何正在运行的任务,从集群取消注册该实例,并终止该实例。
-
删除层。AWS OpsWorksStacks 取消注册关联的集群,但不会删除该集群。该集群将保留在 Amazon ECS 中。