jenkins结合k8s构建流水线如何提升运行性能和构建效率

简介: jenkins结合k8s构建流水线如何提升运行性能和构建效率

一、调节jenkins从节点的内存和cpu

Jenkins是目前最主流的CI/CD工具,我们常用jenkins对接kubernetes实现DevOps。那配置的Jenkins Slave模板生成的jenkins slave pod是实际拉取代码,构建代码的从节点,如果jenkins slave pod用的是默认的配置,很可能会出现性能问题,如下图:

 

如果配置的cpu和内存限制太小很可能出现代码构建速度慢,构建时候内存不够:

 

如果出现上面问题可以适当调节CPU和内存限制,数值可调大些。

 

二、生产环境从多个维度对Jenkins进行优化?

1、插件数量不要安装太多,可以选择性安装需要的插件

2、jenkins的master节点不构建任务,通过标签的方式调用k8s api生成jenkins从节点,在从节点构建任务,任务构建完成从节点自动删除,节省资源

3、尽量使用私有服务器,如使用nexus、gitlab、harbor增加构建速度

4、取消jenkins的定时清理工作空间任务

 一些项目在构建时往需要下载一些依赖库,但是 yarn install会等很长一段时间,经过测试,在不删除工作空间的情况下,构建时会优先使用本地缓存,构建速度会大幅度提升,但是jenkins有定时清理工作空间的功能,需要关掉它。

5、jenkins任务并发执行

  jenkins并发工作流编排有利于提高执行效率 缩短构建时间。

1)   设置不同stage段并发执行

stage('a and b') {
     parallel {
     stage("a"){
        steps {
                 }
    stage("b"){
        steps {
            }         
        }
    }
  }

 

2)   设置同一个stage段并发执行

stage('start a') {
        steps {
          parallel(
              a:{
               },
              b:{ 
               },
              c:{
               },
              d:{
               }
        }
 }
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes Devops 应用服务中间件
基于 Azure DevOps 与阿里云 ACK 构建企业级 CI/CD 流水线
本文介绍如何结合阿里云 ACK 与 Azure DevOps 搭建自动化部署流程,涵盖集群创建、流水线配置、应用部署与公网暴露,助力企业高效落地云原生 DevOps 实践。
1381 2
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
1003 284
|
jenkins Java Linux
Jenkins环境的部署及任务构建
以上就是Jenkins环境的部署及任务构建的全部内容。希望可以帮助你轻松上手Jenkins,让你的CI/CD之旅更加顺畅!
979 68
|
jenkins 持续交付 开发工具
利用Dockerfile自主构建Jenkins镜像
希望这个过程能善用你的野马般想象,把自己置身于和计算机的卓尔不凡的对话中,让编程的过程充满趣味。
583 36
|
Ubuntu jenkins 机器人
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
459 2
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
420 1
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
557 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
433 5

推荐镜像

更多