使用 Jenkins Workflow 和 Kubernetes 编排部署

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

在之前的系列博客中,我们介绍了 如何将 Docker 与 Jenkins 结合使用 以实现真正的持续交付并改进 Jenkins 中的现有管道。虽然此初始集成支持单个 Docker 容器的部署,但 CloudBees 团队和 Jenkins 社区最近在 Jenkins Workflow 上的工作也将允许管理员使用 Kubernetes 和谷歌云平台启动和配置集群 Docker 容器。

什么是工作流?

Jenkins Workflow 是一个新插件,它允许 Jenkins 将持续交付视为 Jenkins 中的一流工作类型。 Workflow 允许用户在一个地方定义工作流程,避免跨多个构建作业协调流程的需要。这在复杂的企业环境中尤其重要,在这种环境中,必须跨团队协调工作、发布和依赖关系。工作流被定义为工作流作业中的 Groovy 脚本,或者从外部存储库(如 Git)签入工作区。

简而言之,CloudBees Docker Workflow 插件添加了一个名为 Docker 的特殊入口点,可以在任何 Workflow Groovy 脚本中使用。它提供了许多用于创建和使用 Docker 映像和容器的功能,这些功能又可用于打包和部署应用程序或作为 Jenkins 的构建环境。

从广义上讲,有两个功能领域:使用您自己的或由全球社区创建的 Docker 映像来简化构建自动化;并创建和测试新图像。一些项目将需要这两个方面,您可以跟随一个同时使用这两个方面的完整项目:请参阅 演示指南

Jenkins Workflow Deployments with Kubernetes 在之前的博客中提到,Google Cloud Platform 也支持将 Docker 镜像推送到 Google Container Registry ,并通过 Kubernetes 部署到 Google Container Engine。

Jenkins Workflow 现在还支持使用 Google Cloud Platform 的 Container Registry 作为 Docker 镜像注册表。此外,它还公开了一些新的 Kubernetes 和 Google Cloud Platform 特定步骤,以补充 Workflow 现有的 Docker 功能。这些步骤允许 Jenkins 安全地连接到给定的 Kubernetes 集群,并远程指示 Kubernetes 集群管理器启动给定的 Docker 映像作为 Kubernetes Pod 中的容器,更改目标集群或上下文等现有设置,并设置目标集群中的副本数。

我从哪说起呢?

  1. Workflow 插件 是一个开源插件,因此可以从开源更新中心下载或打包为 CloudBees Jenkins 平台的一部分。
  2. CloudBees Docker Workflow 插件 是 OSS 更新中心或作为 CloudBees Jenkins 平台的一部分提供的另一个开源插件。
  3. Google Cloud Registry Auth插件 是Google开发的开源插件,可以从开源更新中心下载,也可以打包成CloudBees Jenkins Platform的一部分。
  4. Kubernetes 插件是另一个开源插件,可从开源更新中心获得或作为 CloudBees Jenkins 平台的一部分打包。
  5. Google Container Engine 提供 免费试用
  6. Google Container Registry 是一项免费服务。
  7. 其他插件补充和增强了 Docker 与 Jenkins 一起使用的方式。在这些博客中详细了解他们的用例:
    1. Docker 构建和发布插件
    2. Docker Slaves 与 CloudBees Jenkins 平台
    3. Jenkins Docker 工作流 DSL
    4. Docker 可追溯性
    5. Docker Hub 触发器插件
    6. Docker 自定义构建环境插件

相关文章