提交 36aede6e 编写于 作者: Y yJunS

Automated deployment to GitHub Pages on 1587548027

上级 bd7ad6c6
......@@ -1853,16 +1853,13 @@ RU5ErkJggg==" />
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<a href="/event/beijing-2019-07-27/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
<a href="/event/shanghai-2019-09/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/shanghai.jpeg"></img>
</a>
......@@ -1870,11 +1867,14 @@ RU5ErkJggg==" />
<a href="/event/beijing-2019-07-27/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
</div>
</div>
</div>
......
......@@ -2326,6 +2326,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/",
"title": "",
"type": "wechat",
"date": "0001-01-01 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": " 个\u0026mdash; title: Kubernetes 构造可自由扩展的 Jenkins\ndate: 2020-04-22\ndescription: 主要介绍 Jenkins 在 kubernetes 集群上的运行模式及配置\nauthor: Gaurav Agarwal\nposter: cover.jpg\ntranslator: walker0921\noriginal: https://medium.com/better-programming/how-we-scaled-jenkins-in-less-than-a-day-ccbcada8e4a4\ntags:\n- Jenkins\n- Kubernetes\n- CI/CD\n如果你是一名在职软件工程师,那你大概率已经使用过 Jenkins,至少听说过。\nJenkins 是目前最受欢迎的开源持续集成与持续交付(CI/CD)工具。为何它会受到如此多用户的追捧?诸如 CloudBees 这样的组织及相关优秀社区提供了坚实的帮助与支持,此外,一大批开发人员贡献了数以千计的插件,加上 Jenkins 良好的易用性,都让 Jenkins 从开源工具中脱颖而出。\n基于以上特点,Jenkins 可以轻松实现以下事情:\n 结合主流版本管理工具,如 Git,Subversion 和 Mercurial; 集成代码质量管理工具,如 Sonarqube,Fortify; 使用 Maven 或 Gradle 构建 ; 使用 Junit 进行单元测试; 虽然 Jenkins 如此强大,但其入门使用却非常简单,你只需要准备一个 Web 应用服务器如 Tomcat 和一份可执行的安装文件 jenkins.war 即可。Jenkins 的运行方式有很多种,这里将介绍几种非常典型的方式。\n独立的 Jenkins 服务器 在这种模式下,只有一个 Jenkins 服务器负责所有的构建任务并使用 TCP 连接部署到远程服务器上。这也是最简单的一种方式,你完全不需要担心其他可变因素。\n主从策略 采用单机模式运行 Jenkins 有一些弊端。\n尽管单机模式你无需考虑多服务器和节点,但当大量的构建任务在同一时间运行时,服务器可能会负荷过重。你可能会考虑增加节点可并发执行的构建任务数量,但是很快就会遇到性能瓶颈。\n为了解决这个问题,你可以将部分任务分发到其他的机器上去,即 Jenkins 从节点。Jenkins 从节点会运行一段程序与主节点进行通信,判断是够有可执行的构建任务。一旦 Jenkins 主节点调度安排好构建任务,就将其分发至相应的从节点。那我们的问题解决了吗?接着往下看。\n可扩展的 Jenkins 我们进一步来探索 Jenkins 的运行方式。当你的团队中还未建立 CI 时,你可能无需多台静态服务器来执行 Jenkins 任务。\n当你无需 7*24 运行时,你的服务器可能会空闲,这时就产生资源浪费了。\n但如果你正在使用容器技术如 Kubernetes,你可以让 Jenkins 的运行架构变得更高级。简单的说,就是让主节点处理调度构建任务,把任务分发任务到从节点进行执行,但是你并不需要事先就生成相应的从节点——当从节点需要使用时,会立刻应运而生。\n这种运行架构可以解决下面的问题\nJenkins 服务器性能不再是问题 当你将 Jenkins 运行在 Kubernetes 集群中时,Jenkins 可以根据集群资源使用情况调节并启动。因为很多应用都共享一个集群,这样就能有效的节约资源——这种情况下 Jenkins 并不会运行在一个资源使用顶峰时候。\n如果你将集群部署在云端,如 Google Cloud Platform,Jenkins 的运行将会变得更加轻松灵活。GKE 不仅仅可以根据容器的情况自我调节,还可以根据集群的负载情况添加或移除节点,如此一来就有了无限扩展的能力。\n并行运行构建任务 你无需再仔细考虑同一时间并发执行的任务数目,Jenkins 会准备好一个从节点以便于运行相关的任务。\n负载均衡 Kubernetes 也可以很好的实现负载均衡,它会让 Jenkins 从节点运行在最适合的服务器上,正因如此,构建任务的运行会更快且更有效率。\n自我修复 如果你的构建任务或者从节点突然遇到问题了,这个时候你完全不用担心,Jenkins 会自动移除有问题的从节点并启动一个新的从节点。\n这样会节省大量的故障排查时间,因为每个从节点不是必须存在的,如果某个从节点遇到障碍,Jenkins 会请求 Kubernetes 移除它并启动一个全新的从节点。就是这么简单。\n我们选择哪种运行架构 一开始,我们可能采用单机模式使用 Jenkins,半年内可能不会有什么问题,当使用的人越来越多,负载也越来越高,最终我们都不得不面临负载超出范围的问题。\n当我们还没有使用 Kubernetes,解决办法可能是搭建主从架构或给单机服务器增加 CPU 和内存。我们可能会选择后面这种办法,因为这是最有效和最直接的方式。然而这种方法并不能彻底解决我们的问题。\n如何解决这个问题 多次尝试后,我们公司 CTO 提出云部署的方式,我们决定将 Jenkins 部署到云端并和已有的 Kubernetes 集群结合在一起,除此之外,我们还将其他的工具也一并迁移到了云端。是不是很简单?让我们来验证一下。\n我们有两个方案。一是将主节点运行在容器中的单机模式,另外一个方案就是利用将 Jenkins 运行在 Kubernetes 集群 。后者我们提出以下2层拓扑结构:\n Jenkins 主节点作为控制器,管理用户登陆及调度构建任务; 使用 Kubernetes 启动额外的 Jenkins 从节点容器,用户将在这些从节点容器中触发任务并运行,当任务成功执行完成后,容器会被移除; 接下来我们看看如何进行配置。\n创建 Jenkins 主节点实例镜像 创建主节点实例镜像的 Dockerfile 如下:\n version: \u0026quot;3\u0026quot; FROM jenkins/jenkins:centos # # Distributed Builds plugins RUN /usr/local/bin/install-plugins.sh ssh-slaves # # install Notifications and Publishing plugins RUN /usr/local/bin/install-plugins.sh email-ext RUN /usr/local/bin/install-plugins.sh mailer RUN /usr/local/bin/install-plugins.sh slack # # Artifacts RUN /usr/local/bin/install-plugins.sh htmlpublisher # # UI RUN /usr/local/bin/install-plugins.sh greenballs RUN /usr/local/bin/install-plugins.sh simple-theme-plugin # # Scaling RUN /usr/local/bin/install-plugins.sh kubernetes # # install Maven USER root RUN yum update -y \u0026amp;\u0026amp; yum install -y maven USER jenkins 构建镜像\ndocker build -t \u0026lt;your-docker-registry\u0026gt;/jenkins-master:0.0.1 .\n将镜像推送至中央仓库\ndocker push \u0026lt;your-docker-registry\u0026gt;/jenkins-master:0.0.1\n这个 Dockerfile 很简单,不需要安装任何软件,因为主节点不用运行任何构建任务,而仅仅是管理各节点。你可以根据自己的需求修改。\n自启动 Jenkins 主节点运行实例 接下来使用 Kubernetes mainfest 文件启动Jenkins 主节点的运行实例,文件内容如下:\n apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: jenkins name: jenkins namespace: default apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: jenkins-crb roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: jenkins namespace: default apiVersion: v1 kind: PersistentVolumeClaim metadata: name: jenkins-pv-claim labels: app: jenkins spec: accessModes: - ReadWriteOnce resources: requests: storage: 30Gi apiVersion: apps/v1 kind: Deployment metadata: name: jenkins-deployment labels: app: jenkins spec: replicas: 1 selector: matchLabels: app: jenkins template: metadata: labels: app: jenkins spec: serviceAccountName: jenkins volumes: - name: jenkins-pv-storage persistentVolumeClaim: claimName: jenkins-pv-claim containers: - name: jenkins image: \u0026lt;your-docker-registry\u0026gt;/jenkins-master:0.0.1 env: - name: JAVA_OPTS value: -Djenkins.install.runSetupWizard=false imagePullPolicy: Always ports: - containerPort: 8080 - containerPort: 50000 volumeMounts: - mountPath: \u0026quot;/var/jenkins_home\u0026quot; name: jenkins-pv-storage securityContext: privileged: true imagePullSecrets: - name: regcred initContainers: - name: volume-mount-data-log image: busybox imagePullPolicy: Always command: [\u0026quot;sh\u0026quot;, \u0026quot;-c\u0026quot;, \u0026quot;chown -R 1000:1000 /var/jenkins_home\u0026quot;] volumeMounts: - mountPath: \u0026quot;/var/jenkins_home\u0026quot; name: jenkins-pv-storage apiVersion: v1 kind: Service metadata: name: jenkins-service labels: app: jenkins-svc spec: ports: - port: 8080 targetPort: 8080 protocol: TCP name: app - port: 50000 targetPort: 50000 protocol: TCP name: jnlp selector: app: jenkins apiVersion: extensions/v1beta1 kind: Ingress metadata: name: jenkins-ingress annotations: nginx.ingress.kubernetes.io/add-base-url: \u0026quot;true\u0026quot; nginx.ingress.kubernetes.io/proxy-body-size: \u0026quot;0\u0026quot; spec: rules: - host: jenkins.example.com http: paths: - path: / backend: serviceName: jenkins-service servicePort: 8080 - host: jenkinsmaster.example.com http: paths: - path: / backend: serviceName: jenkins-service servicePort: 50000 manifest file 主要定义了以下内容:\n 默认命名空间中增加一个名为 Jenkins 的服务; jenkins-crb,将 jenkins 服务与集群管理员 cluster-admin 绑定,这就允许 Jenkins 主节点和 Kubernetes 集群进行通信并执行一些集群管理的任务如启动或停止 pods; jenkins-pv-claim,作为一个持久化的数据卷,可以保存 30GB 的Jenkins 数据; Jenkins 主节点运行实例启动后,Jenkins 服务和 jenkins-pv-claim 数据卷对外暴露的端口分别是8080和50000 说明 Jenkins 主节点在集群中的 IP; 设置 Jenkins 对外提供的 URL; 上述配置生效后,你可以自行选择负载均衡方式或者从节点运行方式,也可以根据需要改变,然后使用 kubectl apply-f\u0026lt;manifest_file\u0026gt; 使文件生效。接下来你就可以在浏览器中通过Jenkins.example.com 上(或自行定义的url)来访问 Jenkins。\n构建从节点运行实例镜像 相比主节点,从节点镜像有所不同,它们并不会管理你的构建任务而仅仅是执行而已。因此,我们需确保从节点符合运行的所有要求。\n既然我们目前所构建的应用都是运行在容器上的微服务,我们需在 Jenkins 的从节点服务器上安装 docker,只有这样我们才能在从节点上运行 docker。\n所用的Dockerfile 如下:\n FROM jenkins/jnlp-slave # # install Maven USER root RUN apt update -y RUN apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common RUN curl -fsSL https://apt.dockerproject.org/gpg | apt-key add - RUN apt-add-repository \u0026quot;deb https://apt.dockerproject.org/repo debian-$(lsb_release -cs) main\u0026quot; RUN apt-get update RUN apt-cache policy docker-engine RUN apt-get install -y docker-engine=1.13.1-0~debian-stretch VOLUME /root/.docker RUN cd /usr/bin \u0026amp;\u0026amp; curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/linux/amd64/kubectl RUN chmod +x /usr/bin/kubectl COPY config /root/.kube/ RUN wget -O /root/helm.tar.gz https://get.helm.sh/helm-v2.15.2-linux-amd64.tar.gz RUN cd /root \u0026amp;\u0026amp; tar -zxvf helm.tar.gz RUN cd /root \u0026amp;\u0026amp; mv /root/linux-amd64/helm /usr/bin/helm RUN chmod +x /usr/bin/helm RUN cp -a /usr/bin/helm /usr/local/bin/helm RUN helm init --upgrade USER root 构建镜像\ndocker build -t \u0026lt;your-docker-registry\u0026gt;/jenkins-slave .\n将镜像推送至中央仓库\ndocker push \u0026lt;your-docker-registry\u0026gt;/jenkins-slave\n在Jenkins 上配置 Kubernetes 集群 从节点的运行镜像已经推送至中央仓库后,下一步就是在 Jenkins 上设置一旦有构建任务触发时如何用 Kunernetes 启动一个运行容器。主要步骤分为以下两个步骤:\n通过 kubectl cluster-info | grep master 获取 URL 或 Kunernetes API\n在 Jenkins 的 cloud configure 界面 [your_jenkins_url]/configureClouds/)配置如下:\n最后记得保存以上设置\n禁用主节点执行器 为了确保主节点仅仅作为控制器而不执行具体的构建任务,我们需要将主节点的 executors 设置为0.\n访问[your_jenkins_url]/computer/(master)/configure ,根据下图指示executors 设置为0并保存\n测试配置是否生效 创建一个自由风格任务,并命名为 job-1,并根据以下步骤进行配置\n创建一个和 job-1 完全一样的任务,命名为 job-2\n同时启动两个任务,此时你会注意到这两个构建任务都分别在 kubernetes 生成了一个新的 pod ,并且同时执行着。\n在控制台查看两个任务的输出:\n",
"auhtor": "",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/weibo/weibo-operating-charter/",
"title": "",
......@@ -2468,6 +2468,30 @@ Jenkins 培训 大纲 Jenkins 项目介绍 安装、部署 传统环境 容器
<description></description>
</item>
<item>
<title></title>
<link>https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/</guid>
<description>&amp;mdash; title: Kubernetes 构造可自由扩展的 Jenkins
date: 2020-04-22
description: 主要介绍 Jenkins 在 kubernetes 集群上的运行模式及配置
author: Gaurav Agarwal
poster: cover.jpg
translator: walker0921
original: https://medium.com/better-programming/how-we-scaled-jenkins-in-less-than-a-day-ccbcada8e4a4
tags:
- Jenkins
- Kubernetes
- CI/CD
如果你是一名在职软件工程师,那你大概率已经使用过 Jenkins,至少听说过。
Jenkins 是目前最受欢迎的开源持续集成与持续交付(CI/CD)工具。为何它会受到如此多用户的追捧?诸如 CloudBees 这样的组织及相关优秀社区提供了坚实的帮助与支持,此外,一大批开发人员贡献了数以千计的插件,加上 Jenkins 良好的易用性,都让 Jenkins 从开源工具中脱颖而出。
基于以上特点,Jenkins 可以轻松实现以下事情:
结合主流版本管理工具,如 Git,Subversion 和 Mercurial; 集成代码质量管理工具,如 Sonarqube,Fortify; 使用 Maven 或 Gradle 构建 ; 使用 Junit 进行单元测试; 虽然 Jenkins 如此强大,但其入门使用却非常简单,你只需要准备一个 Web 应用服务器如 Tomcat 和一份可执行的安装文件 jenkins.war 即可。Jenkins 的运行方式有很多种,这里将介绍几种非常典型的方式。
独立的 Jenkins 服务器 在这种模式下,只有一个 Jenkins 服务器负责所有的构建任务并使用 TCP 连接部署到远程服务器上。这也是最简单的一种方式,你完全不需要担心其他可变因素。</description>
</item>
<item>
<title></title>
<link>https://jenkins-zh.cn/weibo/weibo-operating-charter/</link>
......
......@@ -874,6 +874,10 @@
<loc>https://jenkins-zh.cn/tutorial/</loc>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/</loc>
</url>
<url>
<loc>https://jenkins-zh.cn/weibo/weibo-operating-charter/</loc>
</url>
......
......@@ -240,7 +240,7 @@ var trackOutboundLink = function(id, url) {
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2019/02/2019-02-13-outreachy-audit-log-plugin/" class="dib f6 pl1 hover-bg-light-gray br-100" title="Jenkins 对审计日志的支持 ">
<a href="https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/" class="dib f6 pl1 hover-bg-light-gray br-100" title=" ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
......
......@@ -261,7 +261,7 @@ var trackOutboundLink = function(id, url) {
<a href="https://jenkins-zh.cn/wechat/articles/2018/12/2018-12-19-jenkins-survey/" class="dib f6 pr1 hover-bg-light-gray br-100" title="2018年 Jenkins 国内使用情况调查问卷">
<a href="https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/" class="dib f6 pr1 hover-bg-light-gray br-100" title="">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
<path d="M0 0h24v24H0z" fill="none"/>
......
......@@ -389,10 +389,10 @@ var trackOutboundLink = function(id, url) {
<li><a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/">在大型企业里维护多分支流水线</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
<li><a href="/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/">Jenkins 文档特别兴趣小组</a></li>
</ul>
......
......@@ -1895,6 +1895,30 @@ import jenkins.model.Jenkins import hudson.model.Job import jenkins.model.BuildD
我期待我们将会一起完成了不起的作品,而且我希望在将来能够帮助更多的 Outreachy 实习生!</description>
</item>
<item>
<title></title>
<link>https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/</guid>
<description>&amp;mdash; title: Kubernetes 构造可自由扩展的 Jenkins
date: 2020-04-22
description: 主要介绍 Jenkins 在 kubernetes 集群上的运行模式及配置
author: Gaurav Agarwal
poster: cover.jpg
translator: walker0921
original: https://medium.com/better-programming/how-we-scaled-jenkins-in-less-than-a-day-ccbcada8e4a4
tags:
- Jenkins
- Kubernetes
- CI/CD
如果你是一名在职软件工程师,那你大概率已经使用过 Jenkins,至少听说过。
Jenkins 是目前最受欢迎的开源持续集成与持续交付(CI/CD)工具。为何它会受到如此多用户的追捧?诸如 CloudBees 这样的组织及相关优秀社区提供了坚实的帮助与支持,此外,一大批开发人员贡献了数以千计的插件,加上 Jenkins 良好的易用性,都让 Jenkins 从开源工具中脱颖而出。
基于以上特点,Jenkins 可以轻松实现以下事情:
结合主流版本管理工具,如 Git,Subversion 和 Mercurial; 集成代码质量管理工具,如 Sonarqube,Fortify; 使用 Maven 或 Gradle 构建 ; 使用 Junit 进行单元测试; 虽然 Jenkins 如此强大,但其入门使用却非常简单,你只需要准备一个 Web 应用服务器如 Tomcat 和一份可执行的安装文件 jenkins.war 即可。Jenkins 的运行方式有很多种,这里将介绍几种非常典型的方式。
独立的 Jenkins 服务器 在这种模式下,只有一个 Jenkins 服务器负责所有的构建任务并使用 TCP 连接部署到远程服务器上。这也是最简单的一种方式,你完全不需要担心其他可变因素。</description>
</item>
<item>
<title>2018年 Jenkins 国内使用情况调查问卷</title>
<link>https://jenkins-zh.cn/wechat/articles/2018/12/2018-12-19-jenkins-survey/</link>
......
......@@ -353,15 +353,30 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/wechat/articles/2018/12/2018-12-19-jenkins-survey/" class="link primary-color dim">2018年 Jenkins 国内使用情况调查问卷</a>
<a href="/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/" class="link primary-color dim"></a>
</h1>
<div class="lh-copy links">
共建开放、包容、活跃的 Jenkins 社区
&mdash; title: Kubernetes 构造可自由扩展的 Jenkins
date: 2020-04-22
description: 主要介绍 Jenkins 在 kubernetes 集群上的运行模式及配置
author: Gaurav Agarwal
poster: cover.jpg
translator: walker0921
original: https://medium.com/better-programming/how-we-scaled-jenkins-in-less-than-a-day-ccbcada8e4a4
tags:
- Jenkins
- Kubernetes
- CI/CD
如果你是一名在职软件工程师,那你大概率已经使用过 Jenkins,至少听说过。
Jenkins 是目前最受欢迎的开源持续集成与持续交付(CI/CD)工具。为何它会受到如此多用户的追捧?诸如 CloudBees 这样的组织及相关优秀社区提供了坚实的帮助与支持,此外,一大批开发人员贡献了数以千计的插件,加上 Jenkins 良好的易用性,都让 Jenkins 从开源工具中脱颖而出。
基于以上特点,Jenkins 可以轻松实现以下事情:
结合主流版本管理工具,如 Git,Subversion 和 Mercurial; 集成代码质量管理工具,如 Sonarqube,Fortify; 使用 Maven 或 Gradle 构建 ; 使用 Junit 进行单元测试; 虽然 Jenkins 如此强大,但其入门使用却非常简单,你只需要准备一个 Web 应用服务器如 Tomcat 和一份可执行的安装文件 jenkins.war 即可。Jenkins 的运行方式有很多种,这里将介绍几种非常典型的方式。
独立的 Jenkins 服务器 在这种模式下,只有一个 Jenkins 服务器负责所有的构建任务并使用 TCP 连接部署到远程服务器上。这也是最简单的一种方式,你完全不需要担心其他可变因素。
<a href="/wechat/articles/2018/12/2018-12-19-jenkins-survey/" class="f6 mt2 db link primary-color dim">
<a href="/wechat/articles/2020/04/2020-04-22-scale-your-jenkins-agents-using-kubernetes/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -380,15 +395,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/wechat/articles/2018/12/2018-12-5-custom-war-packager/" class="link primary-color dim">Custom WAR Packager</a>
<a href="/wechat/articles/2018/12/2018-12-19-jenkins-survey/" class="link primary-color dim">2018年 Jenkins 国内使用情况调查问卷</a>
</h1>
<div class="lh-copy links">
打造你自己的 Jenkins!了解自定义 WAR/Docker Packager
共建开放、包容、活跃的 Jenkins 社区
<a href="/wechat/articles/2018/12/2018-12-5-custom-war-packager/" class="f6 mt2 db link primary-color dim">
<a href="/wechat/articles/2018/12/2018-12-19-jenkins-survey/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -407,15 +422,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/wechat/articles/2018/12/2018-12-26-official-docker-image/" class="link primary-color dim">Docker Hub 上的官方 Jenkins 镜像</a>
<a href="/wechat/articles/2018/12/2018-12-5-custom-war-packager/" class="link primary-color dim">Custom WAR Packager</a>
</h1>
<div class="lh-copy links">
正确地使用 Jenkins 镜像
打造你自己的 Jenkins!了解自定义 WAR/Docker Packager
<a href="/wechat/articles/2018/12/2018-12-26-official-docker-image/" class="f6 mt2 db link primary-color dim">
<a href="/wechat/articles/2018/12/2018-12-5-custom-war-packager/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -434,15 +449,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/wechat/articles/2018/12/2018-12-12-gasc/" class="link primary-color dim">Jenkins Configuration-as-Code: 看,我都不用手动配置</a>
<a href="/wechat/articles/2018/12/2018-12-26-official-docker-image/" class="link primary-color dim">Docker Hub 上的官方 Jenkins 镜像</a>
</h1>
<div class="lh-copy links">
JCasC 允许我们在启动时或通过 web UI 按需在 Jenkins master 上应用一组 YAML 文件
正确地使用 Jenkins 镜像
<a href="/wechat/articles/2018/12/2018-12-12-gasc/" class="f6 mt2 db link primary-color dim">
<a href="/wechat/articles/2018/12/2018-12-26-official-docker-image/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -461,20 +476,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-15-kubecon-cn/" class="link primary-color dim">Jenkins 中文社区邀您来上海共同参与2019年的国际开源盛宴</a>
<a href="/wechat/articles/2018/12/2018-12-12-gasc/" class="link primary-color dim">Jenkins Configuration-as-Code: 看,我都不用手动配置</a>
</h1>
<div class="lh-copy links">
KubeCon + CloudNativeCon | Open Source Summit | 持续交付峰会 中国2019 2019年4月10日,旧金山 - Linux基金会是一家以开源促进大众创新的非营利组织,今天公布将于2019年6月24至26日在中国上海举行的 KubeCon + CloudNativeCon + Open Source Summit 中国2019日程。
Open Source Summit 中国2019前身为 LinuxCon + ContainerCon + CloudOpen 中国(LC3),是开源社区寻求合作、共享信息、了解当今最有影响力的开源技术和议题的重要平台,包括:云原生、无服务器、微服务、物联网、人工智能、网络、Linux 等。
2019年,首次将Open Source Summit中国和KubeCon + CloudNativeCon中国整合成一项活动,只需购票一次即可参加KubeCon + CloudNativeCon + Open Source Summit中国。
本届持续交付峰会将由 CNCF 承办在大会的第 0 天举行,汇聚了各个开源 CI/CD 社区。
Jenkins 中文社区成员在大会上将进行分享 Jenkins 中文社区成员夏润泽(北京优帆科技有限公司)将在大会上作为演讲嘉宾为大家带来主题为 Jenkins X 在 kubernetes 之上运行的无服务器 Jenkins 的分享。
Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同时,我们希望能够与更多的小伙伴们一同在线上完善开源社区氛围、线下深度互动,努力构建一个有内容、有态度的优质技术社区。
JCasC 允许我们在启动时或通过 web UI 按需在 Jenkins master 上应用一组 YAML 文件
<a href="/wechat/articles/2019/04/2019-04-15-kubecon-cn/" class="f6 mt2 db link primary-color dim">
<a href="/wechat/articles/2018/12/2018-12-12-gasc/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......
......@@ -216,6 +216,38 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-15-kubecon-cn/" class="link primary-color dim">Jenkins 中文社区邀您来上海共同参与2019年的国际开源盛宴</a>
</h1>
<div class="lh-copy links">
KubeCon + CloudNativeCon | Open Source Summit | 持续交付峰会 中国2019 2019年4月10日,旧金山 - Linux基金会是一家以开源促进大众创新的非营利组织,今天公布将于2019年6月24至26日在中国上海举行的 KubeCon + CloudNativeCon + Open Source Summit 中国2019日程。
Open Source Summit 中国2019前身为 LinuxCon + ContainerCon + CloudOpen 中国(LC3),是开源社区寻求合作、共享信息、了解当今最有影响力的开源技术和议题的重要平台,包括:云原生、无服务器、微服务、物联网、人工智能、网络、Linux 等。
2019年,首次将Open Source Summit中国和KubeCon + CloudNativeCon中国整合成一项活动,只需购票一次即可参加KubeCon + CloudNativeCon + Open Source Summit中国。
本届持续交付峰会将由 CNCF 承办在大会的第 0 天举行,汇聚了各个开源 CI/CD 社区。
Jenkins 中文社区成员在大会上将进行分享 Jenkins 中文社区成员夏润泽(北京优帆科技有限公司)将在大会上作为演讲嘉宾为大家带来主题为 Jenkins X 在 kubernetes 之上运行的无服务器 Jenkins 的分享。
Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同时,我们希望能够与更多的小伙伴们一同在线上完善开源社区氛围、线下深度互动,努力构建一个有内容、有态度的优质技术社区。
<a href="/wechat/articles/2019/04/2019-04-15-kubecon-cn/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-16-localization-zh-cn-plugin/" class="link primary-color dim">Jenkins 中文语言包</a>
</h1>
......@@ -453,33 +485,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2018/11/2018-11-21-validate-jenkinsfile/" class="link primary-color dim">在 VS Code 中校验 Jenkinsfile</a>
</h1>
<div class="lh-copy links">
VS Code 中的 Jenkinsfile 插件
<a href="/wechat/articles/2018/11/2018-11-21-validate-jenkinsfile/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -216,6 +216,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2018/11/2018-11-21-validate-jenkinsfile/" class="link primary-color dim">在 VS Code 中校验 Jenkinsfile</a>
</h1>
<div class="lh-copy links">
VS Code 中的 Jenkinsfile 插件
<a href="/wechat/articles/2018/11/2018-11-21-validate-jenkinsfile/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/01/2019-01-16-webhook-firewalls/" class="link primary-color dim">在安全防火墙内通过 WebHook 触发构建</a>
</h1>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册