OpenShift S2I 概念及流程


S2I 概念

S2I(Source To Image)即從源碼到鏡像的一個過程,OpenShift 將它作為基礎功能提供給用戶,包含 S2I CLI 工具 與 S2I 流程。通過這些工具和既定流程,能去掉開發和運維人員手動打鏡像復雜性,只需要點一下構建按鈕就能將 Git 倉庫中的源碼或程序制品打包成鏡像,上傳到鏡像倉庫中,觸發后續的部署流程。

S2I 的組成

  • S2I CLI 工具 - 生成構建S2I鏡像需要的基礎環境(包含默認Dockerfile、腳本、測試腳本)
  • 基礎鏡像 - 由基礎環境中的Dockerfile中定義的鏡像
  • 構建/運行腳本 - 構建與運行時腳本
    • save-artifacts - 用於保存增量構建「可選」
    • assemble - 組裝復制制品到指定位置
    • run - 應用啟動腳本
    • usage - 打印幫助提示
    • test/run - 測試運行腳本

S2I 流程

上邊這張流程圖來自官方文檔以及參考更多資料,本人概括一下大致的流程:

  1. 首先下載 STI 腳本,這些腳本來自於 openshift/origin-docker-builder:<OpenShift版本> 這個鏡像,所以是 pull 鏡像。
  2. 使用以上鏡像啟動構建 docker 的容器,根據 BuildConfig 以及S2I鏡像的 Dockerfile 標簽定義,開始多階段構建鏡像
  3. 執行 openshift-git-clone --loglevel=0 命令,根據配置的參數拉取 Git 倉庫上的源碼或制品,拉到 /tmp (位置根據 s2i 鏡像的標簽 io.openshift.s2i.destination 定義),創建tar包,開始第二階段構建
  4. 執行 openshift-manage-dockerfile --loglevel=0 修改 Dockerfile,修改 CMD 啟動命令改為 執行 run 腳本,開始第三階段構建
  5. 執行 openshift-sti-build --loglevel=0 執行 STI 腳本調用 assemble 將源碼構建成制品再復制制品到指定目錄,或者將制品放到指定目錄,執行腳本完成后構建鏡像(docker commit),最后推送鏡像到內部鏡像倉庫,首次推送生成鏡像流(ImageStream),任務完成停止容器。

總結

S2I 減少了開發運維人員打鏡像的繁復步驟,將源碼或制品構造成標准的、可部署的鏡像。構建流程總體上就三步 下載 - 構建 - 推送

由於作者理解可能有所偏頗,文章中可能出現錯誤,希望能得到您的評論指出,在此感謝。

接下來幾天,本人會更新自定義 OpenShift 鏡像和模板相關內容,靜請期待。

本文同步發布於CSDN https://blog.csdn.net/u012586326/article/details/121363875 與 博客園 https://www.cnblogs.com/hellxz/,禁止轉載。


免責聲明!

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



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