k8s.gcr.io、registry.k8s.io镜像下载失败解决方案
问题
初始化Kubernetes集群时,很多人都可能遇到以下问题,部分镜像无法访问:
Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
这是因为gcr.io
、k8s.gcr.io
、registry.k8s.io
等镜像仓库因为一些原因不能访问。
解决方案
我们可以使用国内可以访问的其他镜像仓库,例如 DockerHub ,里面有很多好心人已经同步过来的镜像,可以直接使用,完美解决不能访问的问题。
例如:
myifeng/k8s.gcr.io_kube-proxy
myifeng/k8s.gcr.io_kube-apiserver
myifeng/k8s.gcr.io_kube-scheduler
myifeng/k8s.gcr.io_coredns_coredns
myifeng/k8s.gcr.io_etcd
myifeng/k8s.gcr.io_pause
仓库在这 myifeng,可以直接使用,版本很全。如果找不到自己的版本,还可以自己通过提ISSUE的方式,自动帮你同步,真的是良心了。
使用方法
- 先在
myifeng
中搜索自己需要的镜像和版本,如果有可以直接使用 - 如果仓库没有自己需要的镜像,则可以创建ISSUE进行搬运
- 标题里填写你所需要的镜像,例如
k8s.gcr.io/kube-scheduler:v1.24.3
- 自动搬运成功后,即可在国内通过
myifeng/k8s.gcr.io_kube-scheduler:v1.24.3
正常使用 - 更多已加速镜像请使用
myifeng
匹配规则
将路径中的 /
替换为 _
,并在前添加myifeng/
,即可对应加速后的镜像
将路径中的 _
替换为 /
,删去开头的myifeng/
,即可还原源镜像
源镜像 | 加速镜像 |
---|---|
nginx | myifeng/nginx |
k8s.gcr.io/kube-scheduler:v1.24.3 | myifeng/k8s.gcr.io_kube-scheduler:v1.24.3 |
k8s.gcr.io/coredns/coredns:v1.8.6 | myifeng/k8s.gcr.io_coredns_coredns:v1.8.6 |
k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0 | myifeng/k8s.gcr.io_sig-storage_csi-node-driver-registrar:v2.3.0 |