docker镜像默认的官网上传平台:https://hub.docker.com/,k8s运行时需要从google下载镜像(k8s.gcr.io),但该网被屏蔽了,怎样下载到所需镜像呢?
0. 怎样确认k8s所需基础镜像的版本?
kubeadm config images list --kubernetes-version=v1.12.1
1. 可在知道镜像名情况下到hub.docker.com上搜索相应的docker镜像,pull后修改相应的tag即可。
如:k8s.gcr.io/kube-apiserver:v1.14.1,直接搜索kube-apiserver,匹配相应版本号后pull即可,注意不同平台设备的镜像后缀不同,如64位X86平台:kube-apiserver-amd64。
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1
下载完成后需要更换成原来的tag:
docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver-amd64:v1.14.1
常用的hub.docker镜像地址:anjia0532,github:https://github.com/anjia0532/gcr.io_mirror。
地址转换方法:
gcr.io/namespace/image_name:image_tag # 等价于 anjia0532/namespace.image_name:image_tag # 特别的 k8s.gcr.io/{image}/{tag} <==> gcr.io/google-containers/{image}/{tag} <==> anjia0532/google-containers.{image}/{tag}
示例:kubeadm在Ubuntu16上安装k8s:
#kubeadm config images list --kubernetes-version=v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1 k8s.gcr.io/pause:3.1 k8s.gcr.io/etcd:3.3.10 k8s.gcr.io/coredns:1.3.1
下载镜像:
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1 docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1 docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1 docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.14.1 docker pull mirrorgooglecontainers/pause-amd64:3.1 docker pull mirrorgooglecontainers/etcd-amd64:3.3.10 docker pull kontenapharos/coredns-amd64:1.3.1
打标签:
docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1 docker tag mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1 docker tag mirrorgooglecontainers/kube-scheduler-amd64:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1 docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1 docker tag mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause:3.1 docker tag mirrorgooglecontainers/etcd-amd64:3.3.10 k8s.gcr.io/etcd:3.3.10 docker tag kontenapharos/coredns-amd64:1.3.1 k8s.gcr.io/coredns:1.3.1
2. 从gcr镜像服务器下载。许多公司提供了gcr的镜像服务器,可直接从服务器下载镜像。
如微软azure上的gcr镜像服务器:http://mirror.azure.cn/help/gcr-proxy-cache.html
GCR Proxy Cache服务器相当于一台GCR镜像服务器,国内用户可以经由该服务器从gcr.io下载镜像。
使用GCR Proxy Cache从gcr.io下载镜像
docker pull gcr.azk8s.cn/google_containers/<imagename>:<version>
例子
docker pull gcr.azk8s.cn/google_containers/pause-amd64:3.0 docker pull gcr.azk8s.cn/google_containers/kubedns-amd64:1.7
又如阿里云:registry.aliyuncs.com
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.13.1 docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.13.1
参考: