index.html 32.8 KB
Newer Older
LinuxSuRen's avatar
LinuxSuRen 已提交
1 2 3
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">

4 5 6 7 8 9
<head>
  <meta charset="utf-8">
  
  <link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
  <link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
  <link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
LinuxSuRen's avatar
LinuxSuRen 已提交
10

11 12 13 14 15 16 17 18 19 20 21 22 23 24
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  
  <title>在 Kubernetes 上使用 Jenkins  - Jenkins 中文社区</title>
  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  
  <meta name="description" content="Jenkins 是一个功能强大的自动化和 CI/CD 工具,可以成为 Kubernetes 流水线的重要组成部分">
  
  
  <meta name="keywords" content="Jenkins Kubernetes,Kubernetes,Jenkins">
  

  <meta name="viewport" content="width=device-width,minimum-scale=1">
  <meta name="generator" content="Hugo 0.53" />
LinuxSuRen's avatar
LinuxSuRen 已提交
25

26 27 28 29 30 31 32 33 34 35 36
  
  <META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
  

  <link href='/dist/main.css' rel='stylesheet' type="text/css" /><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link href="/images/favicon.ico" rel="shortcut icon" type="image/x-icon">
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#0594cb">
<meta name="theme-color" content="#ffffff"><style>
LinuxSuRen's avatar
LinuxSuRen 已提交
37 38 39 40 41 42 43 44
  img.avatar {
    width: 32px;
    display: inline;
  }
</style>
<meta property="og:title" content="在 Kubernetes 上使用 Jenkins " />
<meta property="og:description" content="Jenkins 是一个功能强大的自动化和 CI/CD 工具,可以成为 Kubernetes 流水线的重要组成部分" />
<meta property="og:type" content="article" />
45 46 47
<meta property="og:url" content="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/" /><meta property="article:published_time" content="2019-07-29T00:00:00&#43;00:00"/>
<meta property="article:modified_time" content="2019-07-29T00:00:00&#43;00:00"/>

LinuxSuRen's avatar
LinuxSuRen 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
<meta itemprop="name" content="在 Kubernetes 上使用 Jenkins ">
<meta itemprop="description" content="Jenkins 是一个功能强大的自动化和 CI/CD 工具,可以成为 Kubernetes 流水线的重要组成部分">


<meta itemprop="datePublished" content="2019-07-29T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-07-29T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="219">



<meta itemprop="keywords" content="plugins,pipeline,Kubernetes,ci,cd," />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="在 Kubernetes 上使用 Jenkins "/>
<meta name="twitter:description" content="Jenkins 是一个功能强大的自动化和 CI/CD 工具,可以成为 Kubernetes 流水线的重要组成部分"/>

63
  
LinuxSuRen's avatar
LinuxSuRen 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-4216293-5');



var trackOutboundLink = function(id, url) {
  console.log("track:", id, url)
  gtag('event', 'click', {
    'event_category': 'outbound',
    'event_label': id,
    'transport_type': 'beacon',
    'event_callback': function(){document.location = url;}
  });
}

</script>

86 87 88 89 90
  
</head>

<body class="ma0 sans-serif bg-primary-color-light">
  
LinuxSuRen's avatar
LinuxSuRen 已提交
91 92 93 94 95
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">

  <div class="center flex-ns flex-wrap items-center justify-start mw9">

    <h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
96
      <a href="https://jenkins-zh.cn" class="link white">
LinuxSuRen's avatar
LinuxSuRen 已提交
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
         Jenkins 中文社区
      </a>
    </h1>
    <ul class="list ma0 pa0 dn dib-l">
      
        <li class="f5 dib mr4" role="menuitem">
            
            
          <a href="/wechat/" class="dim link light-silver"
            >
            博客
              
            
          </a>
        </li>
      
LinuxSuRen's avatar
LinuxSuRen 已提交
113 114 115 116 117 118 119 120 121 122 123
        <li class="f5 dib mr4" role="menuitem">
            
            
          <a href="/tutorial/" class="dim link light-silver"
            >
            教程
              
            
          </a>
        </li>
      
LinuxSuRen's avatar
LinuxSuRen 已提交
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
        <li class="f5 dib mr4" role="menuitem">
            
            
          <a href="/event/" class="dim link light-silver"
            >
            活动
              
            
          </a>
        </li>
      
        <li class="f5 dib mr4" role="menuitem">
            
            
          <a href="/partner/" class="dim link light-silver"
            >
            合作伙伴
              
            
          </a>
        </li>
      
        <li class="f5 dib mr4" role="menuitem">
            
            
          <a href="/about/" class="dim link light-silver"
            >
            关于我们
              
            
          </a>
        </li>
      
        <li class="f5 dib mr4" role="menuitem">
            
            
          <a href="http://jenkins.io/zh" class="dim link light-silver"
            target="_blank">
            Jenkins 官网
              
            
              <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>

            
          </a>
        </li>
      
    </ul>

    <div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
  <fieldset class="bn ma0 pa0">
    <label class="clip" for="email-address">Search</label>
    <input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
      placeholder="搜索文档" type="text"
      name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
  </fieldset>
</form>
</div>

    <div class="list ma0 pa0 dn dib-l"></div>

    <span class="absolute mt1 mt2-l pr3 right-0 top-0">

<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>

  </div>
</nav>

195 196
  
  <main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
LinuxSuRen's avatar
LinuxSuRen 已提交
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
    
<main>
  <article class="w-100 ph4 pb5 pb6-ns pt1 pt5-ns">
    <div class="flex-l">
      

      <div class="order-2 w-100 w-20-l ph5-m ph0-l mb4 sticky">





  <aside class="mw5 br3 mv3 nested-links">
    
    
      
        <h3 class="f4 dib author">
            yan
        </h3>

      
      
      <a href="https://github.com/baobeizuoshoubuli" target="_blank" class="link dim v-mid dib">
        <svg version="1.1" fill="gray" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="18" viewBox="0 0 27 32">
<path d="M9.28 21.44q0.064-0.128-0.064-0.256-0.16-0.128-0.256-0.032-0.064 0.128 0.064 0.224 0.16 0.128 0.256 0.064zM8.768 20.704q-0.096-0.128-0.224-0.096-0.096 0.096 0 0.224 0.128 0.16 0.224 0.096t0-0.224zM8.032 19.968q0.032-0.064-0.096-0.128-0.128-0.032-0.128 0.032-0.064 0.096 0.064 0.16 0.16 0.032 0.16-0.064zM8.416 20.384q0.032 0 0.032-0.064t-0.064-0.096q-0.128-0.128-0.192-0.064t0.032 0.192q0.096 0.096 0.192 0.032zM9.952 21.728q0.032-0.128-0.16-0.192-0.16-0.064-0.224 0.064t0.16 0.192q0.16 0.064 0.224-0.064zM10.688 21.792q0-0.16-0.192-0.16t-0.192 0.16 0.192 0.128 0.192-0.128zM11.392 21.664q-0.032-0.128-0.224-0.096t-0.16 0.16q0.032 0.16 0.192 0.096t0.192-0.16zM22.848 16q0-3.776-2.656-6.464t-6.464-2.688-6.464 2.688-2.688 6.464q0 2.976 1.76 5.376t4.48 3.296q0.32 0.064 0.48-0.096t0.16-0.352q0-0.928-0.032-1.696-0.096 0.032-0.256 0.064t-0.64 0.032-0.864-0.096-0.768-0.352-0.544-0.736q-0.416-1.056-1.024-1.312-0.032-0.032-0.064-0.064l-0.16-0.16t-0.096-0.16 0.064-0.128 0.352-0.064q0.096 0 0.256 0.032t0.544 0.288 0.576 0.64q0.288 0.48 0.672 0.736t0.768 0.256 0.704-0.064 0.512-0.16q0.128-0.864 0.608-1.248-0.896-0.096-1.536-0.32t-1.312-0.704-0.992-1.344-0.352-2.144q0-1.408 0.96-2.464-0.448-1.088 0.096-2.4 0.32-0.128 0.96 0.128t1.088 0.512l0.448 0.288q1.056-0.288 2.304-0.288t2.272 0.288q0.192-0.128 0.512-0.32t0.992-0.448 1.024-0.16q0.512 1.312 0.096 2.4 0.928 1.056 0.928 2.464 0 1.024-0.256 1.792t-0.64 1.248-0.928 0.8-1.12 0.448-1.216 0.224q0.608 0.544 0.608 1.696 0 0.704 0 1.6t-0.032 0.896q0 0.224 0.16 0.352t0.48 0.096q2.752-0.928 4.512-3.296t1.728-5.376zM27.424 7.424v17.152q0 2.112-1.504 3.616t-3.648 1.536h-17.12q-2.144 0-3.648-1.536t-1.504-3.616v-17.152q0-2.112 1.504-3.616t3.648-1.536h17.12q2.144 0 3.648 1.536t1.504 3.616z"></path>
</svg>

      </a>

  
  <div>
    作者:<span class="originalAuthor">Juan Ignacio Giro</span>
    <div>
      <a class="originalLink" href="https://dzone.com/articles/leveraging-jenkins-on-kubernetes" target="_blank">原文链接</a>
    </div>
  </div>
  
  </aside>


<aside class="fixed-lTK mw5-l right-0 f6 bl-l b--moon-gray pv4 pv0-ns ph4-l nested-list-reset nested-links nested-copy-line-height">
	
239
		<p class="b">内容目录</p>
LinuxSuRen's avatar
LinuxSuRen 已提交
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
  	<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#ci-cd-流水线">CI/CD 流水线</a></li>
<li><a href="#在-jenkins-中设置一个流水线">在 Jenkins 中设置一个流水线</a></li>
<li><a href="#在不同的情况下推动变化">在不同的情况下推动变化</a></li>
<li><a href="#jenkins-和-kubernetes">Jenkins 和 Kubernetes</a></li>
</ul></li>
</ul>
</nav>
	

	<div date-pref>
		<a href=".." class="dib f6 pl1 hover-bg-light-gray br-100">
			<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
      <path transform="rotate(90 11.704999923706055,12.000000000000002) " d="m15.41,7.41l-1.41,-1.41l-6,6l6,6l1.41,-1.41l-4.58,-4.59l4.58,-4.59z" id="svg_1"/>
    <path d="M0 0h24v24H0z" fill="none"/>
</svg>

		</a>
		
		
263
			<a href="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-30-jenkins-meetup/" class="dib f6 pl1 hover-bg-light-gray br-100" title="开源人线下见面会 ">
LinuxSuRen's avatar
LinuxSuRen 已提交
264 265 266 267 268 269 270
				<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"/>
</svg>

			</a>
		
LinuxSuRen's avatar
LinuxSuRen 已提交
271 272

		
273
			<a href="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/" class="dib f6 pr1 hover-bg-light-gray br-100" title="Jenkins 每周版更新">
LinuxSuRen's avatar
LinuxSuRen 已提交
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387
			<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"/>
</svg>

			</a>
		
	</div>

</aside>
</div>

      <div class="order-1 w-80-l mw8 ph0 ph5-ns mid-gray nested-copy-line-height no-underline nested-links nested-img nested-copy-seperator nested-blockquote mt0-ns" style="flex-grow:1;">
        <button id="copyMe" onclick="copyMe()" style="display: none">Copy Me</button>
        <div class="documentation-copy center mw8">
          <div id="readout" class="fixed right-0 bottom-0">
          </div>
          <header class="flex-none w-100">
  
  <h1 class="lh-title mb3 mv0 pt3 primary-color-dark">在 Kubernetes 上使用 Jenkins </h1>
</header>

<aside class="bt bw1 pt3 mt2 mid-gray b--mid-gray fn w-100">
  
    <div class="f4 fw4 lh-copy">
      Jenkins 是一个功能强大的自动化和 CI/CD 工具,可以成为 Kubernetes 流水线的重要组成部分
    </div>
  

  
</aside>



<div class="prose" id="prose">



<p><img src="sea.jpg" alt="sea" /></p>

<p>​有几种方法可以在 DevOps 环境中管理您的云基础架构。 DevOps 是一种鼓励快速流动的应用程序开发以及促进 IT 团队开发、测试、发布过程无缝无缝衔接的方法。</p>

<p>Jenkins 通过自动化将持续集成(CI)和持续交付(CD)无缝集成到开发流程中来优化工作流程。</p>

<p>可以使用 Kubernetes 中的 Jenkins pod 部署这些技术, Jenkins pod 可以根据团队的具体需求进行扩展。</p>

<h2 id="ci-cd-流水线">CI/CD 流水线</h2>

<p>Jenkins 是 CI/CD 的同义词,它是自动化开发、部署应用程序和微服务的完美工具,目前是市场上最流行的自动化工具。 Jenkins 拥有1000多个插件,可以轻松地与其他系统(包括 Kubernetes )集成。插件不仅提供多系统集成,而且显著增强了 Jenkins 的能力,使 Jenkins 能够帮助您构建和部署几乎任何类型的项目。我们在<a href="https://caylent.com/jenkins-plugins/">另一篇文章</a>中介绍了生活中最需要的20个 Jenkins 插件。</p>

<p>​由于 Jenkins 和 Kubernetes 的原生兼容性,设置自己的 CI/CD 流水线非常容易。与基于 VM 的部署相比,在 Kubernetes 上部署 Jenkins 优势更明显。例如,获得按需拥有特定于 Jenkins slaves (代理)项目的能力,而不是让一个 vm 池空闲等待任务。它将使用 master-agent  体系结构来完全自动化微服务的创建和部署以及测试和部署所需的环境。</p>

<p>​可以使用 <a href="https://github.com/helm/helm">Helm</a><a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/">kubectl</a> 或 GUIs 部署 Jenkins ,以便将新的 pods 部署到集群中。安装后,下一步是为 <a href="https://plugins.jenkins.io/kubernetes">K8s</a> 配置 Jenkins 插件。我们需要配置系统设置,例如,代理在哪里找到 Jenkins master ,代理将使用的 Docker 镜像等。当然,将 Jenkins 配置为与 CI/CD 工作流一起工作也是至关重要的,包括设置测试和部署参数以及要如何设置 Jenkins 控制的集群。一旦 Jenkins 启动并运行,就可以实现一个完全自动化的连续交付环境。</p>

<h2 id="在-jenkins-中设置一个流水线">在 Jenkins 中设置一个流水线</h2>

<p>​让 Jenkins 启动只是一个开始,下一步是在 Jenkins 内配置 CI/CD 流水线。 你可以先运行 <code>minikube service Jenkins</code> ,然后使用其 Web UI 访问 Jenkins。</p>

<p>​然后,您可以选择安装必要的插件。 根据您要创建的流水线,您可能需要下载并安装合适的插件,以实现流水线自动化以及更好的管理。必须使用 <a href="https://plugins.jenkins.io/kubernetes">Kubernetes 插件</a></p>

<p>​另一个值得讨论的插件是 <a href="https://plugins.jenkins.io/kubernetes-cd">Kubernetes Continuous Deploy 插件</a>,它专门为处理流水线的持续交付设计的。 该插件将处理为测试创建新的 pods 以及测试和部署之间的转换。</p>

<p>​配置完所有插件后,重新启动 Jenkins。 Jenkins 提供的一个很好的功能能够自动执行这些手动更改,因此下次您配置 CI/CD 系统(例如,在基础结构迁移的情况下)时,不必再次通过手动更改。 您只需接收一个具有与以前相同配置和插件的实例。嵌入到 Jenkins Docker 镜像和 Jenkins 配置文件 config.xml 中的脚本 install_plugins.sh 实现了这一功能。</p>

<p>​现在,您可以继续创建您的第一个流水线,为它分配凭据,并开始在流水线内部进行开发。记住, Jenkins 并不总是从本地存储中提取代码;您需要在第一次配置时手动发出推送请求。</p>

<p>​创建第一个流水线,然后您可以通过优化 minikube 立即运行新应用程序。在大多数 CI/CD 工作流中,手动推送请求实际上很方便,因为现在您可以通过流水线更好地控制想要推送的代码。</p>

<h2 id="在不同的情况下推动变化">在不同的情况下推动变化</h2>

<p>​当您打开应用程序代码并对其进行更改时, Jenkins 不会立即更新部署包。相反,您必须提交更改并等待 Jenkins 提取这些更改(取决于代码签出的配置方式),然后才能执行其他操作。</p>

<p>​在 Jenkins 用户界面上,有一个 Build now 命令用于运行新的构建。构建完成后,下次使用 Minikube 运行应用程序时,您将看到所做的更改。 Jenkins 流水线的配置方式使该工具非常有用。</p>

