什么是特克尔顿?

Tektonlogo.

Tekton.是一种强大而灵活的开源框架,用于创建CI / CD系统,允许开发人员构建,测试和部署云提供商和本地系统。

为什么要使用Tekton?

Tekton Pipelines有许多好处:

  • 它们是云本地人,从为kubernetes的地上设计

  • 每个特克尔顿管道完全陈述和完全是自我描述的;它不依赖于任何单独的乐队jenkins控制器,插件或插件/控制器配置必威国际有限公司

  • 每个管道任务作为一个独立的kubernetes奔跑这完全独立于任何其他豆荚和管道,并由Kubernetes完全安排,以最大限度地提高弹性并优化资源使用情况。一个糟糕的管道不能取下另一个,kubernetes scheduler管理它们都是

  • 每个步骤都可以是任何容器图像中的任何命令,其中包含您需要的任何秘密,卷安装,环境变量和资源限制

  • 不需要将JVM或Jenkins捆绑到POD中,以便保持资源和成本必威国际有限公司

为什么一起使用J必威国际有限公司enkins和Tekton?

必威国际有限公司Jenkins是周围最受欢迎的开源自动化服务器。许多开发人员每天都使用它来完成。必威国际有限公司Jenkins现在可以用来自动化Tekton.管道也有助于团队对他们的CI和CD进行数字转换为更多云本机解决方案。在这种情况下,您可以使用Tekton Pipeline Engine,同时从Jenkins作为Orchestrator,用户界面和报告引擎获得所有优势。必威国际有限公司

为Jenkins介绍Tekton插件必威国际有限公司

詹金斯的Tekton客户端插件必威国际有限公司让您轻松使用Jenkins自动创建和运行必威国际有限公司Tekton管道。它弥补了Kubernetes学习缺口,并允许通过Jenkins调用Tekton管道和资源。必威国际有限公司这允许用户预先没有大多数kubernetes特定知识。

它是一个jenkins插件必威国际有限公司安装 - 所以它很容易使用。

要求

詹金斯的Tekton客户端插件必威国际有限公司假设您可以访问Kubernetes集群。

Kubernetes群集应该有Tekton管道安装了。

如果您还没有安装Tekton.你可以使用它Tekton Helm图表

Jenk必威国际有限公司ins Controller还应有Kubernetes RBAC访问,以便能够创建Tekton资源并观察它们及其相关的POD和POD日志。

如果您在Kubernetes内运行Jenkins必威国际有限公司 Controller,那么安装RBAC的简单方法就是安装必威国际有限公司Jenkins资源掌舵图表在与您的Jenkins控制器的同一名称空间中。必威国际有限公司

指定Tekton管道

您可以通过以下方式配置Tekton管道:

  • git clone块中的文件路径

  • Tekton Yaml文件的URL

  • 一块yaml

我们建议将Tekton Pipelines定义为Yaml文件并将其检查到Git存储库中,以便您可以使用GITOPS.并关注作为代码的管道图案。

这意味着您可以在Git中版本。它也意味着您可以从中受益各种IDE插件可用于Tekton等vs code.主意因此,您在编辑YAML时获得自动完成,格式化和验证。

因此,您可以在Jenkins中使用通常的Git提供程序支持来克隆Git存储库,其中包含Tekton必威国际有限公司 Yaml文件,然后按名称引用该文件。

从Tekton目录中重用管道

Tekton目录定义您可以在管道中重用的吨Tekton任务

我们发现了谈到MicroSevices风格架构,您最终有很多存储库和管道。然后使用A.作为代码的管道模式GITOPS.我们想版本一切但也使任何存储库都可以轻松使用任何版本的任何任务或管道。

例如您可能有许多存储库使用当前版本的管道,但想要在仅1个存储库中尝试向流水线尝试新的更改以验证它是否正常;然后,如果它这样做,逐渐滚动到更多存储库。

这可以使其很难重复使用不同的GIT存储库,同时也可以最大限度地减少您拥有的Git存储库的版本和叉子的数量并简化所有管道的维护。

我们已经找到了必威国际有限公司Jenkins X项目通过GITOPS做到这一点的好方法这样我们就会引用版本化的Tekton任务和管道,以便它们很容易重复使用或者覆盖

所以我们通过这些方法重用任务和管道用途:图像表示法这让我们在香草Tekton Yaml中保留所有Tekton任务和管道;因此,IDE完成和验证工作 - 但我们也可以轻松地重用图书馆的任务或步骤版本保持一切

笔记如果希望通过介绍重用步骤/任务用途:图像表示法然后你必须点击Tekton目录在您的工作定义中的标志将解决用途:具有实际步骤/任务的子句。

什么是jenki必威国际有限公司ns x?

必威国际有限公司Jenkins X徽标

必威国际有限公司Jenkins X项目在Kubernetes上自动化您的CI / CD以帮助您加速

以上所有内容都在可重复使用的Tekton管道中实施。

重用jenkin必威国际有限公司s x管道

