6.2.4 龙蜥社区助力阿里云Severless容器产品获得出色的弹性产品能力
阿里云弹性容器实例(简称ECI,Elastic Container Instance)是阿里云结合容器和Serverless技术提供的容器运行服务,是一款 Serverless容器产品。通过使用ECI,在阿里云上部署容器时,无需购买和管理云服务器ECS,可以直接在阿里云上运行Pod和容 器,省去了底层服务器的运维和管理工作。简单来说,一个ECI就是一个Pod,可以被K8s编排和调度。阿里云弹性容器实例特别适 用于突发的业务流量,或者短周期的任务运行。那么ECI和客户自己去购买ECS,在ECS里运行Docker最大的区别在于如果使用ECI, 整个容器的运行时会将由阿里云来运维。
由于ECI一款云计算产品,天然需要在一台物理机上支持不同用户的不同容器,而且某一台机器上有可能启动什么容器是完全无法预 测的,因此每一个容器在启动的时候都需要进行镜像的拉取,而ECI被广泛使用在突发业务流量,突发弹性的场景,因此经常出现在 同一时间内多个容器从同一个镜像仓库拉取镜像的现象,因此非常容易引发由于网络带宽不足或者仓库DOS导致容器启动时间长或 者启动失败的问题。
基于ECI遇到的挑战,ECI开发团队采用了龙蜥社区提供的Nydus + Dragonfly方案,使用镜像的按需加载以及集群内的镜像内容P2P 分发。
通过减少不必要的镜像内容的传输以及P2P能力,ECI容器实例在镜像拉取的时间上有了大幅度的降低。
根据实测,某集群内的镜像拉取时间由p99 6s下降到了p99 1s,更是实现了ECI Job类实例在6s内扩容3000个实例的产品能力,在 业界均处于领先位置。