Агент AWS ECS не может найти /etc/resolv.conf при запуске и не может добавить экземпляры в кластер ECS

Я пытаюсь следовать приведенным здесь инструкциям, чтобы добавить экземпляр в мой кластер AWS ECS.

Так что я:

  1. Создана конфигурация запуска с автоматическим масштабированием для автомасштабированных экземпляров (AMI: ami-a28476c2 us-west-2)
  2. Экземпляр загружается из группы автомасштабирования без проблем, но никогда не присоединяется к моему кластеру ECS. default как говорят в документах, так и должно быть.
  3. Я зашёл в инстанс, перебрал логи и увидел:

    [ec2-user @ ip-172-31-47-157 ~] $ cat /var/log/ecs/ecs-init.log.2016-05-10-03 2016-05-10T03: 31: 21Z [ИНФО] предварительный запуск 2016-05-10T03:31:22Z [INFO] запуск 2016-05-10T03:31:22Z [INFO] Нет существующего контейнера агента для удаления. 2016-05-10T03: 31: 22Z [ИНФОРМАЦИЯ] Запуск агента службы контейнера Amazon EC2 2016-05-10T03:31:23Z [ОШИБКА] не удалось запустить Агент: ошибка API (500): не удается запустить контейнер dbee780d6770f62afc3266ba14b77957a5e6054f94e89b2ced77f9636c4be64b: открыть resolv.conf: нет такого файла или каталога

Похоже, что агент ECS не работает, потому что не может найти /etc/resolv.conf, Я понятия не имею, почему это происходит, так как я дословно следую документам.

Кто-нибудь пробовал это в прошлом? Я не уверен, как идти об отладке этого.

1 ответ

Я решил это. Используя справку на этой странице, я обнаружил, что что-то (не знаю, в чем причина) защищало экземпляр.

В моей конфигурации запуска автоматического масштабирования я добавил следующий код 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) и указывает экземпляру использовать DNS-серверы Google (предположительно, любые DNS-серверы, которые вы хотите).

И все теперь прекрасно работает.

Другие вопросы по тегам