前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当Jenkins遇上Kubernetes

当Jenkins遇上Kubernetes

作者头像
muntainyang
发布2020-10-23 11:23:36
6530
发布2020-10-23 11:23:36
举报
文章被收录于专栏:IT测试前沿

(全文字数:1200, 阅读时间:2.5分钟)

Jenkins是大名鼎鼎的DevOps自动化平台,由于其开源,社区支持力度大,插件生态丰富等优势,成为持续开发,持续集成,持续测试和持续交付领域的王者。它的口号是"Build Great Things at Any Scale",翻译成中文是"构建伟大,无所不能"。

Kubernetes则是DevOps领域的"当红炸子鸡",近年来热度持续上升中。作为一款开源容器编排工具,Kubernetes基于一整套工具链,实现了对云平台上容器化应用的自动化规划,部署,伸缩,升级和维护。

一个是"老当益壮"的王者,一个是"风头正劲"的网红,Jenkins与Kubernetes相遇,会擦出什么样的火花?

从本质上来说,Jenkins与Kubernetes有着泾渭分明的应用场景。前者主要用在软件开发和测试阶段,后者主要用在软件部署和运维阶段。从表面上看,它们之间似乎是互不相关的。

然而就我看来,在容器化和云原生越来越流行的时代背景下,Kubernetes的出现,为Jenkins更好地承担自动化平台的角色提供了新的机会。与Kubernetes相结合,Jenkins将变得更加强大。这个观点,可以从两方面理解。

一方面,Jenkins也是一种应用,并且也支持容器化部署。因此,我们可以用Kubernetes来部署容器化的Jenkins,实现Jenkins的自动安装,扩容和维护。

另一方面,Kunernetes集群可以作为一种新型的Jenkins slave,从而更方便地执行针对各种各样的容器化服务和应用的自动化任务。

这里,需要回顾下Jenkins的工作原理。Jenkins是主从(master-slave)架构的,由Jenkins master和Jenkins salve组成。Jenkins是为完成各种各样的自动化任务而存在的。在这个过程中,Jenkins master负责自动化任务的调度,而Jenkins slave负责自动化任务的执行。

在微服务场景下,许多应用是运行在Kubernetes集群之中的。要对这些微服务进行接口,功能,性能等方面的持续集成和持续测试,通常就需要构建基于Kubernetes的运行环境,并基于这种环境来进行各种集成和测试。

传统的Jenkins slave,例如VM,Docker等,无法满足这种需求。基于Kubernetes集群的Jenkins slave,才是更好的选择。

以上就是Kubernetes的出现为Jenkins带来的两方面机会。那么,如何抓住这两方面机会呢?

基于Kubernetes来部署Jenkins,与部署其他容器化应用的思路是一致的。需要创建Kubernetes集群,准备应用的容器镜像,并定义描述服务内容以及配置信息的模版文件,然后基于Kubernetes提供的命令,一键部署即可。

基于Kubernetes构建新型Jenkins slave,并与Jenkins master集成,则需要依赖于Jenkins的Kubernetes插件。这个插件能够帮助建立Jenkins master与Kubernetes 集群之间的链路,并基于Jenkins任务定义的模板文件,在每次构建任务时,自动在Kubernetes集群上创建基于容器的Pod,然后执行预定义的任务脚本,执行完毕后自动销毁Pod。

这样不仅能够实现Kubernetes自动化任务的执行,还有一些其他好处。例如,只在需要执行任务时才创建slave,这种动态slave机制大大提高了云平台资源的利用率;基于Kubernetes动态扩容技术,能够支撑各种大规模和高频率Jenkins持续集成和持续测试的场景。

总而言之,借助Kubernetes的能力,Jenkins自身的部署和Jenkins自动化任务的执行这两方面都可以做得更好。个人相信,将Jenkins部署在Kubernetes集群中,并基于Kubernetes集群动态创建容器化环境来执行各种各样的自动化任务,在持续集成和DevOps领域将变得越来越普遍。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT测试前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档