bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

1分鐘將你的jenkins構建環境遷移到K8S集群上-創新互聯

資源準備

創新互聯建站長期為上千余家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為昌吉企業提供專業的網站建設、成都網站設計昌吉網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發。

1. 穩定運行的K8S集群一套(沒有可使用Rancher快速部署一個)

2. Jenkins master一臺

3. Jenkins pipeline基礎知識:見   鏈接jenkinspipeline

傳統Jenkins使用中暴露的問題

1. 每個業務團隊使用的編譯環境不統一,需要準備大量的slave節點

2. Slave很多,空閑期(如夜里)資源浪費

3. 雖然Slave很多,但高峰期隊列等待構建任務依然在排隊,資源搶占嚴重

4. 構建任務多,workspace空間不足

5. 性能瓶頸,偶爾有slave節點內存泄漏問題

將Jenkins的slave節點部署到K8S的原理

K8S有pod的概念,一個pod內可以有多個container。通過每次構建時創建一個新的pod,掛載一個容器的slave節點的方式構建。構建后將構建產物及結果報告輸出,并在構建后銷毀pod。

方案的優勢

1. 共享k8s集群資源,按需分配資源,不會出現slave機由于資源限制或者executor限制導致的資源搶占,構建任務排隊現象。

2. 空閑期釋放掉在k8s集群上申請的資源 ,其他團隊可以復用該資源。如大數據團隊、AI團隊可以定時在夜里申請k8s資源計算模型,跑spark任務等。

3. 每次構建都是新環境,內存泄漏等問題不會互相影響,workspace空間不會共享。

4. 可根據業務需求,靈活的啟用不同環境的鏡像用于構建。如jdk版本、maven版本、不同語言的編譯環境等,都可以做到按需創建。

具體步驟

1. Jenkins master下載插件

點擊系統管理 ——> 插件管理,選擇要安裝的插件Kubernetes plugin安裝

1分鐘將你的jenkins構建環境遷移到K8S集群上

2. 配置K8S serverapi地址

在 點擊系統管理 ——> 系統設置 ——> Add a new cloud ——> 選擇kubernetes,填寫相關信息

1分鐘將你的jenkins構建環境遷移到K8S集群上

為了所有構建步驟由pipeline代碼管理比較靈活,所以這里只配置k8s集群地址,不設置pod模版

3. 創建pipeline任務

1分鐘將你的jenkins構建環境遷移到K8S集群上

podTemplate(label: 'jenkins-slave', cloud: 'kubernetes'){

    node('jenkins-slave') {

        stage('git-checkout') {

                sh 'pwd'

        }

    }

}

4. 簡單功能驗證

執行流水線,可以看到jenkins master自動在k8s集群上拉起一個slave節點,并執行了stage內的命令

1分鐘將你的jenkins構建環境遷移到K8S集群上

5. 準備構建環境鏡像

因為默認啟動的jenkins slave節點只具備基礎功能,不具備類似maven這種構建環境。所以我們需要準備不同語言所需要的攜帶不同構建環境的鏡像。

可以通過docker search需要對應需求的鏡像

1分鐘將你的jenkins構建環境遷移到K8S集群上

也可以自己做鏡像,具體dockerfile寫法參考如下:

https://github.com/jenkinsci/docker-jnlp-slave

6. 編寫構建pipeline

語法參見jenkins語法生成器中podTemplate,可自行生成相關流水線語法

1分鐘將你的jenkins構建環境遷移到K8S集群上

7.收集構建過程數據

由于構建環境鏡像在job執行成功后會被銷毀,所以收集過程中的數據成為這種方案中最關鍵的一個步驟。下述三個點是我們一定需要收集的信息:

l   構建產物

所有構建產物應該交給制品庫統一管理,pod中的slave節點機構建后即可將制品傳輸到制品庫中,完成后pod銷毀

l   構建環境變量

由于構建環境已經銷毀,所以需要通過統一平臺管理每次構建時對應的構建環境,如jdk版本,maven版本等,所以該環境最好交由制品庫管理,推薦使用Artifactory記錄構建過程。

1分鐘將你的jenkins構建環境遷移到K8S集群上

l   構建元數據

構建過程中會執行一些如代碼靜態掃描,單元測試等,我們把這種結果數據稱之為軟件生命周期的元數據,同樣這些結果會隨著構建環境的銷毀一起丟失,我們需要通過api收集結果數據,并與本次構建過程或構建產物相關聯。建議使用Artifactory管理構建過程中的元數據。

1分鐘將你的jenkins構建環境遷移到K8S集群上

最佳實踐

1.統一管理構建環境

由運維維護K8S及Jenkins服務穩定,并按需求制作攜帶不同構建環境的jenkins slave鏡像。

2.由持續集成團隊統一編寫、統一管理pipeline模版,將模版存儲在git倉庫中,并提供詳細說明文檔,指導開發人員如何調用,如何傳參。

1分鐘將你的jenkins構建環境遷移到K8S集群上

3.業務部門通過jenkins共享庫特性調用git倉庫中的構建模版,傳入所需的構建環境和源碼路徑以及其他變量進行構建任務設置

1分鐘將你的jenkins構建環境遷移到K8S集群上

4. 持續集成團隊需要在構建模版中定義內容收集元數據,收集環境變量,設置質量關卡,做到讓開發無感知的情況下,完成所有信息的收集。這樣就可以做到,開發人員無需學習復雜的groovy語法編寫pipeline;管理人員可以標準化構建流程,并收集所有質量關卡數據,并會寫到統一制品倉庫管理。

當前文章:1分鐘將你的jenkins構建環境遷移到K8S集群上-創新互聯
文章轉載:http://vcdvsql.cn/article24/cecije.html

成都網站建設公司_創新互聯,為您提供網站設計公司品牌網站設計企業網站制作網站收錄建站公司外貿建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作