云容器引擎 CCE-方案概述:方案架构
方案架构
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了。