在国内部署k8s最大的难点是镜像下载,比如这个错误信息:
Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
由于众所周知的原因,国内的网络环境是很难从k8s.gcr.io等镜像源里面下载镜像。这种情况下的普遍解决办法是:
- 直接使用国内镜像代理仓库(如阿里云代理仓库)进行镜像拉取下载,pull成功拉取之后,再将镜像tag打成
k8s.gcr.io
对应的镜像。但这种方式有时候会遇到版本滞后等问题。 - 有时候访问
mirrorgooglecontainers
是没问题的,也可以从mirrorgooglecontainers
上获取镜像,pull之后再将镜像tag打成k8s.gcr.io
对应的镜像。 - 在nat网关处部署代理服务,对
k8s.gcr.io
域名进行直接代理。这种方案应该是最简单的。
在国内使用k8s,一般建议将imagePullPolicy策略改为IfNotPresent,即如果本地有镜像就优先使用本地镜像,不每次都进行额外的拉取动作,或者在上面的步骤中,直接将镜像放到自建harbor私有仓库里面,后续直接指向harbor私有仓库的地址。
补充上述第一条中阿里云代理仓库的地址,其地址为:registry.aliyuncs.com/google_containers
比如以下载 k8s.gcr.io/coredns:1.6.5
为例,就可以代理为:registry.aliyuncs.com/google_containers/coredns:1.6.5
详细步骤如下:
首先尝试直接从k8s.gcr.io上拉取
# docker pull k8s.gcr.io/coredns:1.6.5
Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
看到以上这个错误,就知道无法直接访问了,于是直接使用代理仓库去拉取
# docker pull registry.aliyuncs.com/google_containers/coredns:1.6.5
1.6.5: Pulling from google_containers/coredns
c6568d217a00: Pull complete
fc6a9081f665: Pull complete
Digest: sha256:7ec975f167d815311a7136c32e70735f0d00b73781365df1befd46ed35bd4fe7
Status: Downloaded newer image for registry.aliyuncs.com/google_containers/coredns:1.6.5
registry.aliyuncs.com/google_containers/coredns:1.6.5
然后对拉取完成的镜像进行tag打标签
# docker tag registry.aliyuncs.com/google_containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
执行docker images可以看到刚打好的镜像名称
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/coredns 1.6.5 70f311871ae1 1 years ago 41.6MB
registry.aliyuncs.com/google_containers/coredns 1.6.5 70f311871ae1 1 years ago 41.6MB
我们要的镜像就成功被拉取啦,你可以把多余的代理镜像的tag删掉,不删也没啥问题。
© 版权声明
本站所有文章,仅代表文章作者个人观点,如对观点有疑义时不用怀疑,您绝对是对的。
您也可以联系文章作者本人进行修改,若内容侵权或非法,可以联系我们进行处理。
任何个人或组织,转载、发布本站文章到任何网站、书籍等各类媒体平台,必须在文末署名文章出处并链接到本站相应文章的URL地址。
本站文章如转载自其他网站,会在文末署名原文出处及原文URL的跳转链接,如有遗漏,烦请告知修正。
如若本站文章侵犯了原著者的合法权益,亦可联系我们进行处理。
您也可以联系文章作者本人进行修改,若内容侵权或非法,可以联系我们进行处理。
任何个人或组织,转载、发布本站文章到任何网站、书籍等各类媒体平台,必须在文末署名文章出处并链接到本站相应文章的URL地址。
本站文章如转载自其他网站,会在文末署名原文出处及原文URL的跳转链接,如有遗漏,烦请告知修正。
如若本站文章侵犯了原著者的合法权益,亦可联系我们进行处理。
THE END
hi5个月前0
请问有详细一点的自己搭建的教程吗你好6个月前0
你好,可以再帮我看看吗? 我已经按照你的方法设定了,还是一样,wordpress后台的 Purge Varnish Cache 插件还是清除不到cache,依旧显示 the varnish control terminal is not responding at。谢谢https://mjj.today/i/Srk2Tz https://mjj.today/i/Srkcoi你好6个月前0
对,你说的没错,我配置的时候改了一些东西,现在我按照你的教学,可以启动了,网页可以缓存了,不过wordpress 清除cache 那个插件没用的,我输入本地回环地址127.0.0.1 :6082 ,再输入API key ,插件显示the varnish control terminal is not responding at 127.0.0.1:6082,就你图片那样,然后试一下点击清除cache 那里,他显示error,研究了一天,还是没有不行。你好6个月前1
你好,为啥我按照你的方法,到第三部分,去到真正后源的服务器设定Varnish 部分,我填了真正后源的IP跟端口跟域名,然后重启 Varnish ,就出现这样了? 这是怎么回事? 谢谢[Linux] AMH 7.1 https://amh.sh[varnish-6.6 start] ================================================== =========== [OK] varnish-6.6 is already installed. Could not delete 'vcl_boot.1713549650.959259/vgc.sym': No such file or directory Error: Message from VCC-compiler: VCL version declaration missing Update your VCL to Version 4 syntax, and add vcl 4.1; on the first line of the VCL files. ('/home/usrdata/varnish/default.conf' Line 1 Pos 1) ...#---Running VCC-compiler failed, exited with 2 VCL compilation failedchu6个月前0
很完善的教程‘hu6个月前0
我用gmail EMAIL_SERVER="smtp://********@gmail.com:bpyfv*********chry@smtp.gmail.com:587"叽喳6个月前0
MAIL_SERVER="smtp://no-reply@vort.me:password123@wednesday.mxrouting.net:587"大佬 这个使用outlook 或者gmail 是什么样子的格式? 邮寄已经开启smtp了hu6个月前0
输入框的问题解决了,我没有设置反代,NEXTAUTH_URL改为域名+端口就好了