zoukankan      html  css  js  c++  java
  • Jenkins的Master-Slave分布式构建

    Jenkins的Master-Slave分布式构建

    作者:运维人在路上

    个人博客https://www.cnblogs.com/hujinzhong

    微信公众号:运维人在路上

    Bilibili账号https://space.bilibili.com/409609392

    个人简介:本人是一枚大型电商平台的运维工程师,对开发及运维有一定了解,现分享技术干货,欢迎大家交流!

    一、什么是Master-Slave分布式构建

    image-20210326162835448

    Jenkins的Master-Slave分布式构建,是通过将构建过程分配到从属Slave节点上,从而减轻Master节点的压力,而且可以同时构建多个,有点类似负载均衡的念。

    二、如何实现Master-Slave分布式构建

    2.1、开启代理程序的TCP端口

    Manage Jenkins -> Configure Global Security

    image-20210324191306250

    2.2、新建节点

    Manage Jenkins—Manage Nodes—新建节点

    image-20210324191426597

    image-20210324191522776

    image-20210324193911608

    image-20210324194132964

    2.3、自由风格和Maven风格的项目测试

    image-20210324194302517

    image-20210324194341949

    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}"]]])
        }
    }
    

    image-20210324194832981

    image-20210324194911869

    三、传统Jenkins的Master-Slave方案的缺陷

    1)Master节点发生单点故障时,整个流程都不可用了

    2)每个 Slave节点的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是比较费劲

    3)资源分配不均衡,有的 Slave节点要运行的job出现排队等待,而有的Slave节点处于空闲状态

    4)资源浪费,每台 Slave节点可能是实体机或者VM,当Slave节点处于空闲状态时,也不会完全释放掉资源

    解决方案:可以引入Kubernates来解决

    作者:Lawrence

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    MySQL优化
    Java GC
    Java GC
    一致性哈希算法在分布缓存中的应用
    Hadoop
    Hbase 基础
    ORACLE
    ORACLE
    ORACLE
    ORACLE
  • 原文地址:https://www.cnblogs.com/hujinzhong/p/14583094.html
Copyright © 2011-2022 走看看