Jenkins 与Docker/Kubernetes的自动化CI流水(笔记)

伊言:近日公司有原生未来创意比赛,有涉及到这些故习之,落地之。


Jenkins 与Docker/Kubernetes的自动化CI流水(笔记)

一、CI/CD

        持续集成(continuous Integration,CI):代码合并、构建、部署、测试都在一起。不断执行这个过程,并对结果反馈。

        持续部署(Continuous Deployment,CD): 部署到测试环境、预生产环境、生产环境。

        持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用

 

 CI/CD 的最终目的是自动化,减少人工干预,提高总体的产品交付质量。

 

 非容器化的CI/CD常出现因为环境不一致导致各种问题。

 

 Pipeline优势:

  • 项目发布可视化,明确阶段,方便处理问题
  • 一个Jenkinsfile文件管理整个项目生命周期
  • Jenkinsfile可以放到项目代码中版本管理

 

 

 

 

 

 Jenkinsfile 文件就是指pipeline script的脚本保存的文件。在流水线中,可以使用pipeline脚本文件,处理文件比之前每个项目都点击按钮去修改配置要方便。

Jenkinsfile保持在仓库中,在Jenkins里面调用即可:

 

 Jenkins 与Docker/Kubernetes的自动化CI流水实践

 

 

 下面内容是核心,有4个步骤:拉取代码-代码编译-打包成镜像推送到镜像仓库-部署

 

 

 

 

 

镜像仓库:

 

 

 

 

 填写上需要构建的版本。

 

 以上是docker单机的发布流程。

下面讲解,基于kubernetes的集群实现方案。Jenkins会调用k8s动态创建pod,这个pod是作为Jenkins的slave来执行任务的(拉代码,构建,打包,发布),任务执行完了,这个pod会自动消除。而Jenkins原本的pod 是作为master。这样就解决了master并发数不够情况下等待的问题。

Jenkins在k8s集群中以容器方式运行:

 

 

 

 

 

 

 编写Jenkinsfile

 

 

 

 

 

 

 deploy.yaml 文件:

 

 

这几个文件就说明了这个项目怎么跑起来

 

 

 

 

 

 Jenkins做了master和slave

 

 

 

检查启动情况:

 

 访问:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值