在cce中安装部署jenkins方案概述-九游平台
jenkins是什么
jenkins是一个开源的、提供友好操作界面的持续集成(ci)工具,起源于hudson,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。
jenkins用java语言编写,可在tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(scm)、构建工具结合使用。jenkins可以很好的支持各种语言的项目构建,也完全兼容maven、ant、gradle等多种第三方构建工具,同时跟svn、git等常用的版本控制工具无缝集成,也支持直接对接github等源代码托管网站。
约束与限制
- 该实践方案仅支持在cce集群下部署,不适用专属云场景。
- jenkins系统的维护由开发者自行负责,使用过程中cce服务不对jenkins系统提供额外维护与支持。
方案架构
jenkins部署分为以下两种模式:
- 一种是直接使用单master安装jenkins,直接进行任务管理和业务构建发布,但可能存在一定的生产安全风险。
- 一种是master加agent模式。master节点主要是处理调度构建作业,把构建分发到agent实际执行,监视agent的状态。业务构建发布的工作交给agent进行,即执行master分配的任务,并返回任务的进度和结果。
jenkins的master和agent均可安装在虚拟机或容器中,且组合形式可多样,参见表1。
部署模式 |
master |
agent |
优缺点分析 |
---|---|---|---|
单master |
虚拟机 |
- |
|
单master |
容器 |
- |
|
master加agent |
虚拟机 |
虚拟机 |
|
容器(k8s集群) |
|
||
master加agent |
容器(k8s集群) |
容器(k8s集群) |
|
本文采用master加agent模式,master和agent均为容器化安装的方案,并使用在k8s集群实现动态agent,具体架构如图1所示。
- jenkins master负责管理任务(job),为了能够利用kubernetes平台上的资源,需要在master上安装kubernetes的插件。
- kubernetes平台负责产生pod,用作jenkins agent执行job任务。当jenkins master上有job被调度时,jenkins master通过kubernetes插件向kubernetes平台发起请求,请kubernetes根据pod模板产生对应的pod对象,pod对象会向jenkins master发起请求,master连接成功后,就可以在pod上面执行job了。
操作流程
- 。
jenkins master使用容器化镜像部署在cce集群中。
- 。
jenkins可以在集群中创建固定agent,也可以使用pipeline与cce的对接,动态提供agent pod。其中动态agent还需要使用kubernetes相关插件配置集群认证信息及用户权限。
- 。
jenkins流水线与swr对接,在agent中调用docker build/login/push相关的命令,实现自动化的镜像打包、推送。
您也可以通过流水线实现kubernetes资源(deployment/service/ingress/job等)的部署、升级等能力。
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