那么我们如何重用自动化的CI / CD管道必威国际有限公司Jenkins X项目来自詹金斯必威国际有限公司?

确保你有詹金斯的Tekton客户端插件必威国际有限公司安装在您的Jenkins服务器中。必威国际有限公司

使用工作模板

如果您想从工作示例开始

  • 从此模板创建一个git存储库

  • 添加一个新的Frestyle Project.到您的Jenki必威国际有限公司ns服务器

  • 启用Git.新github.com存储库的源代码管理

  • 点击添加构建步骤(靠近页面底部),然后选择Tekton:创建资源(RAW)

  • 确保文件选择输入并输入名称.lighthouse 必威国际有限公司/ jenkins-x / seasels.yaml对于文件名

  • 如果您使用Jenkins X Clus必威国际有限公司ter EnterJX.对于命名空间

  • 确保这件事启用Tekton目录被检查了

  • 现在保存管道 - 它应该看起来像这样:

必威国际有限公司Jenkins控制台

现在,如果您触发管道,您应该看到它创建Tekton管道,您应该在Jenkins控制台中看到Tekton管道的输出。必威国际有限公司管道实际上是在Kubernetes中的完全独立的豆荚;Jenk必威国际有限公司ins Controller只是将登录到控制台。

在Jenk必威国际有限公司ins X群集中,该管道应该只是工作(重用Terraform的所有云资源和IAM角色设置),但在一个任意的Kubernetes群集中,您可能会在无法推送图像或由于缺乏GITOPS环境而导致的问题定义了我们可以帮助您通过通过的工作必威国际有限公司Jenkins X Slack Room

使用现有存储库

您可以通过复制yaml文件来在项目中配置拉出请求或发布管道语言包你想使用。

例如如果您使用的是maven然后复制pullRequest.yaml.或者释放.Yaml.进入项目源代码然后将其从Jenkins作业引用:必威国际有限公司

然后按照上述说明设置a自由式项目对于您的Git存储库并引用管道的文件名。

覆盖步骤

能够重用管道图书馆的步骤很棒;但有时你需要改变事情。用于库中的每个步骤的假设,命令,参数,环境变量或方法可能与特定应用程序中所需的所有步骤相匹配。您可能需要在库中的步骤/之后运行步骤,或者您可能需要覆盖特定步骤以执行不同的事情。

所有Tekton Yaml都是完全声明性的事实使其超级容易通过IDE通过验证和智能完成来修改事物,不必使用脚本语言并理解复杂的共享流水线库。

最简单的尝试覆盖一步的方法是安装JX二进制我们$ PATH然后使用JX Pipeline override命令这将创建一个新的本地重写步骤,然后可以在IDE中编辑。

然后在任何时候你可以当您进行本地更改时查看有效管道

比较Kubernetes和Tekton插件

那些使用Jenkins的人必威国际有限公司Kubernetes.群集可能正在使用Kubernetes插件马上。

这是一个例子如何使用必威国际有限公司Jenkinsfile.与A.pod yaml文件因此,您可以在POD中的不同容器中运行命令。

这意味着:

  • 基于的Kubernetes Pod创建pod yaml文件由Kubernetes安排

  • 必威国际有限公司Jenkinsfile.在Jenkins Con必威国际有限公司troller上运行谈论jenkins远程向POD播放,以便在不同的容器中运行命令。豆荚包括JNLP.在Jenkins控制器和豆荚之间进行远程的容器必威国际有限公司

这有一些问题:

  • POD中的每个容器必须具有shell,以便JNLP可以调用命令。这可能意味着您必须创建自己的图像

  • 从jenkins控制器和豆荚的谈论开始,它可能会有点缓慢 - 而与特克尔顿豆荚刚刚开始并在本地开始,没有任何与Jenkins控制器的梳理必威国际有限公司

  • 您必须维护2个文件:必威国际有限公司Jenkinsfile.POD.YAML.并且,在需要进行更改时跨多个存储库共享/覆盖这些文件(例如,覆盖环境变量/映射/命令/资源限制在步骤的需求)。

虽然Tekton方法的一个缺点是默认情况下,没有自动同步状态;在Tekton的任务完成后,没有向Jenkins控制器磁盘自动上传状态。必威国际有限公司您可以随时添加任务中的步骤,以将工作空间状态上传到Jenkins控制器,如果这是您想要的。必威国际有限公司

虽然请记住,Tekton插件不会带走任何东西;因此,您可以混合和匹配Kubernetes和Tekton插件以满足您的需求。

结论

我们对Jenkins的结合真的很兴奋,必威国际有限公司Tekton.必威国际有限公司Jenkins X.让开发人员选择工作的最佳工具,同时变得更加云,并增加自动化帮助减少手动工作的数量,同时还有助于提高CI / CD的质量和实践。

关于作者
詹姆斯斯特拉瑟桑

詹姆斯是一个长时间的开源贡献者,创建了Groovy编程语言和Apache Camel集成框架。在过去的几年里,他一直在努力使用Kubernetes的CI / CD。