k8s.gcr.io Pull失敗
安裝新版本的Kubernetes過程中,需要從k8s.grc.io倉庫中拉取所需鏡像文件,但由於GFW導致無法正常拉取
本文將介紹如何繞過此問題,來完成業務的部署。
[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver:v1.14.1
[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager:v1.14.1
[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-scheduler:v1.14.1
[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-proxy:v1.14.1
[ERROR ImagePull]: failed to pull image k8s.gcr.io/pause:3.1
[ERROR ImagePull]: failed to pull image k8s.gcr.io/etcd:3.2.24
[ERROR ImagePull]: failed to pull image k8s.gcr.io/coredns:1.2.6
解決方案
docker.io倉庫對google的容器做了鏡像,可以通過下列命令下拉取相關鏡像:
docker pull mirrorgooglecontainers/kube-apiserver:v1.14.1
docker pull mirrorgooglecontainers/kube-controller-manager:v1.14.1
docker pull mirrorgooglecontainers/kube-scheduler:v1.14.1
docker pull mirrorgooglecontainers/kube-proxy:v1.14.1
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.2.24
docker pull coredns/coredns:1.2.6
通過docker tag命令來修改鏡像的標籤:
docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1
...
docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
docker images 導入導出
導出鏡像
如果要存出鏡像到本地文件,可以使用docker save命令。例如,存出本地的ubuntu:14.04鏡像爲文件ubuntu_14.04.tar:
$ sudo docker save -o /home/user/images/ubuntu_14.04.tar ubuntu:14.04
導入鏡像
可以使用docker load從存出的本地文件中再導入到本地鏡像庫,例如從文件ubuntu_14.04.tar導入鏡像到本地鏡像列表,如下所示:
$ sudo docker load --input ubuntu_14.04.tar