本篇是一個新手教學文,主要探討的時如何將 Jenkins 裝到 Kubernetes 內,並且使用 Kuberentes Pod 作為 Jenkins Agent 來使用。
未來透過 Jenkins 去執行 job 時會透過 Kubernetes Pod 來運行這些流程。
本文圖文並茂,對於有這個需求的使用者可以參考看看如何安裝與設定。
註:
到底要不要將 Jenkins 放到 Kubernetes 內是一個沒有答案的問題,思考這個問題時先反過來思考,將 Jenkins 放到 Kubernetes 內帶來什麼樣的特色?
1. 如果 Jenkins server 本身沒有 AA 的架構的話,意味 Jenkins 本身也只能運行一個 Pod 來處理流量。
2. Jenkins Server 本身也是 K8S Pod 的話,可以透過 service account 的方式更容易的與 k8s 溝通,這也是如何透過 k8s pod 當 Jenkins agent 的原因。
如果需要於 Jenkins Job 去執行 CD 步驟時,這樣的架構可以省去 kubeconfig 的額外準備,讓溝通更簡單
3. Jenkins 本身的設定非常多也很複雜,要如何永久性的保存 Jenkins 的設定非常麻煩。儲存方面就要引入 PV/PVC 來確保空間一致。此外如何透過 IaC 等架構來設定 Jenkins 並且引入版本控制的概念來確保 Jenkins 設定不會亂跑都是很大的議題。
最後想探討的是,如果是第一次進入這個領域,要使用 Jenkins 必須要有很強的動機來說服自己為什麼選擇最困難的 Jenkins 而非其他的開源專案
https://medium.com/codex/jenkins-on-kubernetes-part-1-2fb37c8adb39
jenkins安裝 在 矽谷牛的耕田筆記 Facebook 八卦
這篇文章要介紹的是 Jenkins Operator 這個有趣的應用程式,Operator 的概念先前有不少文章再探討其架構與意義,因此本篇文章會專注於 Jenkins Operator 這個應用程式能夠為 Jenkins 的環境與應用帶來什麼樣的變化。
首先本文開始前,要先準備三個東西
1. Kubernetes Cluster
2. Helm 安裝環境
3. 一個放有你 Jenkins pipeline 與 script 的 SCM(Source Code Management),通常都是 Git
接下來作者透過 Helm 安裝了 Jenkins Operator 該控制器到 Kubernetes 內並且準備了相關的 CRD 用來控制 Jenkins.
範例中的 CRD 主要會做兩件事情
1. 設定 Jenkins 本身,包含要安裝哪些 Plugin 等
2. SeedJobs: 可以將外部 SCM 內所描述的 Job 內容給直接設定到 Jenkins 內
當該 CRD 給套用到 Kubernetes 後,該 Jenkins Operator 就會幫忙初始化整個 Jenkins 以及相關的 Plugin。最後將 SeedJobs 內所描述的資訊給整合到 Jenkins 中來創建相關的 Job.
透過這整個 CRD 操作帶來的好處我認為有
1. 整個過程盡量減少手動操作,全部都依賴 Yaml 與 Pipeline 等程式碼的方式去維護
2. 與 Kubernetes 整合,對於熟悉 Kubernetes 的操作人員來說,學習過程不會太痛苦。
3. 把 Jenkins 變得稍微簡單一些,一些繁瑣過程讓 Jenkins Operator 去操作
我自己看完後,目前看到的壞處有
1. Jenkins 功能太多,生態系太複雜,我懷疑這種 Operaotr 只是一時的專案,沒有一直保持更新的話一定會有些功能終究還是要手動操作
2. 設定的內容我認為不如 Jenkins 生態系中的 Configuration as Code 這套 Plugin 來的專業與強大
3. Job 的設定部分我個人還是偏好使用 Jenkins Job Builder 這套基於 YAML 的解決方案來管理與定義全部
結論:
1. 我個人是當作一個新東西看看,但是不會有想要嘗試的慾望,因為覺得事情其實沒有變得簡單多少,甚至擔心引入一個半成品,導致多一個東西要維護..
https://medium.com/swlh/introduction-to-jenkins-operator-f4cb7ebc2e0b
jenkins安裝 在 軟體開發學習資訊分享 Facebook 八卦
課程特價中
全面的學習 Jenkins,掌握 Jenkins 軟體安裝和相關環境配置,掌握 Jenkins 構建 Web 專案,SpringCloud 微服務專案,及整合 Kubernetes 完成分散式構建
https://softnshare.com/jenkins-pipeline/
jenkins安裝 在 【Jenkins】09 Jenkins安装- YouTube 的八卦
人生苦短,快用 Jenkins !持续集成/持续部署已经成为企业级开发的刚需,使用 Jenkins ,我们只需每天提交代码到Git服务器,定时任务启动后, ... ... <看更多>