<p>​例如,您可以使用 Jenkins 来支持多团队开发。 Jenkins 流水线作为代码运行,这意味着具有正确凭据的任何用户都可以提交更改并执行流水线中内置的流程。</p>

<p>​它也非常通用。 如果服务器突然崩溃,流水线及其中的进程将自动恢复。 Jenkins 永远不会失去对它管理的集群的控制权,因此您可以使用 Jenkins完全消除对 CI / CD 环境的手动配置的需要。</p>

<p>​我个人最喜欢的是 Jenkins 管理多个流水线的方式,管理员可以清楚地查看系统中的所有流水线。再加上暂停和恢复流水线的能力,管理微服务和大型项目的开发使用 Jenkins 非常有帮助。</p>

<p>​另外的伟大的插件是<a href="https://github.com/jenkinsci/pipeline-plugin">流水线</a><a href="https://plugins.jenkins.io/workflow-multibranch">多分支流水线</a>,它帮助我们可视化 CI/CD 流。它允许在 repo 中定义一个 jenkins 文件,包括我们希望 jenkins 执行的所有步骤。不需要从 GUI 进行手动配置(可能只保留给管理员),并且允许开发人员灵活地控制给定项目/分支的流程。由于它在 Github 中,因此它也可以与任何其他应用程序库一起进行版本控制。</p>

<h2 id="jenkins-和-kubernetes">Jenkins 和 Kubernetes</h2>

<p>​让我们回到我们的主要观点:在 Kubernetes 上使用 Jenkins 。从 Jenkins 工具的工作方式来看,很容易看出这种自动化度量如何完美地补充了 Kubernetes 。一旦配置了插件,每次触发新的构建/任务, Jenkins 都会在 K8s 中创建一个 Pod (通过设计用于执行该工作的按需代理)。一旦完成, Pod 将被销毁,从而避免了有固定的代理池等待任务执行的需要。如您所见, Kubernetes 为每个开发团队提供了强大的 CI/CD 基础架构,而 Jenkins 则大大简化了对该环境的管理。</p>

<p>​这种组合能够在不同的情况下改进 <a href="https://dzone.com/articles/learn-how-to-setup-a-cicd-pipeline-from-scratch">CI/CD 工作流</a>,包括在更大的开发项目中。如果你考虑到大量 Jenkins 插件的可用性,包括 <a href="https://plugins.jenkins.io/kubernetes-pipeline-steps">Kubernetes 流水线</a><a href="https://plugins.jenkins.io/kubernetes-credentials">凭据</a>以及目前已经可用的更多插件,您就会知道您有一个强大的 CI/CD 工具可以使用。甚至有能力将流水线中的非安装工作和材料工作分开;没道理不爱它?</p>

<p>这篇文章最初发表在<a href="https://caylent.com/leveraging-jenkins-on-kubernetes/">这里</a></p>

</div>


<aside class="bt bw1 pt3 mt2 mid-gray b--mid-gray fn w-100">

</aside>




<script src="https://utteranc.es/client.js"
        repo="jenkins-zh/jenkins-zh.github.io"
        issue-term="pathname"
        theme="github-light"
        crossorigin="linuxsuren"
        async>
</script>


          

<h2>参考</h2>
<ul>
	
388 389
	<li><a href="/wechat/articles/2019/11/2019-11-12-2019-jenkins-board-and-officer-elections-update/">Jenkins 2019 年 Board 和 Officer positions 选举更新</a></li>
	
LinuxSuRen's avatar
LinuxSuRen 已提交
390
	<li><a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/">在大型企业里维护多分支流水线</a></li>
LinuxSuRen's avatar
LinuxSuRen 已提交
391
	
392 393
	<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
	
394 395
	<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
	
LinuxSuRen's avatar
LinuxSuRen 已提交
396 397 398 399 400 401 402 403 404 405 406 407 408 409
	<li><a href="/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/">Jenkins 文档特别兴趣小组</a></li>
	
</ul>

        </div>
      </div>
      

    </div>
  </article>

  <div class="w-100 bg-light-gray">
    <div class="mw7 pa4 center nested-lh-copy lh-copy">
      <h6 class="f4 dark-gray mb2">
410
  <a href="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/" class="hide-child link primary-color">
