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
检查启动情况:
访问:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」