【问题标题】:AWS ECS agent cannot find /etc/resolv.conf when launching and cannot add instances to an ECS clusterAWS ECS 代理在启动时找不到 /etc/resolv.conf 并且无法将实例添加到 ECS 集群
【发布时间】:2016-09-04 20:44:04
【问题描述】:

我正在尝试按照说明 here 将实例添加到我的 AWS ECS 集群。

所以我:

  1. 为自动扩缩实例创建了一个自动扩缩启动配置(AMIami-a28476c2 us-west-2
  2. 实例从自动缩放组启动没有问题,但从未像文档所说的那样加入我的 ECS 集群default
  3. 我 sshed 进入实例并 cat 日志并查看:

    [ec2-user@ip-172-31-47-157 ~]$ cat /var/log/ecs/ecs-init.log.2016-05-10-03 2016-05-10T03:31:21Z [INFO] 预启动 2016-05-10T03:31:22Z [信息] 开始 2016-05-10T03:31:22Z [INFO] 没有要删除的现有代理容器。 2016-05-10T03:31:22Z [INFO] 启动 Amazon EC2 容器服务代理 2016-05-10T03:31:23Z [错误] 无法启动代理:API 错误 (500):无法启动容器 dbee780d6770f62afc3266ba14b77957a5e6054f94e89b2ced77f9636c4be64b:打开 /etc/resolv.conf:没有这样的文件或目录

所以看起来 ECS 代理失败了,因为它找不到 /etc/resolv.conf。我不知道为什么会这样,因为我正在逐字跟踪文档。

过去有人尝试过吗?我不确定如何进行调试。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 docker amazon-ecs


    【解决方案1】:

    我已经解决了这个问题。使用this 页面上的帮助,我发现某些东西(不知道原因是什么)正在为实例设置防火墙。

    在我的自动缩放启动配置中,我将以下代码添加到 user-data 部分:

    #!/bin/bash
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf
    

    创建丢失的文件 (/etc/resolv.conf) 并告诉实例使用 Google DNS 服务器(可能是您想要的任何 DNS 服务器)。

    现在一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2016-12-25
      • 2017-09-24
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多