LinuxSuRen's avatar
LinuxSuRen 已提交
411 412 413 414 415 416 417 418
  <span class="nl3 child"><svg class="grow" fill="" height="14px" viewBox="0 0 24 24" width="14px" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>
</span>
    “在 Kubernetes 上使用 Jenkins ”
  </a> 更新于:July 29, 2019
</h6>

      <a href="https://github.com/jenkins-zh/jenkins-zh/edit/master/content/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes.md" class="
f6 ph3 pv1 br2 dib  tc ttu mv3 bg-primary-color white hover-bg-green link
419
" target="_blank">完善此页</a>
LinuxSuRen's avatar
LinuxSuRen 已提交
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446

      

  
  
  

  <div class="nested-lh-copy">
    <ul class="list dib nested-links ml0 pl0">
      
        <li class="db mb2 b">
          Tags:
        </li>
        
          <li class="db dib-l mr3">
            <a class="tag" href="/tags/plugins">
              plugins
            </a>
          </li>
        
          <li class="db dib-l mr3">
            <a class="tag" href="/tags/pipeline">
              pipeline
            </a>
          </li>
        
          <li class="db dib-l mr3">
447
            <a class="tag" href="/tags/Kubernetes">
LinuxSuRen's avatar
LinuxSuRen 已提交
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467
              Kubernetes
            </a>
          </li>
        
          <li class="db dib-l mr3">
            <a class="tag" href="/tags/ci">
              ci
            </a>
          </li>
        
          <li class="db dib-l mr3">
            <a class="tag" href="/tags/cd">
              cd
            </a>
          </li>
        
              
      
        
        
LinuxSuRen's avatar
LinuxSuRen 已提交
468
          <li class="db dib-l mb2 mr3">
469 470
            <a href="/wechat/articles/2020/04/2020-04-01-hands-on-beautify-the-user-interface-of-jenkins-reporter-plugins/" class="link">
              动手实践:美化 Jenkins 报告插件的用户界面
LinuxSuRen's avatar
LinuxSuRen 已提交
471 472 473
            </a>
          </li>
        
LinuxSuRen's avatar
LinuxSuRen 已提交
474 475 476 477 478 479 480
      
        
          <li class="db b mt4 mb2 mr2">
            Related entries:
          </li>
        
        
481 482 483 484 485 486 487 488 489
          <li class="db dib-l mb2 mr3">
            <a href="/wechat/articles/2019/10/2019-10-25-plugin-management-tool-alpha-release/" class="link">
              Alpha 版本的插件管理库和 CLI 工具
            </a>
          </li>
        
      
        
        
490 491 492 493 494 495 496 497 498
          <li class="db dib-l mb2 mr3">
            <a href="/wechat/articles/2019/09/2019-09-11-introducing-gitlab-branch-source-plugin/" class="link">
              介绍新的 GitLab 分支源插件
            </a>
          </li>
        
      
        
        
LinuxSuRen's avatar
deploy  
LinuxSuRen 已提交
499 500 501 502 503 504 505 506 507
          <li class="db dib-l mb2 mr3">
            <a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
              Jenkins 流水线配置历史插件介绍
            </a>
          </li>
        
      
        
        
LinuxSuRen's avatar
LinuxSuRen 已提交
508 509 510
      
        
        
LinuxSuRen's avatar
LinuxSuRen 已提交
511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559
          <li class="db dib-l mb2 mr3">
            <a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/" class="link">
              Jenkins 插件的微基准测试框架
            </a>
          </li>
        
      
        
        
          <li class="db dib-l mb2 mr3">
            <a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/" class="link">
              多分支流水线任务对 GitLab SCM 的支持
            </a>
          </li>
        
      
        
        
          <li class="db dib-l mb2 mr3">
            <a href="/wechat/articles/2019/04/2019-04-15-security-spring-cleaning/" class="link">
              春季安全清查
            </a>
          </li>
        
      
    </ul>
  </div>


    </div>
  </div>
</main>

<script type="text/javascript">
if(window.location.search == "?copy=true") {
  showCopyBut();
}

