如何轻松的下载海外镜像
简介
在云计算和云原生环境下,我们会经常使用到海外镜像部署服务,如谷歌镜像仓库(k8s.gcr.io、gcr.io),还有RedHat镜像仓库(quay.io),遇到此类镜像仓库由于某种神秘力量,我们在国内是无法直接下载,本片文章将介绍如何在不魔法上网的情况下下载海外镜像。
仓库名称 |
k8s组件镜像 |
k8s.gcr.io其他镜像 |
及时性 |
优势 |
---|---|---|---|---|
阿里云镜像仓库(google_containers) |
支持 |
不支持 |
定时,存在时差 |
无 |
阿里云镜像仓库(k8sxio) |
支持 |
支持 |
定时,时差较小 |
同步时差小 |
中科大镜像仓库 |
不支持 |
不支持 |
未知 |
仅支持拉取quay.io镜像 |
lank8s.cn镜像仓库 |
支持 |
支持 |
代理,无时差 |
实时同步 |
DaoCloud镜像仓库 |
支持 |
支持 |
定时,时差较小 |
镜像仓库种类多 |
方法一:使用阿里云镜像仓库
众所周知阿里云镜像市场registry.aliyuncs.com/google_containers
仓库会定期同步k8s.gcr.io
的镜像,但目前只有Kubernetes组件的镜像,而且同步进度特别慢。而GitHub有位作者创建了一个k8sxio项目来对官方镜像进行时刻同步,并将同步的镜像上传到registry.aliyuncs.com/k8sxio
中提供网友下载:
- 源站:
docker pull k8s.gcr.io/kube-apiserve
- 改为:
docker pull registry.aliyuncs.com/k8sxio/kube-apiserver
方法二:使用中科大镜像仓库
quay.io
是Red Hat运营的镜像仓库,可以使用中科大镜像仓库代为拉取:
- 源站:
docker pull quay.io/kubevirt/virt-api:v0.45.0
- 改为:
docker pull quay.mirrors.ustc.edu.cn/kubevirt/virt-api:v0.45.0
方法三:使用lank8s.cn镜像仓库
lank8s.cn
是对上游k8s.gcr.io搭建的代理,k8s.gcr.io有的镜像那么lank8s.cn就可以拉取,该镜像站来自于作者:https://github.com/lank8s,优势是直接拉取,不存在时间差,而且支持k8s.gcr.io下的所有镜像,使用方式:
- 源站:
docker pull k8s.gcr.io/kube-apiserve
- 改为:
docker pull lank8s.cn/kube-apiserver
最佳实践
# 通过lank8s.cn加速安装kubeadm
kubeadm config images pull --image-repository=lank8s.cn
方法四:使用DaoCloud提供的同步仓库
通过DaoCloud的镜像同步仓库,只需要拉取镜像的前面添加m.daocloud.io
就可以轻松的拉取国外的镜像,具体信息可查看GitHub:https://github.com/DaoCloud/public-image-mirror
下面列举2个案例
- 下载docker.io的镜像
源站:docker pull docker.io/library/nginx:latest
改为:docker pull m.daocloud.io/docker.io/library/nginx:latest
- 下载k8s.gcr.io的镜像
源站:docker pull k8s.gcr.io/metrics-server/metrics-server:v0.6.1
改为:docker pull m.daocloud.io/k8s.gcr.io/metrics-server/metrics-server:v0.6.1
支持前缀替换的Registry
支持的源站 |
更换前缀的方式 |
拼接域名的方式 |
cr.l5d.io |
l5d.m.daocloud.io |
m.daocloud.io/cr.l5d.io |
docker.elastic.co |
elastic.m.daocloud.io |
m.daocloud.io/docker.elastic.co |
docker.io |
docker.m.daocloud.io |
m.daocloud.io/docker.io |
gcr.io |
gcr.m.daocloud.io |
m.daocloud.io/gcr.io |
ghcr.io |
ghcr.m.daocloud.io |
m.daocloud.io/ghcr.io |
k8s.gcr.io |
k8s-gcr.m.daocloud.io |
m.daocloud.io/k8s.gcr.io |
registry.k8s.io |
k8s.m.daocloud.io |
m.daocloud.io/registry.k8s.io |
mcr.microsoft.com |
mcr.m.daocloud.io |
m.daocloud.io/mcr.microsoft.com |
nvcr.io |
nvcr.m.daocloud.io |
m.daocloud.io/nvcr.io |
quay.io |
quay.m.daocloud.io |
m.daocloud.io/quay.io |
registry.jujucharms.com |
jujucharms.m.daocloud.io |
m.daocloud.io/registry.jujucharms.com |
rocks.canonical.com |
rocks-canonical.m.daocloud.io |
m.daocloud.io/rocks.canonical.com |
最佳实践
# 通过k8s-gcr.m.daocloud.io加速安装kubeadm
kubeadm config images pull --image-repository=k8s-gcr.m.daocloud.io