使用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集群

相关文章
|
21天前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
169 93
|
2月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
275 78
|
23天前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
108 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
2月前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
126 35
|
2月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
22天前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
44 17
|
2月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
22天前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
91 12
|
23天前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
97 11
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。