Jenkins 與Docker/Kubernetes的自動化CI流水(筆記)


一、CI/CD

        持續集成(continuous Integration,CI):代碼合並、構建、部署、測試都在一起。不斷執行這個過程,並對結果反饋。

        持續部署(Continuous Deployment,CD): 部署到測試環境、預生產環境、生產環境。

        持續交付(Continuous Delivery,CD):將最終產品發布到生產環境,給用戶使用

 

 CI/CD 的最終目的是自動化,減少人工干預,提高總體的產品交付質量。

 

 非容器化的CI/CD常出現因為環境不一致導致各種問題。

 

 Pipeline優勢:

  • 項目發布可視化,明確階段,方便處理問題
  • 一個Jenkinsfile文件管理整個項目生命周期
  • Jenkinsfile可以放到項目代碼中版本管理

 

 

 

 

 

 Jenkinsfile 文件就是指pipeline script的腳本保存的文件。在流水線中,可以使用pipeline腳本文件,處理文件比之前每個項目都點擊按鈕去修改配置要方便。

Jenkinsfile保持在倉庫中,在Jenkins里面調用即可:

 

 Jenkins 與Docker/Kubernetes的自動化CI流水實踐

 

 

 下面內容是核心,有4個步驟:拉取代碼-代碼編譯-打包成鏡像推送到鏡像倉庫-部署

 

 

 

 

 

鏡像倉庫:

 

 

 

 

 填寫上需要構建的版本。

 

 以上是docker單機的發布流程。

下面講解,基於kubernetes的集群實現方案。Jenkins會調用k8s動態創建pod,這個pod是作為Jenkins的slave來執行任務的(拉代碼,構建,打包,發布),任務執行完了,這個pod會自動消除。而Jenkins原本的pod 是作為master。這樣就解決了master並發數不夠情況下等待的問題。

Jenkins在k8s集群中以容器方式運行:

 

 

 

 

 

 

 編寫Jenkinsfile

 

 

 

 

 

 

 deploy.yaml 文件:

 

 

這幾個文件就說明了這個項目怎么跑起來

 

 

 

 

 

 Jenkins做了master和slave

 

 

 

檢查啟動情況:

 

 訪問:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM