- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何搭建基于JenkinsApacheMesos和Marathon的弹性高可用的持续集成环境
如何搭建基于Jenkins, Apache Mesos和Marathon的弹性高可用的持续集成环境持续集成(CI)是一种软件开发实践,使用得当,它会极大的提高软件开发效率并保障软件开发质量;Jenkins是一个开源项目,它提供了一种易于使用的持续集成系统;Mesos是Apache下的一个开源的统一资源管理与调度平台,它被称为是分布式系统的内核;Marathon是注册到Apache Mesos上的管理长时应用(long-running applications)的framework,如果把Mesos比作数据中心kernel的话,那么Marathon就是init或者upstart的daemon。本文旨在探讨如何利用Jenkins,Apache Mesos和Marathon搭建一套弹性的,高可用的持续集成环境。为什么要把Jenkins运行到Apache Mesos上把Jenkins运行到Apache Mesos上,或者说利用Apache Mesos向Jenkins提供slave资源,最主要的目的是利用Mesos的弹性资源分配来提高资源利用率。通过配置Jenkins-on-Mesos插件,Jenkins Master可以在作业构建时根据实际需要动态的向Mesos申请slave节点,并在构建完成的一段时间后将节点归还给mesos。同时,Marathon会对发布到它之上的应用程序进行健康检查,从而在应用程序由于某些原因意外崩溃后自动重启该应用。这样,选择利用Marathon管理Jenkins Master保证了该构建系统的全局高可用。而且,Jenkins Master本身也通过Marathon部署运行在Mesos资源池内,进一步实现了资源共享,提高了资源利用率。下面两张图形象的说明了Marathon将Jenkins Master部署到Mesos资源池,以及Jenkins Master使用Mesos资源池进行作业构建的整个过程。环境设置为了便于理解,这里我简化了Mesos/Marathon集群的架构,不再考虑集群本身的高可用性。至于如何利用zookeeper配置高可用的mesos/marathon集群,可以参考Mesosphere的官方文档,这里不再展开。我搭建了一个包含40个节点 -3 的Mesos集群,其中一个节点用作运行Marthon及Mesos-master,其它39个节点作为mesos的slave,如下所示。配置启动Marathon,Mesos-Master和Mesos-Slave后,下面的整个操作都将在这个集群上完成。在Marathon上部署Jenkins的master实例Marathon支持web页面或者RESTapi两种方式发布应用,在192.168.3.*内网执行下面的bash命令,就会通过Marathon的RESTapi在mesos slave上启动一个Jenkins master实例。如果Jenkins master实例被成功部署,通过浏览器访问:8080(请确定你的浏览器能够访问内网,譬如可以利用设置浏览器代理等方式来搞定)可以在running tasks列表中找到jenkins,点击进入详细信息页面,我们会看到下图:访问:5050/#/frameworks并在Active Frameworks中找到Marathon,点击进入详细信息页面,可以在该页面找到Jenkins Master具体运行到Mesos哪一台Slave上,如下图所示:点击sandbox配置Jenkins Master实现弹性伸缩接下来是配置Jenkins注册成为Mesos的Framework,需要通过浏览器访问5:31052/来到Jenkins Master的UI页面。下面的截图是我逐步配置的全过程。点击”系统管理”中的”系统设置”设置Mesos Master为:5050;点击”Test Connection”测试链接,显示链接成功后,点击”应用”保存设置。Jenkins在Mesos上注册成功,访问:5050/#/frameworks,我们可以找到jenkins Framework,如下图所示:现在我们可以同时启动多个构建作业来看一下Jenkins在Mesos上的弹性伸缩,在5:31052/上新建一个名为test的工程,配置其构建过程为运行一个shell命令top,如下图所示:把该工程复制3份test2、test3和test4,并同时启动这4个工程的构建作业,Jenkins Master会向Mesos申请资源,如果资源分配成功,Jenkins Master就在获得的slave节点上进行作业构建,如下图所示:因为在前面的系统配置里我们设置了执行者数量为2(即最多有两个作业同时进行构建),所以在上图中我们看到两个正在进行构建的作业,而另外两个作业在排队等
文档评论(0)