Docker / Kubernetes / 云计算

k8s.gcr.io 镜像国内拉不下来解决思路

温馨提示:本文最后更新于2021-08-28 21:50:34,某些文章具有时效性,若有错误或已失效,请在下方留言或提交工单提交工单
浅时光 · 4月12日 · 2021年 · · 本文1528个字,预计阅读4分钟 68035次已读

一、场景描述


大家都知道在部署K8S时,有一些组件的镜像地址是存储在k8s.gcr.io上的,而对于国内用户来说,是无法访问到的,国内想要拉取的方法网上也可以搜索到很多,要不就是自己搞个代理,然后通过代理的方式去下载,要不就是替换成国内的镜像地址,但是对于很多用户其实搞代理也比较困难,替换成国内镜像代理地址要不就是新版本下载不到,反正就是很坎坷呀…;今天我分享下我的一个解决思路,仅供参考!

二、操作实践


  • 假设我们需要拉取的镜像是 gcr.io/kubernetes-helm/tiller:v2.16.10
  • 首先搜索一下哪些源提供了你需要拉的镜像:
docker search tiller
k8s.gcr.io 镜像国内拉不下来解决思路-浅时光博客
  • 从结果可以看出 sapcc/tiller 是缓存 gcr.io/kubernetes-helm 的镜像,我们去docker.hub 上面去搜索一下 sapcc/tiller,验证一下源信息:
k8s.gcr.io 镜像国内拉不下来解决思路-浅时光博客
  • 发现版本信息也吻合,那直接将地址换成该第三方的即可:
docker pull sapcc/tiller:v2.16.10
  • 拉好之后可以查看本地镜像:
docker images
  • 再通过以下命令 把来下来的镜像修改成 k8s.gcr.io 域名下的:
docker tag sapcc/tiller:v2.16.10 gcr.io/kubernetes-helm/tiller:v2.16.10
这就相当于从别的服务上,把镜像已经拉到本地了。

三、其他方式


另外的一种方式,是最靠谱的,就是自己买台国外的服务器,然后通过国外的服务器把镜像下载下来,进行打包后导入到国内的服务器上,然后将导入的镜像重新命名和打TAG;还有一种方式也是需要有国外的服务器,然后通过Docker开源的registry实现代理缓存k8s.gcr.io仓库,这种方式比较麻烦。

例如我部署ingress-nginx时,需要用到的镜像就是k8s.gcr.io仓库的,这里我进行演示

1、下载ingress镜像

  • 查看ingress-nginx所需要下载的镜像
[[email protected] ingress-nginx]# grep image deploy.yaml
k8s.gcr.io 镜像国内拉不下来解决思路-浅时光博客
  • 登入到国外的服务器上下载对应的镜像
docker pull k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0
docker pull k8s.gcr.io/ingress-nginx/controller:v1.0.0

2、打包镜像为tar包

  • 查看下载的镜像ID
docker images | grep ingress-nginx 
k8s.gcr.io 镜像国内拉不下来解决思路-浅时光博客
  • 打包镜像
docker save ef43679c2cae -o /root/ingress-nginx-controller_v1.tar
docker save 17e55ec30f20 -o /root/ingress-nginx-kube-webhook-certgen_v1.tar

3、导入到国内服务器

docker load -i ingress-nginx-controller_v1.tar 
docker load -i ingress-nginx-kube-webhook-certgen_v1.tar

4、镜像重命名打TAG

说明:导入的镜像名称和TAG显示为<none>,但是镜像的ID跟打包之前的ID是一样的,我们根据镜像ID可以确定镜像的名称和TAG叫啥,然后给导入进来的镜像重新命名和打TAG

docker tag ef43679c2cae k8s.gcr.io/ingress-nginx/controller:v1.0.0
docker tag 17e55ec30f20 k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0



本文作者:浅时光
原文链接:https://www.dqzboy.com/5306.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可
转载时请以超链接形式标明文章原始出处和作者信息

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

    本站已稳定运行: | 耗时 0.403 秒 | 查询 10 次 | 内存 38.10 MB