使用Docker容器搭建Jenkins集群

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文讲的是使用Docker容器搭建Jenkins集群【编者的话】本文使用Jelastic Cloud搭建了Jenkins作业环境,包括手动部署和自动部署两个方式,对Jelastic Cloud感兴趣的用户,可以尝试注册一个免费账户,进行试验。
本文讲的是使用Docker容器搭建Jenkins集群【编者的话】本文使用Jelastic Cloud搭建了Jenkins作业环境,包括手动部署和自动部署两个方式,对Jelastic Cloud感兴趣的用户,可以尝试注册一个免费账户,进行试验。
  • 如果不太了解Jenkins,可以先了解如何"手动设置Jenkins"一节。
  • 如果想自动部署,可以去了解 “自动化”一节。

Jenkins,由于其管理大量节点,以及执行器(executor)对大量创建和部署提供响应的能力成为很热的用于自动持续集成的工具。每个执行器都可以运行Jenkins作业,从而避免了Jenkins服务器上运行所有任务的压力。

Jenkin运行作业的能力不应该被硬件,OS或者作业运行在哪里所限制,这样Jenkins作业机可以在任何设备上,在其他网络上(只要网络之间通过HTTP可以交流),在其它操作系统上,例如Windows和Solaris,以及其它任何强劲的硬件上运行。例如,我们可以用Jenkins为Solaris 9和其它Java 8应用编译一个C++编写的应用,因为Solaris9没有Java8发行版,如何设置一个作业机是很关键的。

尽管有内置方法配置Jenkins作业机,但是部署多遍是一个很乏味的工作,而且很容易出问题。因此,我们会使用 Jenkins Swarm插件 来安装,这样作业机可以自动发现主机并且自主注册到其中。本示例中,我们会使用Docker和Jelastic云,因为客制化docker映像,操作Jelastic控制面板,生成运行环境很容易。

Docker最初是一个为Linux分布式应用提供并行虚拟化的方案,因为很成功,Docker成为业界一个事实上的标准,社区有若干个映像,存放在不同注册器中。因为这个原因,若干云提供商都在其产品中内置了Docker方案,例如Jelastic。本例中,我们使用Jenkins Swarm和Jenkins Swarm 作业机的Docker映像。

Jelastic是一个使用容器的云PaaS平台,可以在其中运行Docker容器。本文中,我们会使用Jelastic控制面板生成一个Jenkins服务端以及两个Jenkins作业机。如果不想做这些很细致的动手工作,可以在控制面板中直接导入一个JSON文件生成相关环境。

Docker镜像

本文中的示例,我们会使用某些(客制化)Docker镜像。首先,我们使用 jelastic/jenkins-swarm 作为官方的客制化Docker镜像,内置了Jenkins Swarm插件。除此之外,我们使用从Carlos Sanchez来的csanchez/jenkins-swarm-slave 镜像来构建 jelastic/jenkins-swarm-slave 镜像,在Jenkins-slave.sh脚本中写入swarm-client要用的参数,并且写入和开始和停止函数来启停这些函数

手动设置Jenkins集群

手动设置Jenkins集群是一个很艰巨的任务,因为Jelastic控制台对于设置环境来说需要动手能力很强。我们可以通过以下步骤设置Jenkins集群:
  1. 点击Jelastic控制面板左上角New Environment按钮,打开Docker标签。
    1-1.png
  2. 然后,点击 Select Container 按钮,搜索 jelastic/jenkins-swarm。
    1-2.png
  3. 选择映像,点击 Extra 按钮,选择映像 jelastic/jenkins-swarm-slave。
    1-3.png
  4. 将Jenkins作业机容器和Jenkins服务器连接起来。点击在configuration部分的“Links”,点击Add,设置Jenkins的别名。然后保存,应用。
    1-4.png
  5. 本示例中,可以每个Docker映像使用一个节点和默认cloudlets。最后,命名环境,点击Create按钮。
    1-5.png

几分钟后,Jenkins集群就配置好了。可以在浏览器中点击Open访问了。
1-6.png

1-7.png

自动化

上一节中有足够步骤实现自动部署。在Jelastic平台上,可以导入JSON定义的环境变量,以下步骤中详细定义。
  1. 点击 New environment 按钮旁边的下拉键,选择导入。
    1.png
  2. 然后,去URL标签页,添加如下URL,点击导入: https://raw.githubusercontent. ... .json
    2.png
  3. 给出环境名,点击Install按钮,高效完成。
    3.png
  4. 导入JSON文件后,可以在浏览器中查看节点状态。
    4.png

​​现在,可以使用Jenkins作业机了(不需要复杂的命令行,错综复杂的配置,以及纠结的排错)。Jelastic提供了不同方法实现这些,无论是自动化还是手动部署。

GitHub repositories:

https://github.com/jelastic-jps/jenkins-swarm

https://github.com/jelastic-jp ... ocker

https://github.com/carlossg/je ... ocker

https://github.com/jelastic-jp ... uster

可以自己去尝试使用基于Docker容器的Jenkins环境,非常简单。只需要免费注册Jelastic账户即可。

原文链接:Jenkins Cluster Setup With Docker Containers(翻译:杨峰)

原文发布时间为:2016-07-28

本文作者:杨峰

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:使用Docker容器搭建Jenkins集群

相关文章
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
254 5
|
1月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
128 6
|
1月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
2月前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
484 0
存储 jenkins 持续交付
423 2
|
3月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
239 16
|
3月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
686 108