logo资料库

基于k8s的jenkins构建集群实践.pdf

第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
资料共34页,剩余部分请下载后查看
基于Kubernetes的Jenkins构建集群实践 李华强 乐视致新 2017.09.17
目 录 1 2 3 4 Jenkins分布式构建架构 基于Lable的Slave集群管理 基于Docker插件的容器化实践 基于Kubernetes的容器化实践
Jenkins分布式构建架构
Jenkins Slave 连接方式 Ø Launch slave agents via SSH Ø Launch agent via Java Web Start (JNLP)
Jenkins 调度策略 Ø 用户视角 p 直接使用slave name,构建使用指定slave p 使用label,构建多数使用同一个的slave,偶尔使用其他slave Ø 系统实现 Ø 其他插件 p consistent hashing algorithm (node,available executors,job name) p 每一个Job都有一个对应所有Node的优先级列表 p Least Load (https://plugins.jenkins.io/leastload) p Commercial plugin Even Scheduler Plugin
目 录 1 2 3 4 Jenkins分布式构建架构 基于Lable的Slave集群管理 基于Docker插件的容器化实践 基于Kubernetes的容器化实践
Android产品复杂环境 业务产品差异性 Mobile, TV, Box, IOV, VR 等 多种构建类型 代码量大 编译空间大 编译时间长 Daily build,Test build,Continuous Build,APK 编译 等 50GB + 100-200GB 2-3小时(24线程) 业务间相对独立 专属编译服务器,独立的构建环境 服务器差异 版本,CPU,Memory,Disk等
Jenkins使用中暴露的问题 表象问题: Ø Slave很多,空闲的Slave也很多 Ø 队列中等待构建任务很多 Ø 一些构建失败,暴露workspace空间不足问题 原因分析: Ø 业务间,编译环境不统一,不能跨业务共享 Ø 业务内,特定jobs直接绑定特定slave,并发量受限于executor数目 Ø slave上构建workspace的遗留,占用大量空间 Ø 业务量增大,新建Jobs增多,瓶颈出现
分享到:
收藏