1. 背景
随着ai智算的发展,在k8s环境中管理ai训练任务成为了迫切需求。 其中一个问题是ai的镜像一般都比较大,达到20g,或者更大。
那么怎么基于开源的技术框架体系下,实现镜像的高效分发,成为了一个难题。 本文主要提出2种方法进行优化。
2. 解决方案
2.1 基于registry proxy模式
registry是开源的私有镜像仓库的解决方案,如下图。
需要启动2个registry的服务, 其中一个作为镜像源, 另外一个registry运行在proxy模式下,作为源registry的一个缓存
2.2 基于P2P的解决方案
例如dragonfly方案
3. 两种方案的对比
方案 | 优点1 | 优点2 | 缺点1 | 缺点2 | |
registry | 轻量级 | 部署简单方便 | 单点缓存,失效会导致击穿 | 每个集群都要单独部署 | |
dragonfly | 速度快 | 数据加速效果好 | 需要部署多个组件服务,耗用资源多 | 组件维护较大 |
registry: 适合于节点较少的集群,例如节点小于50.
dragonfly: 适合大集群,例如节点大于100