EC2实例无法加入ECS集群。

9

我有一个EC2集群,想要添加EC2机器。

我已经在/etc/ecs/ecs.config中添加了ECS_CLUSTER=cluster_name和用户数据,但实例没有加入集群。

我正在寻找日志文件或任何其他证据,以说明为什么我的实例没有加入集群。我没有/var/log/ecs文件夹。


这可能是由于您的EC2实例受到DockerHub的速率限制而发生的。 - pdoherty926
3个回答

4
您需要使用ECS AMI,或者安装ECS代理。
您可以在这里找到ECS代理的安装步骤。
在更改配置后,您需要启动/重新启动ECS代理。
restart ecs

啊哈,我没有 ECS 服务。看起来我需要选择一个特定的 AMI。http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html - Dan
2
现在我正在使用ECS AMI,我已经有了服务,并且可以在/var/log/ecs中查看日志。 - Dan
1
请注意,用户数据仅在实例第一次运行时运行,因此如果您更新了用户数据,则不会在第一次启动后重新将ECS_CLUSTER添加到 /etc/ecs/ecs.config。 - Philip Callender
查看 /var/log/ecs/ecs-agent.log 对解决问题非常有帮助。我的情况是IAM角色权限不足。 - 鄭元傑

3

重启 ECS(弹性云服务器)不能解决问题。

在我的情况下,我检查了日志:

/var/logs/ecs

tail -f ecs-agent.log.2018-09-05-15

我注意到

2018-09-05T15:26:22Z [ERROR] Could not register: NoCredentialProviders: no valid providers in chain. Deprecated.
    For verbose messaging see aws.Config.CredentialsChainVerboseErrors

只需分配ECS角色并将实例注册到集群中。

也许这个答案对一些人有帮助。


0

这里的情况基本相同,只是我的问题与我设置第一个集群时发现的一项配置选项有关。我指定了从 EC2 实例传播标记,我在这里找到了https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html

# ecs.config
ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM=ec2_instance`

日志输出提示我的ECS的EC2环境变量正在请求新的功能集:Error registering: InvalidParameterException: Long arn format must be enabled for tagging.

经过一些谷歌搜索,我在这里找到了描述问题的解决方案:https://github.com/terraform-providers/terraform-provider-aws/issues/10762#issue-518401992

解决方案

您需要配置特定的用户范围或以root身份执行操作。

  1. 以root身份进入您的Web控制台。
  2. 转到ECS
  3. 在左侧导航窗格中选择帐户设置
  4. 启用较新的arn格式选项。 在我的情况下,我启用了所有选项。

enter image description here

  1. 退出登录,以非 root 用户身份登录并重新启动您的 ec2 实例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接