1 背景

在云计算和云原生的环境下,不可避免的会使用很多镜像创建容器,其中有些镜像只有谷歌镜像仓库才有,但是国内不可以直接下载谷歌仓库的镜像,下面推荐几种方法,

  • k8s.gcr.io/gcr.io 是谷歌的镜像仓库,国内访问不了,
  • quay.io 是 RedHat 的镜像仓库,可以访问,但速度较慢。

2 替代方案

2.1 使用现成的镜像代理仓库下载镜像

registry.aliyuncs.com/google_containers是定时同步kubernetes的镜像到阿里镜像仓库服务的,但只是K8S组件的镜像,阿里云镜像仓库有谷歌和RedHat的镜像,但是不全。

当下载k8s.gcr.io,gcr.io镜像和quay.io镜像,可以把k8s.gcr.io,gcr.io, quay.io镜像换成阿里云镜像下载,如下所示:

[root@k8scloude3 ~]# docker pull k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0
#换成
[root@k8scloude3 ~]# docker pull registry.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.3.0
#或者换为
[root@k8scloude3 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar:v2.3.0

2.2 使用lank8s.cn镜像仓库

lank8s.cn是国内安装K8S的基本镜像站,网址为:lank8s · GitHub 。gcr.lank8s.cn提供的镜像包括: /google_samples的镜像,/kubebuilder的镜像,/istio-release的镜像,/tekton-releases的镜像,/distroless的镜像,/google-containers的镜像。

使用kubeadm搭建Kubernetes集群时候,可以使用如下命令(关于完整安装部署Kubernetes(k8s)集群,可以查看博客《Centos7 安装部署Kubernetes(k8s)集群》https://www.cnblogs.com/renshengdezheli/p/16686769.html):

#其中使用image-repository参数指定镜像的仓库为lank8s.cn即可
[root@k8scloude3 ~]# kubeadm init --image-repository=lank8s.cn --kubernetes-version=v1.22.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap 

当下载k8s.gcr.io,gcr.io镜像时候,可以使用 lank8s.cn镜像,对应关系为 k8s.gcr.io –> lank8s.cn,gcr.io –> gcr.lank8s.cn,如下所示:

[root@k8scloude2 ~]# docker pull gcr.io/google-samples/microservices-demo/emailservice:v0.4.0
#换成
[root@k8scloude2 ~]# docker pull gcr.lank8s.cn/google-samples/microservices-demo/emailservice:v0.4.0

[root@k8scloude2 ~]# docker pull k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0
#换成
[root@k8scloude2 ~]# docker pull lank8s.cn/sig-storage/csi-node-driver-registrar:v2.3.0

2.3 使用中科大镜像

quay.io是Red Hat运营的镜像库,虽然没有被墙,但下载还是比较慢,可以使用中科大镜像,如下所示:

[root@k8scloude2 ~]# docker pull quay.io/kubevirt/virt-api:v0.45.0
#换成
[root@k8scloude2 ~]# docker pull quay.mirrors.ustc.edu.cn/kubevirt/virt-api:v0.45.0

 

02-06 15:45