一开始是想用 Jenkins 来做的,不过我们这边的代码放在code上,愣是没找到 Jenkins 的插件配置 git 的 hook ,碰巧发现了 code 这个平台的 Flow 工具,于是就用了Code + Flow + 自建K8 这一套来实现,原理上都是一样的 ,web hook 提交打包镜像,k8 发布部署容器,运行服务。

1. 包含工具

Codeup 等同于 GitlabCoding 等代码托管平台
Flow 等同于JenkinsCI集成工具
自建 K8s 集群 用于 CD发布 服务

2. 流水线

先来看看最终效果
最终效果
运行结果
在这里插入图片描述

3. 准备

首先 ,需要准备
存放在 Code 的代码库,代码里包含 构建 Docker 容器的 Dockerfile ,编排容器的yml文件,我的目录结构如下:
目录结构
黄色的是 Dockfile 和 run dockerfile 中 用到的 sh

Flow 配置流程

Flow 是 阿里的一款CI工具,类似 Jenkins ,配置如下3步:

在这里插入图片描述
先来配置第一步,代码源 和 web hook
在这里插入图片描述
设置 代码仓库 ,开启 源码触发,也就是 webhook ,在代码仓库也添加配置,其实和其他的工具都差不多流程
在这里插入图片描述
第二步,设置 docker 镜像打包的 dockerfile 位置,这也是为啥要把dockerfile 放在仓库中的原因,以及设置 dokcerfile 推送的地址 ,由于是阿里自家的工具,这里都是一套阿里的,直接配置阿里镜像仓库
在这里插入图片描述
如图,基本没什么好说的,授权会跳转到阿里云,填写 RAM ,这一步提供了 你的 docker registry 的 pull push 权限,相当于替代了 docker login 或者 kubectl 的 secert ,registry 身份验证

第三步,k8发布
按道理来说,这里的步骤都是自己选择定制的,可以选择 k8 发布的组件,然后配置,提供了k8自建集群和 k8阿里云集群的两种选择,我这里都没有用,我是配置了 k8master 节点的ssh ,然后自己配置了 sh 脚本,去定制 k8发布的逻辑
在这里插入图片描述
至此,流水线配置完成,我的这个流水线是发布10个节点 ,来看下效果

效果

仓库 push 之后通过 webhook 触发 docker 镜像构建
在这里插入图片描述
推送到阿里云
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