function copyMe(){
  var tempElements = [];

  var logoZone = document.createElement("div");
  logoZone.innerHTML = "<a href=\"https://jenkins-zh.cn\"><img width=\"520\" src=\"https://jenkins-zh.cn/wechat/images/grey-backgroud-jenkins-slogan.jpg\"/></a>";
  document.getElementById('prose').append(logoZone);
  tempElements.push(logoZone);
  var doc = document.getElementsByClassName('documentation-copy')[0];

  var articleHeader = document.createElement("div");
  tempElements.push(articleHeader);
560
  articleHeader.innerHTML = "本文首发于:<a href=\"https:\/\/jenkins-zh.cn\/wechat\/articles\/2019\/07\/2019-07-29-leveraging-jenkins-on-kubernetes\/\">Jenkins 中文社区</a>";
LinuxSuRen's avatar
LinuxSuRen 已提交
561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629

  
  var rangeToSelect = document.createRange();
  rangeToSelect.selectNodeContents(doc);

  var data = window.getSelection();
  data.addRange(rangeToSelect);

  tempElements.push(appendArticleFooter(data.getRangeAt(0)));
  data.getRangeAt(0).insertNode(articleHeader);
  document.execCommand("copy", true, null);

  
  for(var i in tempElements) {
    tempElements[i].remove();
  }
  clearSelection();

  hideCopyBut();
}

function clearSelection(){
  window.getSelection().empty();
}

function showCopyBut() {
  document.getElementById('copyMe').style="";
}

function hideCopyBut() {
  document.getElementById('copyMe').style="display:none";
}

function appendArticleFooter(range) {
  var articleFooter = createArticleFooter();
  range.insertNode(articleFooter);
  return articleFooter;
}

function createArticleFooter() {
  var articleFooter = document.createElement("div");
  var authors = document.getElementsByClassName("author");
  var originalAuthors = document.getElementsByClassName("originalAuthor");
  var originalLinks = document.getElementsByClassName("originalLink");
  var articleFooterHtml = "";
  var isTranslated = false;
  if(originalAuthors.length > 0){
    articleFooterHtml += "<div>";
    if(originalLinks.length > 0){
      articleFooterHtml += "<a href=" + originalLinks[0].innerText + ">原文链接</a>&nbsp;&nbsp;&nbsp;&nbsp;";
    }
    articleFooterHtml += "作者:" + originalAuthors[0].innerText;
    articleFooterHtml += "</div>";
    isTranslated = true;
  }
  if(authors.length > 0){
    articleFooterHtml += "<div>";
    if(isTranslated) {
      articleFooterHtml += "译者:" + authors[0].innerText;
    } else {
      articleFooterHtml += "作者:" + authors[0].innerText;
    }
    articleFooterHtml += "</div>";
  }
  articleFooter.innerHTML = articleFooterHtml;
  return articleFooter;
}
</script>

630
  </main>
LinuxSuRen's avatar
LinuxSuRen 已提交
631

632
  <footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
LinuxSuRen's avatar
LinuxSuRen 已提交
633 634 635 636
  <div class="center flex-ns flex-wrap justify-between mw9 w-90">
    <div class="pb3 pt4 w-100 w-50-ns">

      <div class="b f3  light-gray mb3 nested-links tc">
637 638
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank"
          class="link">Jenkins 社区贡献者</a> 维护<br />
LinuxSuRen's avatar
LinuxSuRen 已提交
639 640 641 642 643 644
      </div>

      <ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>

      <ul class="center f6 list ma0 mv4 pa0 tc">
        <li class="dib mr3">
LinuxSuRen's avatar
LinuxSuRen 已提交
645
          <a href="https://twitter.com/jenkinsci" target="_blank" class="dim link light-gray pv2">Twitter</a>
LinuxSuRen's avatar
LinuxSuRen 已提交
646 647
        </li>
        <li class="dib mr3">
648 649
          <a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank"
            class="dim link light-gray pv2">YouTube</a>
LinuxSuRen's avatar
LinuxSuRen 已提交
650
        </li>
LinuxSuRen's avatar
LinuxSuRen 已提交
651 652 653
        <li class="dib mr3">
          <a href="https://space.bilibili.com/433584098" target="_blank" class="dim link light-gray pv2">哔哩哔哩</a>
        </li>
654
        <li class="dib mr3">
655
          <a href="https://jcli.jenkins-zh.cn/" target="_blank" class="dim link light-gray pv2">Jenkins
656 657
            CLI</a>
        </li>
658
        <li class="dib mr3">
