免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

前言上一篇文章 云原生之旅 - 10)手把手教你安裝 Jenkins on Kubernetes 我們介紹了在 Kubernetes 上安裝 Jenkins,本文介紹下如何設(shè)置k8s pod作為Jenkins 構(gòu)建job的 agent 。
Jenkins master 和 agent 均以 pod 的形式運(yùn)行在 Kubernetes 節(jié)點(diǎn)上 。Master 運(yùn)行在其中一個(gè)節(jié)點(diǎn)上,其配置數(shù)據(jù) Jenkins home 使用存儲(chǔ)卷掛載,master pod重啟不會(huì)導(dǎo)致數(shù)據(jù)丟失 。agent 運(yùn)行在各個(gè)節(jié)點(diǎn)上,根據(jù)需求動(dòng)態(tài)創(chuàng)建并自動(dòng)釋放 。這樣做的好處很多,比如高可用,高伸縮性,資源利用率高 。
關(guān)鍵詞:Jenkins on Kubernetes 實(shí)踐,Jenkins 和 Kubernetes,在Kubernetes上安裝Jenkins,Jenkins 高可用安裝,Jenkins 動(dòng)態(tài)伸縮構(gòu)建,Kubernetes Pod as Jenkins build agent
準(zhǔn)備

  1. 已搭建 Jenkins master on kubernetes 云原生之旅 - 10)手把手教你安裝 Jenkins on Kubernetes
  2. 準(zhǔn)備一個(gè) Service Account,對(duì)目標(biāo) cluster 具有k8s admin權(quán)限,以便部署 。
  3. 防火墻已開通 Jenkins 出站到Docker hub,方便 push/pull image
  4. 防火墻已開通 Jenkins 到 目標(biāo) cluster,以便部署 。
插件安裝
  • Kubernetes Plugin
  • Google Kubernetes Engine Plugin (我的例子是部署到 GKE cluster)
Jenkins 配置Manage Nodes and Clouds1. Go to `Manage Jenkins` –> `Manage Nodes and Clouds`2. Click `Configure Clouds`3. Add a new Cloud select `Kubernetes`4. Click `Kubernetes Cloud Detail5. Enter `jenkins` namespace in `Kubernetes Namespace` field6. Click `Test Connection` --> result show `Connected to Kubernetes v1.22.12-gke.2300`7. Click `Save`8. Enter `http://jenkins-service.jenkins.svc.cluster.local:8080` in `Jenkins URL` field9. Enter `jenkins-agent:50000` in `Jenkins tunnel` field
云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

文章插圖
10. Click `Add Pod Template` then `Pod Template Details`
11. Input `Name`=`jenkins-agent`, `Namespace`=`jenkins`, `Labels`=`kubeagent`
云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

文章插圖
12. (Optional) 如果不添加 container template, the Jenkins Kubernetes plugin will use the default JNLP image from the Docker hub to spin up the agents.如果你要覆蓋默認(rèn)的jnlp image 可以 Click `Add Container` to add Container Template,輸入 `Name`=`jnlp`, `Docker Image`=`your_registry/jenkins/inbound-agent:4.11-1-jdk11`
云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

文章插圖
Ensure that you remove the sleep and 9999999 default argument from the container template.
 Manage Credentials
  • Add `Usernames with password` for docker hub account/pwd,比如 wade_test_dockerhub
  • Add `Google Service Account from private key` 比如 gcp_sa_json_key
Credentials 會(huì)在Jenkinsfile里面用到 。
### 本文首發(fā)于博客園 https://www.cnblogs.com/wade-xu/p/16863955.html
Test a freestyle projectGo to Jenkins home –> New Item and create a freestyle project,命名為 quick-test在 job description 部分, add the label `kubeagent` for `Restrict where this project can be run`.
云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

文章插圖
這個(gè)label 和我們上面創(chuàng)建 pod template時(shí)用的label一致. 這樣的話 Jenkins就知道用哪個(gè) pod template 作為 agent container.
 隨便添加一個(gè)shell 作為build steps
云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

文章插圖
點(diǎn)Build Now
 查看Console OutputAgent jenkins-agent-l7hw9 is provisioned from template jenkins-agent......Building remotely on jenkins-agent-l7hw9 (kubeagent) in workspace /home/jenkins/agent/workspace/quick-test[quick-test] $ /bin/sh -xe /tmp/jenkins17573873264046707236.sh+ echo test pipelinetest pipelineFinished: SUCCESS### 本文首發(fā)于博客園 https://www.cnblogs.com/wade-xu/p/16863955.html

經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