在CI/CD工作中,我们主要使用单个节点Jenkins(Master)来完成施工任务。随着项目的不断增加,单个节点在效率和稳定方面无法满足我们的需求,Jenkins自然支持Master Lave Architecturetretretretretretretretretretretretretretrethere,我们可以通过部署从属节点来减轻主人的负担。仅在为任务分配任务时执行。完成作业的分配后,它是空闲的,并且不会自动破坏后台的发行资源。
有什么解决方案可以避免这种情况吗?
我们可以使用Jenkins Plug -In Docker插件来实现Jenkins Slave的动态创建,并在执行任务后自行销毁它。
在正式解释Docker动态创建Jenkins Slave之前,我们首先放置了Jenkins分发的,以便更好地了解整个实施过程。
詹金斯(Jenkins)是主奴隶架构。主节点提供Web GUI和API来管理,分配和运行施工任务;从属节点仅用于运行主节点分布的构造任务;因此,从可以有效地减少主工作量,这也意味着可以在不同的平台上分发奴隶节点,并且不需要安装完整的Jenkins包。
主和从沟通方法:
Jenkins Master节点将根据上述两种方法自动完成剩余的自动部署工作,例如复制从属和启动/停止服务所需的二进制文件和其他操作。
当然,Jenkins还提供了一种更灵活的部署方法,即基于SSH,通过脚本登录到从属节点。该过程如下:
建立从设备时,仅将任务分配给主主上的主节点上的主节点。
通过Jenkins分发预热,我们通常了解我们的工作方法。以下形式内容,我们将使用基于SSH的脚本登录到从属节点并启动它。
在正常情况下,从完成分配的施工任务后,从属在闲置状态,它将在后台运行,而不会自动破坏资源的发布。并在建设任务建造后将其销毁。
Docker Pluginjenkins插件Jenkins/ssh-Slave为SSH协议提供了基本镜子,并使用10.10.2.33来提供Docker环境来运行从属节点“ Jenkins”“ Jenkins”“ Jenkins分布式预热”。我们需要传递SSHTHE协议使Master和Slave能够通信,因此,请使用Jenkins/SSH-SLAVE使用SSH协议提供Docker Basic Image。Docker插件通过配置参数通过SSH协议创建Jenkins Slave的镜像来执行SSH协议。分配主的任务。
Docker插件特定的处理过程如下:
在处理过程方面,Jenkins Master是通过Docker插件作为Docker Client的Docker客户端,以调用主机的Docker API,该Docker API运行从属节点,以挑选由Jenkins/Ssh-Ssh-Ssh-Shlave Mirrors触发的一系列操作。
在这里,我们需要精通Docker的体系结构。如果您不明白,请参考以下内容:“重新理解插座权限的Docker架构”
1.从属节点主机配置主要是为从设备准备SSH环境,以便主可以通过SSH登录到从属节点。
注意:从属节点主机需要打开远程TCP访问,以便可以远程访问主节点的Docker插件。
#TCP套接字
Dockerd -H TCP://0.0.0:23752.Jenkins Master配置1.安装Docker插件插件2.配置插件添加云,设置管理Jenkins“ - “配置系统” - “ configure System” - “ cloud”
3.配置Docker Cloud“ Docker主机URI”是从主机的TCP插座。Master的Docker插件通过此TCP连接连接到主机的Docker环境。
4. Docker代理模板配置
在:
在:
其中:使用Docker Agent Tempaltes的环境变量来定义SSH登录的秘密;工具位置是基于卷的项目中使用的工具;
新的MVN项目配置
1.通过lable表达式与相应的Lable标签绑定的Jenkins Docker从属节点。
2. MVN构造
构建镜子,标签,通过Maven推到遥远的仓库。
关于Maven的自动部署Spring Boot项目,您可以参考“ Docker自动部署的Spring Boot在这里”。
3.施工过程
注意:由于弹簧启动环境需要打包,构造和上传一个私人库,因此詹金斯从属节点需要永久操作到主机的Docker引擎,因此通过“/var/run/docker”设置了Docker设置.sock:var/run/docker.sock“和容器的映射。
通过上述步骤,詹金斯奴隶的动态构造实现了春季靴+码头的连续交付过程。涉及的详细知识点还要求我们继续在实践中总结。
思考:
尽管我们可以在一定程度上通过詹金斯奴隶减轻主人的负担,但实际项目中可能会发生奴隶的资源分配。它是否支持负载平衡ISOF。
参考:
詹金斯分发了构建
Docker插件
作者:Mun Love叔叔的操作和维护