659
          <a href="https://community.jenkins-zh.cn/" target="_blank" class="dim link light-gray pv2">社区论坛</a>
660
        </li>
LinuxSuRen's avatar
LinuxSuRen 已提交
661 662 663 664 665 666
      </ul>

      
    </div>

    <div>
667 668 669 670 671
      <div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">优酷视频
        <div>
          <a href="https://i.youku.com/jenkinszh" target="_blank">
            <img src="/images/youku-qrcode.png" with="100" height="100">
          </a>
LinuxSuRen's avatar
LinuxSuRen 已提交
672
        </div>
673 674 675 676 677 678
      </div>
      <div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微信公众号
        <div>
          <a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
            <img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
          </a>
LinuxSuRen's avatar
LinuxSuRen 已提交
679 680
        </div>
      </div>
681 682 683 684 685 686 687
      <div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微博
        <div>
          <a href="https://www.weibo.com/jenkinszh" target="_blank">
            <img src="/images/weibo-qrcode.png" with="100" height="100">
          </a>
        </div>
      </div>
688
    </div>
LinuxSuRen's avatar
LinuxSuRen 已提交
689 690 691

  </div>

692
  <div class="f7 gray mb5 mb0-ns ph3 w-100"> 
693
    <p class="dib mr4"><a href="http://www.beian.miit.gov.cn/" target="_blank" rel="nofollow" class="dim link light-gray pv2"><u>晋ICP备15000444号-2</u></a></p>
LinuxSuRen's avatar
LinuxSuRen 已提交
694 695 696 697 698 699 700 701 702 703 704 705 706 707
  </div>


  <div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div  class="globalmenu mobilemenu pb3 dn">
    

<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
  
    <li  class="tl dib ma0 hover-bg-black w-100">
        <a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font  ma0 w-100 pv3 ph4">
          博客
        </a>
    </li>
  
LinuxSuRen's avatar
LinuxSuRen 已提交
708 709 710 711 712 713
    <li  class="tl dib ma0 hover-bg-black w-100">
        <a href="/tutorial/" class="ttu f6 link primary-color-light overflow hover-white db brand-font  ma0 w-100 pv3 ph4">
          教程
        </a>
    </li>
  
LinuxSuRen's avatar
LinuxSuRen 已提交
714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743
    <li  class="tl dib ma0 hover-bg-black w-100">
        <a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font  ma0 w-100 pv3 ph4">
          活动
        </a>
    </li>
  
    <li  class="tl dib ma0 hover-bg-black w-100">
        <a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font  ma0 w-100 pv3 ph4">
          合作伙伴
        </a>
    </li>
  
    <li  class="tl dib ma0 hover-bg-black w-100">
        <a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font  ma0 w-100 pv3 ph4">
          关于我们
        </a>
    </li>
  
    <li  class="tl dib ma0 hover-bg-black w-100">
        <a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font  ma0 w-100 pv3 ph4">
          Jenkins 官网
        </a>
    </li>
  
</ul>

</div>


<div class="flex dn-l justify-between">
LinuxSuRen's avatar
LinuxSuRen 已提交
744
  <button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">菜单</button>
LinuxSuRen's avatar
LinuxSuRen 已提交
745

LinuxSuRen's avatar
LinuxSuRen 已提交
746
  
LinuxSuRen's avatar
LinuxSuRen 已提交
747
</div>
LinuxSuRen's avatar
LinuxSuRen 已提交
748
<script src="/dist/app.bundle.js" type="text/javascript"></script>
LinuxSuRen's avatar
LinuxSuRen 已提交
749 750
</div>

751 752 753 754 755 756
  <script>
    ((window.gitter = {}).chat = {}).options = {
      room: 'jenkinsci/chinese'
    };
  </script>
  <script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>
LinuxSuRen's avatar
LinuxSuRen 已提交
757
</footer>
758
  
LinuxSuRen's avatar
LinuxSuRen 已提交
759 760 761
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
    
762
        var baseurl = "https:\/\/jenkins-zh.cn";
LinuxSuRen's avatar
LinuxSuRen 已提交
763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787
    
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>

<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
      var s = document.getElementsByTagName("script")[0]; 
      s.parentNode.insertBefore(hm, s);
    })();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>


788 789 790
</body>

</html>