docker 下载国外镜像问题

2021-07-23 15:30:21 +08:00
 vincent927

有什么办法可以一劳永逸解决无法下载国外镜像的问题,如 k8s.gcr.io 。不想用国内镜像源然后再 tag 改名,觉得太麻烦了。

  Type     Reason     Age                 From               Message
  ----     ------     ----                ----               -------
  Normal   Scheduled  3m3s                default-scheduler  Successfully assigned rook-ceph/csi-cephfsplugin-56p5v to node02.k8s.lo
  Normal   Pulled     89s                 kubelet            Container image "quay.io/cephcsi/cephcsi:v3.3.1" already present on machine
  Warning  Failed     89s                 kubelet            Failed to pull image "k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.2.0": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     89s                 kubelet            Error: ErrImagePull
  Normal   Pulled     89s                 kubelet            Container image "quay.io/cephcsi/cephcsi:v3.3.1" already present on machine
  Normal   Created    89s                 kubelet            Created container csi-cephfsplugin
  Normal   Started    89s                 kubelet            Started container csi-cephfsplugin
  Normal   Created    89s                 kubelet            Created container liveness-prometheus
  Normal   Started    89s                 kubelet            Started container liveness-prometheus
  Normal   BackOff    87s (x2 over 88s)   kubelet            Back-off pulling image "k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.2.0"
  Warning  Failed     87s (x2 over 88s)   kubelet            Error: ImagePullBackOff
  Normal   Pulling    73s (x2 over 3m3s)  kubelet            Pulling image "k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.2.0"
2908 次点击
所在节点    问与答
16 条回复
vincent927
2021-07-23 15:36:42 +08:00
目前已知的就是 docker 通过代理科学上网
amwyyyy
2021-07-23 15:52:13 +08:00
肉身翻墙
jingslunt
2021-07-23 16:06:34 +08:00
gcr.ioquay.io 域名通过代理科学上网也有问题,除非用 vpn 全局模式。
如果用 rancher 部署的,部署 csi 插件应该没啥问题

如果部署 k8s 通用的办法还是去替换,可参考以下 shell 脚本
https://github.com/lework/kainstall/blob/master/kainstall-centos.sh
社区比较受欢迎的有 sealos(阿里的 sealer),KubeSphere(青云的),Kubesprary(ansible 的需改镜像)

或者通过 cncf 认证的部署方式,比较有名的是 rancher 的 rke2(rancherd)
其中有几个是国内公司:
XiLingHost
2021-07-23 16:31:26 +08:00
1.先用 artifactory 或者 nexus 搭镜像站
2.配置 artifactory 或者 nexus 使用代理
3.在 /etc/docker/daemon.json 中把镜像配置为你搭建的镜像站的地址
Illusionary
2021-07-23 17:09:10 +08:00
1 、准备一台外国小鸡,安装 docker,在上面 pull 镜像
2 、准备一个国内仓库,比如阿里云容器镜像服务,个人版
4 、把你小鸡上的镜像打 tag,推回阿里云仓库
5 、你需要部署服务器上使用已回国的镜像地址
efaun
2021-07-23 17:12:41 +08:00
来生别在种花家
vincent927
2021-07-23 17:14:53 +08:00
@jingslunt 感谢,你说的都相当于是经过二次开发的或者套一个壳部署,我想用 k8s 官方的,如 kubeadm 。
anonymous256
2021-07-23 18:32:38 +08:00
恶心啊。什么时候才有不受限制的互联网访问权?
thet
2021-07-23 18:35:54 +08:00
路由器搭代理
lindas
2021-07-23 21:20:03 +08:00
@anonymous256 知足吧,现在还能收到境外短信
Lightbright
2021-07-23 21:21:28 +08:00
如果是虚拟机的话,可以通过外面物理机的 TUN/TAP 透明代理整个虚拟机的网络。一劳永逸
waising
2021-07-24 00:59:48 +08:00
还是笨方法,先开 docker 代理拉取镜像到本地再推送到私有镜像仓库.
arischow
2021-07-24 01:06:37 +08:00
Mac 的话,Surge 或者 Clash 网关模式
集群上的话,把 Helm Chart / K8S YAML 要用的镜像同步到自己云服务商的私有镜像仓库,再 override 一下配置
stille
2021-07-24 01:13:02 +08:00
我是国外服务器搭个 registry 代理 一劳永逸!
kidlj
2021-07-24 01:50:43 +08:00
$ cat /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://172.17.52.1:8118"
Environment="HTTPS_PROXY=http://172.17.52.1:8118"

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
zhanggong
2021-07-24 12:15:15 +08:00
@anonymous256 门只会越关越死

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791327

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX