利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像

国内顺畅下载k8s.gcr.io的镜像

1. 起因

配置kube-dns是3个k8s.gcr.io的镜像无法下载,报错如下

Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

需要下载的镜像如下:

image: k8s.gcr.io/k8s-dns-kube-dns:1.15.10
image: k8s.gcr.io/k8s-dns-dnsmasq-nanny:1.15.10
image: k8s.gcr.io/k8s-dns-sidecar:1.15.10

2. 解决方法

github配置Dockerfile,使用阿里云镜像构建海外机构建.
再配置阿里云镜像进行下载镜像.
下面就按这个思路一步步操作.

3. 在github配置Dockerfile

登录github
https://github.com/
左上角创建仓库,当然也可以和其他共用.
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第1张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第2张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第3张图片
不同的镜像用不同的目录进行区分,创建目录和创建文件一样就是Add file下的Create new file
不同的是输入目录名后加个/ 这样目录就有了,在后面的空格里输入文件名就好了.
这里文件名就写Dockerfile
内容如下:

FROM k8s.gcr.io/k8s-dns-kube-dns:1.15.10
MAINTAINER Q

依次创建3个目录和Dockerfile,镜像路径就直接从之前grep出来的url复制进去就好了
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第4张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第5张图片
重复3次我们得到了这样3个目录,目录中各有1个Dockerfile
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第6张图片

4. 配置阿里镜像代理

4.1 登陆控制台

登陆阿里云控制台–>容器镜像
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第7张图片
https://cr.console.aliyun.com/cn-shanghai/instances
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第8张图片

4.2 创建命名空间

如果没有创建过命名空间,那么就创建,如果已经有了可以共用
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第9张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第10张图片

4.3 创建镜像仓库

利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第11张图片
第一次会需要到github授权登录一次
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第12张图片

4.3 构建规则

利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第13张图片
这里版本可以和yml里的一样,也可以写latest,推荐第一种因为只会构建一次
依次将3个镜像配置好.
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第14张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第15张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第16张图片

4.4 构建镜像

点击立即构建
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第17张图片
复制这里的内容,***是账号隐藏部分,手动补全
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第18张图片

4.5 镜像服务密码设置

利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第19张图片
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第20张图片
这里的密码可以和登录密码一样,也可以不一样.

5. 下载镜像

登录后用docker pull下载镜像
如果不清楚怎么下载可以到这个页面查看.
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第21张图片
后面的版本号就是刚才这里写的,如果latest就写latest,我这里是1.15.10
利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第22张图片

利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第23张图片

5.1 镜像打tag

docker tag registry.cn-shanghai.aliyuncs.com/qiuqin/k8s-dns-sidecar:1.15.10 harbor.intra.com/kube-dns/k8s-dns-sidecar:1.15.10
docker tag registry.cn-shanghai.aliyuncs.com/qiuqin/k8s-dns-kube-dns:1.15.10 harbor.intra.com/kube-dns/k8s-dns-kube-dns:1.15.10
docker tag registry.cn-shanghai.aliyuncs.com/qiuqin/k8s-dns-dnsmasq-nanny:1.15.10 harbor.intra.com/kube-dns/k8s-dns-dnsmasq-nanny:1.15.10

5.2 上传到harbor

docker push harbor.intra.com/kube-dns/k8s-dns-dnsmasq-nanny:1.15.10
docker push harbor.intra.com/kube-dns/k8s-dns-dnsmasq-nanny:1.15.10
docker push harbor.intra.com/kube-dns/k8s-dns-kube-dns:1.15.10

6. 修改yml文件

sed -i 's/k8s.gcr.io/harbor.intra.com\/kube-dns/g' /root/dns/kube-dns/kube-dns.yml 

利用阿里云下载国外镜像,国内顺畅下载k8s.gcr.io的镜像_第24张图片
至此就可以尝试部署了

你可能感兴趣的:(Linux,linux)