我在从 Autoscale 组启动实例时遇到问题:ecs-agent 容器启动,但随后遇到错误并停止。这是错误:
Unable to initialize Task ENI dependencies: unable to create ENI watcher: unable to create udev monitor: permission denied
该组通过容量提供商连接到 ECS 集群,并且一切都在同一个 VPC 中运行。 现在,在我不得不对 ECR 映像进行一些更改、创建 Lambda、停止实例并尝试再次重新启动之前,启动模板、自动缩放组和任务都已正常工作。
以下是启动模板中的一些信息:
AMI ID:ami-0e174c3e9fa61e692
实例类型:g4dn.2xlarge
IAM 配置文件:ecsInstanceRole
用户数据:
#!/bin/bash
cd ~
curl -O https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.amd64.deb
sudo dpkg -i amazon-ecs-init-latest.amd64.deb
sudo mkdir /etc/ecs/
sudo echo ECS_CLUSTER=*** >> /etc/ecs/ecs.config
sudo echo ECS_ENABLE_GPU_SUPPORT=true >> /etc/ecs/ecs.config
sudo systemctl start ecs
我尝试手动停止和启动实例并通过更改自动缩放容量(最大、最小、所需)。我回滚了遇到错误之前所做的所有更改,但它仍然不起作用。
我希望能够通过自动缩放组启动实例,ecs-agent 容器可以启动,然后可以将连接的 ECS 任务提供给实例。
任何帮助都会被接受!如果您需要更多详细信息,我可以给您一些。谢谢,美好的一天!
我遇到了完全相同的问题,并发现这是由于 ECS 代理更新而发生的。 它在 1.77.0 版本中工作正常,在 1.78.0 版本中停止工作。 AWS 恢复了错误的提交,请参阅https://github.com/aws/amazon-ecs-agent/pull/3993,并发布了 1.78.1,该版本在这里运行良好。