EC2 实例未加入 ECS 集群

EC2 instance not joining ECS Cluster

我有一个 EC2 集群,我正在尝试向其中添加 EC2 机器。

我已经使用用户数据ECS_CLUSTER=cluster_name添加到/etc/ecs/ecs.config,但该实例没有加入集群。

我正在寻找日志文件或集群加入过程的任何其他证据,这些证据可能表明我的实例未加入的原因。我没有 /var/log/ecs 文件夹。

您需要使用 ECS AMI,

或者您需要安装ECS代理

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html

然后您需要 start/restart ecs 代理更改配置后

restart ecs

重新启动 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 角色和实例。

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

这里的交易与我在设置第一个集群时发现的配置选项有关。我指定了我在此处找到的 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. Select Account Settings 在左侧导航窗格中。
  4. 启用更新的 arn 格式选项。就我而言,我启用了所有这些。

  1. 注销,以非根用户身份登录并重启您的 ec2 实例。