ECS集群层 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ECS集群层

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

亚马逊弹性容器服务 (AmazonECS) 管理亚马逊弹性计算云 (AmazonEC2) 实例集群(称为容器实例)上的 Docker 容器。ECS集群层代表一个 Amazon ECS 集群,它通过提供以下功能来简化集群管理:

  • 简化的容器实例预配置和管理

  • 容器实例操作系统和软件包更新

  • 用户权限管理

  • 容器实例性能监控

  • 亚马逊 Elastic Block Store (亚马逊EBS) 卷管理

  • 公有和弹性 IP 地址管理

  • 安全组管理

集ECS群层有以下限制和要求:

向堆栈添加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集群层类型。

Form to add an ECS 集群 Layer, showing layer type, 集群 selection, and EC2 instance profile options.

Add Layer 页面包括以下配置选项:

ECS集群

您要在堆栈中注册的 Amazon ECS 集群。

EC2实例配置文件

集群的亚马逊弹性计算云 (AmazonEC2) 实例配置文件。此配置文件允许在集群容器实例上运行的应用程序访问其他AWS服务,包括 Amazon ECS。创建第一个ECS集群层时,请选择具有直接ECS访问权限的新建配置文件 AWS OpsWorks 堆叠以创建所需的配置文件,该配置文件名为aws-opsworks-ec2-role-with-ecs。然后,您可以将该配置文件用于所有后续的ECS集群层。有关实例配置文件的更多信息,请参阅为在EC2实例上运行的应用程序指定权限

您可以通过编辑层的配置来指定其他设置,包括:

管理集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群层
  1. 如果您想控制关闭任务的方式,请使用 Amazon ECS 控制台API、或CLI缩小并删除集群的服务。有关更多信息,请参阅清理您的 Amazon ECS 资源

  2. 停止层的实例,然后将其删除。当你停止容器实例时, AWS OpsWorks Stacks 会自动停止所有正在运行的任务,从集群中注销实例并终止该实例。

    注意

    如果您已在堆栈中注册了现有的容器实例,则可以从层中取消分配这些实例,然后取消注册这些实例,这将使ECS实例恢复控制。

  3. 删除层。 AWS OpsWorks Stacks 取消注册关联的集群,但不会删除该集群。集群仍在 Amazon 中ECS。