【发布时间】:2016-05-14 04:21:12
【问题描述】:
在所有 ECS 教程中,您需要创建一个集群,然后创建一个自动扩展组,这将产生实例。不知何故,在所有这些教程中,实例神奇地出现在集群中,但没有人提示连接自动缩放组和集群的原因。
我的自动缩放组按预期生成实例,但它们只是没有出现在我的 ecs 集群上,该集群拥有我的 docker 定义。
我缺少的连接在哪里?
【问题讨论】:
标签: amazon-ec2 docker amazon-ecs
在所有 ECS 教程中,您需要创建一个集群,然后创建一个自动扩展组,这将产生实例。不知何故,在所有这些教程中,实例神奇地出现在集群中,但没有人提示连接自动缩放组和集群的原因。
我的自动缩放组按预期生成实例,但它们只是没有出现在我的 ecs 集群上,该集群拥有我的 docker 定义。
我缺少的连接在哪里?
【问题讨论】:
标签: amazon-ec2 docker amazon-ecs
我为此苦苦挣扎了一段时间。获取与您的 ECS 集群关联的自动扩展组中的实例的关键在于用户数据。当您在进入第 3 步“配置详细信息”时创建启动配置时,点击高级选项卡并为您的用户数据输入如下所示的简单 bash 脚本。
#!/usr/bin/env bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
代理配置的所有可用参数都可以在这里找到http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
【讨论】:
ECS_CLUSTER 中的 /etc/ecs/ecs.config 需要具有正确的名称。就是这样!
自动扩缩组与集群没有严格关联。但是,可以配置自动缩放组,以便每个启动的实例都将自己注册到特定的集群中。
将实例注册到集群是在实例上运行的ECS Agent 的责任。如果您使用的是Amazon ECS-optimized AMI,ECS 代理将在实例启动时启动并将其自身注册到configured cluster。但是,您也可以通过关注the installation instructions 在其他 Linux AMI 上使用 ECS 代理。
【讨论】:
sudo start ecs。配置代理后使用。
嗯,我发现了。 都是关于 ecs-agent 及其配置文件 /etc/ecs/ecs.config (该文件将通过 Userdata 字段创建,在创建 EC2 实例时,即使是通过自动扩展配置。) 在此处阅读其配置选项:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
但您甚至可以复制存储在 Amazon S3 上的 ecs.config,这样做(以下行进入 Userdata 字段):
#!/bin/bash
yum install -y aws-cli
aws configure set default.s3.signature_version s3v4
aws configure set default.s3.addressing_style path
aws configure set default.region eu-central-1
aws s3 cp s3://<bucketname>/ecs.config /etc/ecs/ecs.config
注意:Signature_version v4 特定于某些区域,例如 eu-central-1。 仅当您的实例的 IAM 角色(在我的情况下为 ecsInstanceRole)具有正确的 AmazonS3ReadOnlyAccess 时,此 ofc 才有效
AWS GUI 控制台的方式是: 使用https://console.aws.amazon.com/ecs/home#/firstRun 上的集群向导。 它将为您的集群创建一个自动缩放组,在其前面创建一个负载均衡器,并将它们很好地连接起来。
【讨论】:
这个问题很老,但答案并不完整。将您自己的自动扩展组显示在集群中需要两个部分(截至 2022 年 1 月)。
您需要确保为/etc/ecs/ecs.config 中的ECS_CLUSTER 变量设置集群名称,如此答案中所述:https://stackoverflow.com/a/35324937/583875
您需要为集群创建新的容量提供程序并附加此 Auto Scaling 组。为此,请转到集群 -> 容量提供程序 -> 创建 -> 在 Auto Scaling group 下选择您的 Auto Scaling 组。
另一个棘手的部分是让您的服务使用实例(如果您正在运行服务)。您需要编辑服务,并更改Capacity provider strategy。点击Add another provider并选择您在上面(2)中创建的新容量提供程序。
就是这样!为确保一切正常:您应该在 Graph -> Capacity Providers 下看到您的容量提供程序,您应该在 Graph -> ECS Instances 下看到您的 Auto Scaling 组中的实例。
【讨论】: