Jenkins的Master-Slave分布式构建
Jenkins的Master-Slave分布式构建
作者:运维人在路上
个人博客:https://www.cnblogs.com/hujinzhong
微信公众号:运维人在路上
Bilibili账号:https://space.bilibili.com/409609392
个人简介:本人是一枚大型电商平台的运维工程师,对开发及运维有一定了解,现分享技术干货,欢迎大家交流!
一、什么是Master-Slave分布式构建
Jenkins的Master-Slave分布式构建,是通过将构建过程分配到从属Slave节点上,从而减轻Master节点的压力,而且可以同时构建多个,有点类似负载均衡的念。
二、如何实现Master-Slave分布式构建
2.1、开启代理程序的TCP端口
Manage Jenkins -> Configure Global Security
2.2、新建节点
Manage Jenkins—Manage Nodes—新建节点
2.3、自由风格和Maven风格的项目测试
2.4、流水线项目测试
//gitlab的凭证
def git_auth = "cf17ff40-5824-4b2d-bdd5-784560255001"
//gitlab仓库地址
def git_url = "git@10.0.0.101:dianchou_group/tensqure_back.git"
node("slave01") {
stage('拉取代码') {
checkout([$class: 'GitSCM', branches: [[name: "*/master"]], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
}
}
三、传统Jenkins的Master-Slave方案的缺陷
1)Master节点发生单点故障时,整个流程都不可用了
2)每个 Slave节点的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是比较费劲
3)资源分配不均衡,有的 Slave节点要运行的job出现排队等待,而有的Slave节点处于空闲状态
4)资源浪费,每台 Slave节点可能是实体机或者VM,当Slave节点处于空闲状态时,也不会完全释放掉资源
解决方案:可以引入Kubernates来解决
作者:Lawrence
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.