k8s 国内镜像下载方案
众所周知,国内是不太容易下载k8s.gcr.io
站点的镜像的
一、第一种方案:Azure中国镜像站
http://mirror.azure.cn/help/gcr-proxy-cache.html
Global | Proxy in China (Azure中国镜像) |
---|---|
dockerhub (docker.io) | dockerhub.azk8s.cn |
gcr.io | gcr.azk8s.cn |
k8s.gcr.io | gcr.azk8s.cn/google-containers |
quay.io | quay.azk8s.cn |
#这两条语句是等效的 docker pull k8s.gcr.io/kube-apiserver:v1.15.2 docker pull gcr.azk8s.cn/google-containers/kube-apiserver:v1.15.2 #这两条也是等效的 docker pull quay.io/xxx/yyy:zzz docker pull quay.azk8s.cn/xxx/yyy:zzz
二、第二种方案:直接 pull 用户mirrorgooglecontainers同步过的镜像
就当前来说,用户 mirrorgooglecontainers 在 docker hub 同步了所有 k8s 最新的镜像,先从这儿下载,然后修改 tag 即可
https://hub.docker.com/u/mirrorgooglecontainers
#这两条也是等效的 docker pull mirrorgooglecontainers/kube-scheduler:v1.15.2 docker pull k8s.gcr.io/kube-scheduler:v1.15.2
三、通过脚本进行批量下载
要下载镜像的名称,可以通过 kubeadm config images list
命令获取
[root@node-1 yum.repos.d]# kubeadm config images list --kubernetes-version=v1.15.2 k8s.gcr.io/kube-apiserver:v1.15.2 k8s.gcr.io/kube-controller-manager:v1.15.2 k8s.gcr.io/kube-scheduler:v1.15.2 k8s.gcr.io/kube-proxy:v1.15.2 k8s.gcr.io/pause:3.1 k8s.gcr.io/etcd:3.3.10 k8s.gcr.io/coredns:1.3.1
脚本一:通过Azure中国镜像站进行下载
#!/bin/bash # download k8s 1.15.2 images # get image-list by 'kubeadm config images list --kubernetes-version=v1.15.2' # gcr.azk8s.cn/google-containers == k8s.gcr.io images=( kube-apiserver:v1.15.2 kube-controller-manager:v1.15.2 kube-scheduler:v1.15.2 kube-proxy:v1.15.2 pause:3.1 etcd:3.3.10 coredns:1.3.1 ) for imageName in ${images[@]};do docker pull gcr.azk8s.cn/google-containers/$imageName docker tag gcr.azk8s.cn/google-containers/$imageName k8s.gcr.io/$imageName docker rmi gcr.azk8s.cn/google-containers/$imageName done
脚本二:通过 Azure 中国镜像站进行下载,执行脚本时需要指定版本
#!/bin/bash # download k8s 1.15.2 images # get image-list by 'kubeadm config images list --kubernetes-version=v1.15.2' # gcr.azk8s.cn/google-containers == k8s.gcr.io #images=( #kube-apiserver:v1.15.2 #kube-controller-manager:v1.15.2 #kube-scheduler:v1.15.2 #kube-proxy:v1.15.2 #pause:3.1 #etcd:3.3.10 #coredns:1.3.1 #) if [ $# -ne 1 ];then echo "please user in: ./`basename $0` KUBERNETES-VERSION" exit 1 fi version=$1 images=`kubeadm config images list --kubernetes-version=${version} |awk -F'/' '{print $2}'` for imageName in ${images[@]};do docker pull gcr.azk8s.cn/google-containers/$imageName docker tag gcr.azk8s.cn/google-containers/$imageName k8s.gcr.io/$imageName docker rmi gcr.azk8s.cn/google-containers/$imageName done
脚本三:通过用户mirrorgooglecontainers 在 docker hub的镜像进行下载
#!/bin/bash # download k8s 1.15.2 images # get image-list by 'kubeadm config images list --kubernetes-version=v1.15.2' images=( kube-apiserver:v1.15.2 kube-controller-manager:v1.15.2 kube-scheduler:v1.15.2 kube-proxy:v1.15.2 pause:3.1 etcd:3.3.10 ) for imageName in ${images[@]};do docker pull mirrorgooglecontainers/$imageName docker tag mirrorgooglecontainers/$imageName k8s.gcr.io/$imageName docker rmi mirrorgooglecontainers/$imageName done docker pull coredns/coredns:1.3.1 docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1 docker rmi coredns/coredns:1.3.1