由於一些原因,在國內無法訪問gcr.io上的鏡像,在安裝kubernetes時,很多官方鏡像又是都存在gcr.io上,在國內的一些教程中大都使用阿里雲的鏡像,但是由於阿里雲鏡像地址更換等原因,當按照文檔使用阿里雲鏡像時可能已經變得不可用.下面結合實際經驗,列舉出幾種常用的辦法來解決這個問題
使用阿里雲鏡像地址
使用dockerhub下的mirrorgooglecontainers
這個域名下同步了很多谷歌鏡像,比如說要下載kube-proxy-amd64:v1.11.3
這個鏡像,可以使用docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.11.3
來進行下載,下載以后對鏡像重新打標簽:
docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.11.3 k8s.gcr.io/kube-proxy-amd64:v1.11.3
使用國內作者制作的gcr.io鏡像安裝工具
項目地址: https://github.com/zhangguanzhang/gcr.io
查詢namespace
[centos@k8s-master tekton]$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io
cloud-builders
cloud-datalab
cloudsql-docker
distroless
google-appengine
google-samples
google_containers
google_samples
heptio-images
istio-release
k8s-minikube
kaniko-project
knative-releases
knative-samples
kubeflow-images-public
kubernetes-e2e-test-images
kubernetes-helm
linkerd-io
runconduit
spinnaker-marketplace
tf-on-k8s-dogfood
查詢某一名稱空間下鏡像列表
[centos@k8s-master tekton]$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io/google_containers
addon-builder
addon-resizer-amd64
addon-resizer-arm
addon-resizer-arm64
addon-resizer-ppc64le
addon-resizer-s390x
addon-resizer
aggregator
alpine-iptables-amd64
alpine-iptables-arm
alpine-iptables-arm64
alpine-with-bash
apparmor-loader
busybox
cadvisor
cassandra-e2e-test
cassandra
check-metadata-concealment
cloud-controller-manager-amd64
cloud-controller-manager-arm
cloud-controller-manager-arm64
cloud-controller-manager-ppc64le
cloud-controller-manager-s390x
cloud-controller-manager
cloudsql-authenticator
cluster-autoscaler
cluster-proportional-autoscaler-amd64
cluster-proportional-autoscaler-arm
cluster-proportional-autoscaler-arm64
cluster-proportional-autoscaler-ppc64le
clusterapi-tester
clusterregistry
conformance-amd64
conformance-arm
conformance-arm64
conformance-ppc64le
conformance-s390x
conformance
coredns
...
查詢某一鏡像的版本所有版本tag
[centos@k8s-master tekton]$ curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s search gcr.io/google_containers/coredns
1.0.1
1.0.1__amd64_linux
1.0.1__arm64_linux
1.0.1__arm_linux
1.0.1__ppc64le_linux
1.0.1__s390x_linux
1.0.6
1.0.6__amd64_linux
1.0.6__arm64_linux
1.0.6__arm_linux
1.0.6__ppc64le_linux
1.0.6__s390x_linux
1.1.3
1.1.3__amd64_linux
1.1.3__arm64_linux
1.1.3__arm_linux
1.1.3__ppc64le_linux
1.1.3__s390x_linux
1.2.2
1.2.3
1.2.4
1.2.6
1.3.0
1.3.1
拉取某一鏡像
curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s -- gcr.io/google_containers/kube-apiserver-amd64:v1.11.3
以上搜索的時候,如果僅指定了
gcr.io
則搜索下面所有的名稱空間,如果指定的名稱空間,則搜索指定名稱空間下的所有鏡像,如果指定了鏡像,則搜索鏡像的所有版本信息
使用search命令的時候,如果沒有安裝jq則會提示安裝jq.jq在centos下安裝方法:
- 安裝EPEL源:
yum install epel-release
- 安裝完EPEL源后,可以查看下jq包是否存在:
yum list jq
- 安裝jq:
yum install jq