K8s遇上Jenkins&制品库
主题简介
手把手搭建一套K8s集群,同时了解一下K8s一些基础概念。如何使用Artifactory制品库作为K8s的镜像中心。最后集合CI工具Jenkins集成K8s,实现Jenkins资源的动态分配,并完成一条容器云上CI&CD流水线
课程大纲
使用rancher快速安装一套K8s集群
使用artifactory作为k8s镜像中心
K8s环境上搭建Jenkins实现动态伸缩
了解Jenkins如何完成云上流水线
课程收益
了解K8s与Jenkins如何结合完成CI&CD流水线
报名二维码
报名地址
https://bagevent.com/event/7559701
案例
TDS,TaikangcloudDevOps Service(泰康云DevOps服务平台)是整合敏捷开发与DevOps的研发管理工具,提供产品规划、项目管理、Git/Svn代码托管、Sonar代码检查、Jenkins持续集成和持续发布(CI/CD)、制品管理等能力,让复杂的研发协作更简单,帮助组织团队来完成软件生命周期管理,从而更快、更频繁地交付更稳定得软件。从需求管理到代码审查,优化开发流程,简单易用,让开发流程更高效。
是一款企业级软件开发协作系统。
实现细粒度的访问控制,管理 Git 存储库,确保代码的安全。
实现高效的Sonar代码审查功能,协同合并请求,保障代码提交的安全性及专注性。
项目中使用JIRA任务管理与代码托管无缝衔接,保障开发流程的可追溯性。
文件管理、Wiki模块可记录整个项目的来龙去脉,让项目协作清晰便捷。
使用Jenkins持续集成le提供安全、稳定、高效的企业软件开发协作平台,并提供Pipeline As Code的配置模式。
TDS是泰康保险集团沉淀多年的研发运营一体化支撑体系,承担着数百款业务CI/CD的使命。tds的服务支撑覆盖到人寿、健康险、车险、医疗、养老、护理等不同领域的业务,这些业务来自于自研或者代理,研发团队间的技术栈以及设计理念不同导致了架构差异性和复杂性,也给CICD应用在包交付模式和灵活的编排上提出更多的挑战。研发与运维团队职责不同和环境差异化,在版本交付过程中版本因环境差异带来的问题,导致沟通成本非常高。研发团队在日常版本构建过程中,往往容易忽略代码检查以及安全扫描的事项,版本包外发现导致了业务出现问题等。以上种种问题,都使得CICD的产品设计理念以及如何串连各大工具链,让业务在安全保障,版本稳定,效率提升上获得到最大收益,成为了CICD设计和实践的首要任务和重要挑战。
TDS的CI/CD设计与实践
DevOps的基础是自动化,需要一系列的工具来支撑,目前业界主流方式是基于开源工具链打造稳定可靠、敏捷的CI/CD流水线;Jenkins凭借其良好的设计和强大的社区成为了我们的选择,jenkinspipeline 2.0强大而灵活,是企业级DevOps流水线实现的不二选择;虽说是研发与为一体化,然而开发团队和运维团队对流水线的需求是不一样的,研发团队偏向CI,而运维团队偏向CD,对工具链平台还有流水线的设计提出了挑战;TDS平台由原来的CI/CD融合流水线模式演进到了CI、CD可自由分离+自由组合的模式;在CI/CD分离的模式化,原有的简单FTP模式不再适应,对制品平台的管理和使用提出了更高的要求;
所以建设企业级的统一软件制品仓库成了一个必然选择,需满足企业级的高可用、多租户、多项目、安全扫描、灵活的质量阈、多组织架构人员等需求;
使用 JFrog Artifactory实现全球化仓库管理和工具链集成
企业级制品仓库需具备的能力:
软件制品是指由源码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件,这些二进制通常可以直接运行在服务器上;制品库(Repository Manager)用以管理源代码编译后的构建产物,支持Docker、Maven、Helm、npm、PyPI 包等常见制品库类型。制品库可以跟源代码协同进行版本化控制,可以与本地各构建工具和云上的持续集成、持续部署无缝结合,并支持漏洞扫描等特性,是一种企业处理软件开发过程中产生的所有包类型的标准化方式。起了两方面的作用:
作为外部第三方制品库的内部镜像。
发布内部开发的制品。
软件厂商也是按照这个思路在操作,以市面上主流的产品 Nexus 的Proxy / Hosted、JFrog Artifactory的 Remote / Local Repositories,前者作为镜像后者作为内部库,但是等事情进一步复杂时,一些概念开始变得混乱。以 Maven 为例,并不是所有的 Jar 包都是这个体系的,如 IBM DB2 的 JDBC Jar,在 Maven Central Repository 或其他Public Repository 都不存在,只能去相应厂商网站手工下载并上传至 Hosted / LocalRepository 供内部引用。从功能上讲,这么做没有问题,绝大多数用户也是如此操作;但是无论从终端用户的使用、还是服务本身的运维,其实是将两件不同性质的事情混淆在了一起。无论是从 Proxy / Remote Repository 自动镜像,还是用手工方式下载上传到Hosted / Local Repository(可以看作手工镜像),这些制品本质上都是第三方库;而内部开发构建并发布到 Hosted / Local Repository 的制品,却是企业自己的软件资产。这两者在特性上的差别比想象中要大得多,本文不做展开,以后另外发文展开讨论;我们最终选择了Jfrog 的Artifactory做为企业Repository Manager,其能提供强大的全栈软件支持、元数据收集、安全扫描、主流DevOps工具链支持、高可用架构等能力;
企业级制品仓库需具备的能力:
为适应复杂的软件交付流程,tds团队搭建了 tds pipeline2.0,包括Git/SVN,Jenkins集群,Artifactory制品及元数据仓库,使用SonarQube做代码检查,Jfrog Xray做二进制包检查,使用tds的标准运维流程进行非容器的部署使用及Helm Kubernetes的容器部署;鉴于各事业部和业务开发团队的管理需求,tds团队利用artifactory的repos-path灵活搭建各级制品仓库,配置权限,使用snapshot-release管理制品的生命周期;
这样的好处是,Jenkins集群无需在临时存放构建物,做到了CI和CD的完全分离,构建环境更加灵活、资源利用率也大大提高,开发团队可以更加快捷的拿到历史构建物并进行版本管理,关联CI数据。QA团队可以基于构建物发起部署,挑选上线包,协作更加灵活;
总结
本文就软件制品仓库对于DevOps交付实践的作用做了简述,实现CI/CD的完全分离和元数据的管理是构建企业DevOps平台的必由之路,这也是进行软件生命周期管理和质量分析、研发度量的基础,微服务和云原生对CI/CD提出了新的要求:更高、更快、更强;下一步泰康云TDS团队将继续加强DevOps工具链的建设和开发,对接运营体系工具:监控、链路追踪、CMDB、微服务网关等,为业务开发提供强有力的支持,基于云提供更便捷的研发基础设施。
出处:本文转自公众号泰康云中心如有侵权,请联系我们
而今天咱们文章的主角就是这非常之干货的技术笔记:K8S+Jenkins!
注:《K8S(kubernetes)学习指南》+《Jenkins持续集成从入门到精通》双份技术文档,我已整理好成完整的PDF文件了,如需参考学习的话,转发+私信我
精品!阿里P7爆款《K8s+Jenkins》技术笔记,高质量干货必收藏
精品!阿里P7爆款《K8s+Jenkins》技术笔记,高质量干货必收藏!