一台机器能跑几个 awsvpc 任务:ECS ENI trunking(awsvpcTrunking)复盘
缘起
我们的 ECS 集群都是 EC2 启动类型,任务一律用 awsvpc 网络模式。
刚开始搭 dev 环境的时候就撞过一次墙:机器的 CPU、内存都还有富余,新任务却起不来,原因是 ENI 不够用了。当时的解法是打开 ECS 的 awsvpcTrunking(俗称 VPC trunk / ENI trunking),让一台 EC2 能挂更多的网卡。代价是:这个方案不是每种机型都支持。
半年多过去,环境从 dev 一路扩到 qa、preprod、prod,机型换了好几轮。某天下午我突然想起这件事:现在各个环境的 ECS 集群,还有没有 ENI 不够的隐患?换过的机型,还都支持 trunking 吗?
巧的是,同一天下午 prod 正好有个任务卡在 PROVISIONING 起不来,ENI 也一度被列为头号嫌疑。这篇就把 trunking 的原理、我们怎么落地的、怎么巡检,以及那次”差点冤枉了 ENI”的排查,一起记下来。