jenkins 入门_Jenkins X入门

Jenkins X是一个用于Kubernetes的开源系统,提供持续集成和持续交付的解决方案。本文介绍了如何使用Jenkins X创建和管理项目,包括自动化的CI/CD流程,预览环境,无服务器Jenkins等功能,同时也提到了其局限性,如仅限Git项目和Kubernetes环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jenkins 入门

Jenkins X是一个开源系统,可在Kubernetes中为软件开发人员提供持续集成,自动化测试和持续交付(称为CI / CD)。 Jenkins X托管的项目通过Jenkins管道获得了完整的CI / CD流程,该管道可以构建和打包项目代码以部署到Kubernetes,并可以访问管道以将项目推广到暂存和生产环境。

开发人员已经从Kubernetes上运行“经典”开源Jenkins和CloudBee版本的Jenkins中受益,这在一定程度上要归功于Jenkins Kubernetes插件,该插件可让您动态启动Kubernetes pod来运行Jenkins构建代理。 Jenkins X补充了Jenkins缺少的功能:对持续交付的全面支持以及管理在Kubernetes中运行的项目预览,登台和生产环境的推广。

本文是对Jenkins X的工作原理的高级解释。 它假定您对Kubernetes和经典Jenkins有所了解。

Jenkins X带来的好处

如果您在主要的云提供商之一(用于Kubernetes的Amazon Elastic Container Service,Google Kubernetes Engine或Microsoft Azure Kubernetes Service)上运行,则安装和部署Jenkins X很容易。 下载Jenkins X命令行界面,然后运行jx create cluster命令。 系统将提示您输入必要的信息,如果使用默认设置,Jenkins X将创建一个入门级的Kubernetes集群并安装JenkinsX。

部署Jenkins X时,会启用许多服务来监视您的Git存储库,并通过将应用程序构建,测试并将其升级到阶段,生产和您定义的其他环境来进行响应。 Jenkins X还部署了一套支持服务,包括JenkinsDocker RegistryChart MuseumMonocular来管理Helm图表,以及Nexus ,后者用作Maven和npm存储库。

Jenkins X部署还创建了两个Git存储库,一个用于您的登台环境,另一个用于生产。 这些是用于管理项目源代码的Git存储库的补充。 Jenkins X使用这些存储库来管理部署到每个环境的内容,并通过Git拉取请求(PR)进行升级-这种方法称为GitOps 。 每个存储库都包含一个Helm图表,该图表指定了要部署到相应环境的应用程序。 每个存储库还具有Jenkins管道来处理促销。

使用Jenkins X创建一个新项目

要使用Jenkins X创建新项目,请使用jx create quickstart命令。 如果您未指定任何选项,则jx将提示您选择项目名称和平台-几乎可以是任何东西。 SpringBoot,Go,Python,Node,ASP.NET,Rust,Angular和React均受支持,并且列表还在不断增长。 选择项目名称和平台后,Jenkins X将:

  • 创建一个新项目,其中包括“ hello-world”样式的Web项目
  • 为所选平台添加适当类型的makefile或构建脚本
  • 添加一个Jenkinsfile来管理对登台和生产环境的促销
  • 添加通过草稿创建的Dockerfile和Helm图表
  • 添加一个Skaffold配置以将应用程序部署到Kubernetes
  • 创建一个Git存储库并将新的项目代码推送到那里

接下来,来自Git的Webhook将通知Jenkins X项目已更改,它将运行您项目的Jenkins管道以构建并推送Docker映像和Helm图表。

最后,管道会将PR提交给暂存环境的Git存储库,其中包含升级应用程序所需的更改。

PR合并后,登台管道将运行以应用这些更改并进行升级。 创建项目后的几分钟,您将拥有端到端CI / CD,并且您的项目将在分阶段运行并可以使用。

Developer commits changes, project deployed to staging

开发人员提交更改,将项目部署到暂存环境。

