Агент AWS ECS не может найти /etc/resolv.conf при запуске и не может добавить экземпляры в кластер ECS
Я пытаюсь следовать приведенным здесь инструкциям, чтобы добавить экземпляр в мой кластер AWS ECS.
Так что я:
- Создана конфигурация запуска с автоматическим масштабированием для автомасштабированных экземпляров (AMI: ami-a28476c2 us-west-2)
- Экземпляр загружается из группы автомасштабирования без проблем, но никогда не присоединяется к моему кластеру ECS.
default
как говорят в документах, так и должно быть. Я зашёл в инстанс, перебрал логи и увидел:
[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-серверы, которые вы хотите).
И все теперь прекрасно работает.