无法访问gcr.io的几种解决办法

时间:2024-01-24 18:26:48

无法访问gcr.io的几种解决办法

由于一些原因,在国内无法访问gcr.io上的镜像,在安装kubernetes时,很多官方镜像又是都存在gcr.io上,在国内的一些教程中大都使用阿里云的镜像,但是由于阿里云镜像地址更换等原因,当按照文档使用阿里云镜像时可能已经变得不可用.下面结合实际经验,列举出几种常用的办法来解决这个问题

使用阿里云镜像地址

  • 地址1registry.aliyuncs.com/google_containers
  • 地址2registry.cn-hangzhou.aliyuncs.com/google_containers

使用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