
Docker Hub 限速时代:Spegel 无状态缓存如何实现离线镜像共享
TL;DR Spegel 是一个非常有意思的项目,可以帮助我们在 Kubernetes 集群中实现镜像共享,提高镜像拉取的速度,减少对外部镜像仓库的依赖。对于一些离线或者内网环境、带宽优化和成本控制、容灾和高可用等场景,尤其是绕过 Docker Hub 镜像拉取限制方面,Spegel 都是一个不错的选择。 背景 Docker Hub 的限制越来越严,从今天的 4 月 1 日起,未经身份验证的用户每小时最多拉取 10 次镜像,并且是基于 IP 地址或 IPv6 子网限制,这意味着在一个局域网中多个用户共用一个公网 IP 的情况下,这个限制会更加严格。如果收到 429 Too Many Requests 响应,说明已经超过了限制,拉取请求被限流。 Docker Hub 多年来一直免费,但是随着用户数量的增加,成本也在增加,为了保证服务的稳定性,Docker Hub 也需要收费,这是一个必然的趋势。毕竟,运营如此全球规模的服务,维护成本是非常高的。天下没有免费的午餐。 但是对于一些个人开发者或者小团队来说,这样的限制可能会影响到他们的日常开发。 如何避免被限流 1. 登录 Docker Hub 最简单的方法,登录 Docker Hub 可以提高拉取镜像的次数,每小时 100 次。这对于个人开发者来说应该是足够的了。