网站首页 > 技术教程 正文
了解如何使用 Jenkins、 Helm 和 Kubernetes 设置工作流来自动化 CI/CD pipeline,从而实现快速简单的部署
每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?3分钟?学习?何乐而不为?,希望?大家?点赞?,加?关注?,你的?支持?是我?最大?的?动力?。
开发人员不想考虑基础设施问题,也不想考虑为什么将代码部署到真正的测试环境需要这么长时间。他们只是想让它运转起来!
这6个步骤的工作流程将使用 Jenkins、 Helm 和 Kubernetes 轻松地自动化 CI/CD 管道,从而实现快速简单的部署。
如今,快速发布版本至关重要,这需要一个自动化的 CI/CD 管道,将代码从文本传输到二进制文件,再传输到已部署的环境。在过去,实现自动化管道一直具有挑战性,特别是在处理遗留应用程序时。这就是k8s的用武之地。Kubernetes 彻底改变了我们部署和管理集装箱化应用程序的方式。将 Helm 与 Kubernetes 结合使用,可以获得简化的应用程序部署。
本文将向您展示如何准备和配置您的环境,以便使用 Jenkins、 Helm 和 Kubernetes 为容器化应用程序实现完全自动化的 CI/CD 管道。您将收到有关如何优化管道的提示和用于自定义管道的工作模板。
为了熟悉 Kubernetes 环境,我已经将解决方案的主要步骤映射到传统的 Jenkins 管道。
注意: 此工作流也适用于实现其他工具或部分实现。
建立环境
配置软件组件
在创建自动化管道之前,需要根据以下配置设置和配置软件组件:
软件组件 | 建议配置 |
A Kubernetes Cluster |
|
Docker 注册表 |
|
A Helm Repository |
|
独立的环境 |
|
Jenkins Master |
|
Jenkins Slave(s) |
|
准备你的应用
Follow these guidelines when preparing your applications:
准备你的应用时,请遵循以下指引:
- 应用程序打包为镜像方法请参考Docker Best Practices Docker(https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/) 最佳实践.
- 要在以下任何环境中运行相同的 Docker 容器: Development, Staging 或 Production、将流程和配置分离如下:Development: 创建默认配置。Staging 和 Production: Create a non-default configuration using one or more: 创建一个非默认配置使用一个或多个配置。在运行时可以挂载到容器中的配置文件。传递到 Docker 容器的环境变量
Kubernetes 六步自动化 CI/CD pipeline的实践
通用的假设及指引
- 这些步骤符合运行 Jenkins 代理时的最佳实践
- 为构建应用程序分配一个专用代理,为部署任务分配一个附加代理。这取决于你的正确判断
- 为每个分支都运行pipeline,为此,请使用 Jenkins 多分支pipeline作业 .
- 从 Git 获取代码开发人员将代码推送到 Git,这会触发 Jenkins 构建 ,webhookJenkins 拉取最新的代码更改。
- 运行构建和单元测试Jenkins 负责构建, 应用程序的 Docker 映像是在构建期间创建的。
- 发布Docker image 和Helm Chart。 应用程序的 Docker 映像被推送到 Docker 注册表Helm chart将打包并上传到heml库中。
- 部署开发环境,使用已发布的 Helm chart将应用程序部署到 Kubernetes 开发集群或命名空间,测试针对 Kubernetes 开发环境中部署的应用程序运行
- 部署到Staging。使用已发布的 Helm chart将应用程序部署到 Kubernetes 临时集群或命名空间,在staging环境中对部署的应用程序运行测试
- [可选]部署到生产环境。如果应用程序满足定义的标准,则将应用程序部署到生产集群。请注意,您可以将其设置为手动批准步骤Sanity tests run against the deployed application. 健全性测试针对已部署的应用程序运行If required, you can perform a rollback. 如果需要,可以执行回滚
创建自己的自动化 CI/CD pipeline
请随意使用下面的示例框架构建一个类似的实现,这些示例框架是我为此目的而构建的:
- 在k8s上运行一个 Jenkins Docker 镜像
- 在一个简单的静态网站应用程序的基于基于官方 nginx Docker image应用6步 CI/CD pipeline
猜你喜欢
- 2024-10-13 大前端教程之Dokcer,部署方式,CICD的解决方案
- 2024-10-13 CI/CD之三:用filebeat,kafka,kylin,superset快速实现度量
- 2024-10-13 使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用
- 2024-10-13 使用 Kubernetes Helm 安装 CI/CD 工具:Drone
- 2024-10-13 gitlab ci 维护记录(gitlab cicd)
- 2024-10-13 基于docker-compose的Gitlab CI/CD实践&排坑指南
- 2024-10-13 通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布
- 2024-10-13 搭建全功能服务器(Nginx+Tomcat+PHP+SSL)
- 2024-10-13 还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲
- 2024-10-13 将Docker镜像安全扫描步骤添加到CI/CD管道
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)