1. 程式人生 > 實用技巧 >基於 kubernetes 的動態 jenkins slave

基於 kubernetes 的動態 jenkins slave

安裝 Jenkins

  1. 應用資源清單
~]# git clone https://github.com/imirsh/kube-jenkins.git
~]# cd kube-jenkins/
kube-jenkins]# kubectl  apply -f .
  1. 檢視服務
kube-jenkins]# kubectl  get pod -n  kube-ops
NAME        READY   STATUS    RESTARTS   AGE
jenkins-0   1/1     Running   0          42s
  1. 檢視日誌,第一次啟動提示需要完成初始化設定
kube-jenkins]# kubectl  logs -f pod/jenkins-0 -n kube-ops  |tee jenkin.log
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

2d8bfbb547824e07895eea90fe8be06c

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************

  1. 外掛安裝

選擇安裝推薦的外掛,因為此 Jenkins 映象 是定製的,外掛已經內建了,選擇後會直接進入Jenkins。

預設的外掛地址安裝非常慢,我們可以替換成國內清華的源,進入 jenkins 工作目錄,目錄下面有一個 updates 的目錄,下面有一個default.json 檔案(在NFS動態儲存捲上),我們執行下面的命令替換外掛地址:

~]# cd /ifs/kubernetes/kube-ops-jenkins-home-jenkins-0-pvc-728367b2-de3d-4e37-ba0e-56e9fed96359/updates/
updates]# sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

整合 Kubernetes

  1. 安裝 Kubernetes 外掛。 [系統管理] -> [外掛管理] -> [搜尋kubernetes]->直接安裝

  1. 設定叢集。[系統管理] -> [系統配置] -> [Add a new cloud]
  • Kubernetes 地址: https://kubernetes.default.svc.cluster.local
  • Kubernetes 名稱空間:kube-ops
  • 服務證書不用寫(我們在安裝Jenkins的時候已經指定過serviceAccount),均使用預設
  • 連線測試,成功會提示:Connection test successful
  • Jenkins地址:http://jenkins.kube-ops.svc.cluster.local:8080
  • Jenkins 通道: jenkins.kube-ops.svc.cluster.local:50000

  1. 配置 Pod 模板
  • 名稱:jnlp-slave
  • 名稱空間:kube-ops
  • 標籤列表:jnlp-slave,作為agent的label選擇用

配置完成,點選 save 儲存。

新建自由風格的專案

配置完成,儲存退出

執行 Job 並檢視結果