Day 02 海外镜像构建

一、找到我们需要的网络插件

1.Github搜索我们需要的插件

国内推送镜像 海外镜像服务_国内推送镜像

然后我们阅读readme文档,上面有如何工作,介绍等信息,我们找到找到如下内容

国内推送镜像 海外镜像服务_git_02

我们的是1.19版本,所以需要使用这条命令

2.查看文件内容

2.1 我们可以直接查看到里面的相关信息,浏览器输入地址

国内推送镜像 海外镜像服务_docker_03

2.2 也可以通过linux的wget功能下载下来查看
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 有用  默认保存为 kube-flannel.yml

查看

vim kube-flannel.yml

国内推送镜像 海外镜像服务_docker_04

2.3 分析

因为这是一个部署文件,他是依赖于docker的,那么它部署的应该就是docker 镜像,那么我么来查看一下 它里面的镜像

cat kube-flannel.yml | grep image
--------------------------------------------------
        image: quay.io/coreos/flannel:v0.13.1-rc1
        image: quay.io/coreos/flannel:v0.13.1-rc1  # 这其实是一个镜像 用了两次

我们可以尝试着取拉下来,但是它默认是国外的源,可能会拉不下来

docker pull quay.io/coreos/flannel:v0.13.1-rc1

拉不下来话

我们可以通过云服务平台,通过他们的海外源拉到国内的自己项目的仓库里,然后从自己的仓库拉去

二、通过云服务平台构建镜像

1 登录云服务平台,通过控制台进入服务列表进入代码托管服务

1.1 找到代码托管

国内推送镜像 海外镜像服务_国内推送镜像_05

1.2创建代码项目

如果第一次进入是需要购买的 也不用花钱 0元购买,然后我们立即使用创建项目仓库

这里创建的是k8s项目,后面要用到

注意:第一次创建镜像(后面)的时候需要绑定自己的云code账号,但是新版本是无法绑定的,我们需要使用旧版本,然后输入邮箱令牌进行创建!

国内推送镜像 海外镜像服务_国内推送镜像_06

1.3跳转到已创建的项目-添加文件分支

国内推送镜像 海外镜像服务_镜像源_07

1.4 创建Dockefile文件

这里需要是创建flannel文件夹然后在创建Dockerfile文件 如果只写一个默认是文件,不是文件夹

国内推送镜像 海外镜像服务_镜像源_08

国内推送镜像 海外镜像服务_git_09

2.创建镜像项目仓库

国内推送镜像 海外镜像服务_云服务_10

国内推送镜像 海外镜像服务_国内推送镜像_11

这样仓库就创建好了,然后我们进入到一个仓库,构建镜像

3.镜像构建

国内推送镜像 海外镜像服务_云服务_12

点击构建------------>添加规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-32eaLl4X-1607442152410)(C:\Users\S\AppData\Roaming\Typora\typora-user-images\image-20201208210942726.png)]

规则添加完后就可以构建了

国内推送镜像 海外镜像服务_云服务_13

这样镜像就构建好了

4.使用

回到k8s网络插件的安装,由于1.17版本之上需要执行kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml命令,这条命令的主要的内容是从海外地址拉取镜像,由于各种原因导致我们无法从海外拿到镜像,但是我们可以拿到这个文件,所以我们需要通过修改这个文件中的镜像源,来实现拉取镜像的目的

那么我们通过海外镜像构建拿到了需要的镜像,所以我们可以将海外镜像源修改为我们自己的就可以了

修改kube-flannel.yml镜像源配置

vim kube-flannel.yml

a insert 模式进行编辑 
/image 找到镜像位置

国内推送镜像 海外镜像服务_镜像源_14

替换为自己的镜像源

国内推送镜像 海外镜像服务_docker_15

镜像版本与步骤三中的一致

registry.cn-hangzhou.aliyuncs.com/k8s2me/flannel99:v0.13.1-crl

注意 image: 后面是有一个空格的!

国内推送镜像 海外镜像服务_git_16

kubectl apply -f kube-flannel.yml

最后等他初始化完成