gpt4 book ai didi

amazon-web-services - 由于 EMI 问题,使用 aws vpc 的 ECS 服务无法启动

转载 作者:行者123 更新时间:2023-12-02 19:55:54 24 4
gpt4 key购买 nike

我有一项服务。我有 2 个 t3.small 实例的 ECS 集群。

我无法启动 ECS 任务。我有 2 个容器(NGINX 和 PHP-FPM)的 ECS 任务。 NGINX 公开端口 80,PHP-FPM 公开端口 9000、9001、9002。

我可以看到的错误:

dev-cluster/ecs-agents i-12345678901234567 2019-09-15T13:20:48Z [ERROR] Task engine [arn:aws:ecs:us-east-1:123456789012:task/ea1d6e4b-ff9f-4e0a-b77a-1698721faa5c]: unable to configure pause container namespace: cni setup: invoke bridge plugin failed: bridge ipam ADD: failed to execute plugin: ecs-ipam: getIPV4AddressFromDB commands: failed to get available ip from the db: getAvailableIP ipstore: failed to find available ip addresses in the subnet

ECS 代理:1.29。

你知道我怎样才能找出问题所在吗?

这是日志片段: https://pastebin.com/my620Kip

任务定义: https://pastebin.com/C5khX9Zy

更新:我的观察

编辑是因为我下面的帖子被删除了...

我重新创建了集群,然后问题就消失了。
然后我从 ECR 中删除了应用程序镜像,我在 AWS Web 控制台中看到了一个错误:
CannotPullContainerError: Error response from daemon: manifest for 123456789123.dkr.ecr.us-east-1.amazonaws.com/application123:development-716b4e55dd3235f6548d645af9e463e744d3785f not found
然后我等了几个小时,直到原来的问题再次发生。
然后我使用 systemctl reboot 手动重新启动实例,并且问题再次消失,仅针对重新启动的实例。

当集群上有数百个无法启动的 awsvpc 任务时,会出现此问题。

我认为这是 ECS 代理中的一个错误。并且当我们尝试使用需要 ENI 创建太多容器时,它会尝试使用子网中的所有空闲 IP。 (255) 我认为在重新启动/重新创建 EC2 实例后,一些缓存被清除并且问题得到解决。

这是我今天找到的类似解决方案: https://github.com/aws/amazon-ecs-cni-plugins/issues/93#issuecomment-502099642

你怎么看待这件事?

我愿意接受建议。

最佳答案

这可能只是一个疯狂的猜测,但可能是您根本没有足够的 ENI 吗?

ENI 非常有限(取决于实例类型):

  • https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html

  • 例如, t3.medium只有 3 个 ENI,其中一个用于主网络接口(interface)。只剩下 2 个 ENI。所以我可以想象ECS任务由于ENI不足而无法启动。

    作为缓解措施,尝试 ENI 中继:
  • https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html

  • 这将增加每个实例的可用 ENI。

    关于amazon-web-services - 由于 EMI 问题,使用 aws vpc 的 ECS 服务无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57944911/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com