上图说明了存储库,注册表和管道,以及它们在Jenkins X升级到暂存中的交互方式。 步骤如下:

  1. 开发人员提交更改并将更改推送到项目的Git存储库
  2. 通知Jenkins X,并在Docker映像中运行项目的Jenkins管道,该映像中包含项目的语言和支持框架
  3. 项目管道将构建,测试项目的Helm图表并将其推送到Chart Museum,并将其Docker映像推送到注册表
  4. 项目管道将创建PR,其中包含将项目添加到暂存环境所需的更改
  5. Jenkins X自动将PR合并到Master
  6. 通知Jenkins X并运行登台管道
  7. 登台管道运行Helm,后者部署环境,从Chart Museum提取Helm图表,并从Docker注册表提取Docker映像。 Kubernetes创建项目的资源,通常是pod,服务和入口。

将现有项目导入Jenkins X

jx import ,Jenkins X添加了将您的项目部署到Kubernetes并参与CI / CD所需的东西。 它将添加Jenkins管道,Helm图表和Skaffold配置,以将应用程序部署到Kubernetes。 Jenkins X将创建一个Git存储库并将更改推送到那里。 接下来,来自Git的Webhook将通知Jenkins X一个项目已更改,并且将如上针对新项目所述升级到暂存。

将您的项目推广到生产

要将项目的版本升级到生产环境,请使用jx Promotion命令。 此命令将准备一个Git PR,其中包含部署到生产环境中并将此请求提交到生产环境的Git存储库所需的Helm图表更改。 手动批准请求后,Jenkins X将运行生产管道以通过Helm部署您的项目。

Promoting project to production

开发人员将项目推广到生产中。

此图说明了存储库,注册表和管道,以及它们在Jenkins X促销生产中的相互作用。 步骤如下:

  1. 开发人员运行jx Promotion命令以将项目提升为生产
  2. Jenkins X使用将项目添加到生产环境所需的更改来创建PR
  3. 开发人员手动批准PR,并将其合并到Master
  4. 詹金斯X收到通知并运行生产流程
  5. 生产管道运行Helm,Helm部署环境,从Chart Museum提取Helm图表,从Docker注册表提取Docker图像。 Kubernetes创建项目的资源,通常是pod,服务和入口。

Jenkins X的其他功能

Jenkins X的其他有趣和吸引人的功能包括:

预览环境

创建PR以便将新功能添加到项目中时,可以要求Jenkins X创建预览环境,以便在合并PR之前可以使新功能可用于预览和测试。

扩展名

可以创建Jenkins X的扩展名。扩展名是在CI / CD流程中的特定时间运行的代码。 扩展可以提供在安装,卸载扩展以及在每个管道之前和之后运行的代码。

无服务器詹金斯

您不必运行会不断消耗CPU和内存资源的Jenkins Web应用程序,而只能在需要时运行Jenkins。 在过去的一年中,Jenkins社区创建了一个Jenkins版本,该版本可以通过命令行运行由代码定义的配置(而不是HTML表单)的经典Jenkins管道。

Jenkins X现在可以使用此功能。创建Jenkins X集群时,可以选择使用无服务器Jenkins。 如果你这样做,詹金斯X将部署船头到从GitHub和手柄网络挂接Knative运行詹金斯管道。

Jenkins X的局限性

Jenkins X还具有一些应考虑的限制:

  • Jenkins X当前仅限于使用Git的项目: Jenkins X对CI / CD持坚定态度,并假定每个人都希望将软件运行和部署到Kubernetes,并且每个人都乐于将Git用于源代码和定义环境。 另外,无服务器Jenkins功能当前仅适用于GitHub。
  • Jenkins X仅限于Kubernetes:的确,Jenkins X可以针对任何类型的软件运行自动构建,测试和持续集成,但持续交付部分的目标是由Jenkins X管理的Kubernetes命名空间。
  • Jenkins X需要集群管理员级别的Kubernetes访问: Jenkins X需要集群管理员级别的访问,以便它可以定义和管理Kubernetes自定义资源定义。 希望这是一个暂时性的限制,因为对于某些人来说,这可能是个阻碍。

结论

Jenkins X似乎是为Kubernetes实施CI / CD的好方法,我期待将其投入生产测试。 使用Jenkins X也是了解一些有用的开源工具以部署到Kubernetes的好方法,包括Helm,Draft,Skaffold,Prow等。 即使您确定Jenkins X不适合您,这些也是您可能要使用的东西。 如果您要部署到Kubernetes,请尝试使用Jenkins X.

翻译自: https://opensource.com/article/18/11/getting-started-jenkins-x

jenkins 入门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值