Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 如何将自动校准组连接到ecs群集?_Amazon Ec2_Docker_Amazon Ecs - Fatal编程技术网

Amazon ec2 如何将自动校准组连接到ecs群集?

Amazon ec2 如何将自动校准组连接到ecs群集?,amazon-ec2,docker,amazon-ecs,Amazon Ec2,Docker,Amazon Ecs,在所有ECS教程中,您需要创建一个集群,然后创建一个自动缩放组,该组将生成实例。在所有这些教程中,实例都神奇地出现在集群中,但是没有人给出一个提示,说明是什么连接了自动缩放组和集群 我的自动缩放组按预期生成实例,但它们不会出现在我的ecs集群上,而我的ecs集群持有我的docker定义 我丢失的连接在哪里?嗯,我发现了。 这是关于ecs代理及其配置文件/etc/ecs/ecs.config的全部内容 (创建EC2实例时,即使是从自动缩放配置,也将通过Userdata字段创建此文件。) 请在此处阅

在所有ECS教程中,您需要创建一个集群,然后创建一个自动缩放组,该组将生成实例。在所有这些教程中,实例都神奇地出现在集群中,但是没有人给出一个提示,说明是什么连接了自动缩放组和集群

我的自动缩放组按预期生成实例,但它们不会出现在我的ecs集群上,而我的ecs集群持有我的docker定义

我丢失的连接在哪里?

嗯,我发现了。 这是关于ecs代理及其配置文件/etc/ecs/ecs.config的全部内容 (创建EC2实例时,即使是从自动缩放配置,也将通过Userdata字段创建此文件。) 请在此处阅读其配置选项:

但您甚至可以复制存储在Amazon S3上的ecs.config,这样做(以下几行进入
Userdata
字段):

#/bin/bash
yum安装-y aws-cli
aws配置集default.s3.signature\u版本s3v4
aws配置集default.s3.u样式路径
aws配置设置默认值。区域eu-central-1
aws s3 cp s3:///ecs.config/etc/ecs/ecs.config
注:Signature_v4版适用于某些地区,如eu-central-1。 只有当实例的IAM角色(在我的例子中是ecsInstanceRole)具有正确的AmazonS3ReadOnlyAccess时,此ofc才有效


AWS GUI控制台的方式是: 使用位于的群集向导。
它将为您的群集创建一个自动缩放组,前面是一个负载平衡器,并将其很好地连接起来。

自动缩放组并不严格地与群集关联。但是,可以配置自动缩放组,以便启动的每个实例将自己注册到特定集群中


将实例注册到集群是实例上运行的责任。如果您正在使用,ECS代理将在实例引导时启动,并将自身注册到。但是,您也可以通过以下方式在其他Linux AMI上使用ECS代理。

我为此挣扎了一段时间。获取与您的ECS群集关联的自动缩放组中的实例的关键在于用户数据。当您创建启动配置时,当您进入第3步“配置详细信息”时,点击高级选项卡,并为您的用户数据输入一个简单的bash脚本,如下所示

#!/usr/bin/env bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config

可以在此处找到代理配置的所有可用参数

是的,我已经说到了这一点。但是谢谢你在这里加上这个。您甚至可以从amazon S3加载ecs.config。我把它添加到我的答案中。要完成更多的响应,这是重新(启动)代理所需的命令:
sudo start ecs
。在配置代理后使用它。谢谢,这个回答帮助我意识到我的问题不是缺少关联,而是我的ASG启动配置正在创建没有公共IP的ec2实例,这阻止了ECS代理注册实例。
#!/usr/bin/env bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config