JenkinsPipeline部署一個Kubernetes 應用


https://www.qikqiak.com/k8s-book/docs/37.Jenkins%20Pipeline.html

1 Jenkins Pipeline 介紹

https://www.cnblogs.com/wangxu01/articles/11156603.html

Pipeline,簡單來說,就是一套運行在 Jenkins 上的工作流框架,將原來獨立運行於單個或者多個節點的任務連接起來,實現單個任務難以完成的復雜流程編排可視化的工作。

Jenkins Pipeline 有幾個核心概念:

  • Node:節點,一個 Node 就是一個 Jenkins 節點,Master 或者 Agent,是執行 Step 的具體運行環境,比如我們之前動態運行的 Jenkins Slave 就是一個 Node 節點
  • Stage:階段,一個 Pipeline 可以划分為若干個 Stage,每個 Stage 代表一組操作,比如:Build、Test、Deploy,Stage 是一個邏輯分組的概念,可以跨多個 Node
  • Step:步驟,Step 是最基本的操作單元,可以是打印一句話,也可以是構建一個 Docker 鏡像,由各類 Jenkins 插件提供,比如命令:sh 'make',就相當於我們平時 shell 終端中執行 make 命令一樣。s

那么我們如何創建 Jenkins Pipline 呢?

  • Pipeline 腳本是由 Groovy 語言實現的,但是我們沒必要單獨去學習 Groovy,當然你會的話最好
  • Pipeline 支持兩種語法:Declarative(聲明式)和 Scripted Pipeline(腳本式)語法
  • Pipeline 也有兩種創建方法:可以直接在 Jenkins 的 Web UI 界面中輸入腳本;也可以通過創建一個 Jenkinsfile 腳本文件放入項目源碼庫中
  • 一般我們都推薦在 Jenkins 中直接從源代碼控制(SCMD)中直接載入 Jenkinsfile Pipeline 這種方法

    2  創建一個簡單的 Pipeline

     

    直接在 Jenkins 的 Web UI 界面中輸入腳本運行

     

    • 新建 Job:在 Web UI 中點擊 New Item -> 輸入名稱:pipeline-demo -> 選擇下面的 Pipeline -> 點擊 OK
    • 配置:在最下方的 Pipeline 區域輸入如下 Script 腳本,然后點擊保存。

      4 部署Kubernetes 應用

      部署應用的流程

      • 編寫代碼
      • 測試
      • 編寫 Dockerfile
      • 構建打包 Docker 鏡像
      • 推送 Docker 鏡像到倉庫
      • 編寫 Kubernetes YAML 文件
      • 更改 YAML 文件中 Docker 鏡像 TAG
      • 利用 kubectl 工具部署應用

       

      這里我們來將一個簡單 golang 程序,部署到 kubernetes 環境中,代碼鏈接:https://github.com/cnych/jenkins-demo。如果按照之前的示例,我們是不是應該像這樣來編寫 Pipeline 腳本:

      • 第一步,clone 代碼,這個沒得說吧
      • 第二步,進行測試,如果測試通過了才繼續下面的任務
      • 第三步,由於 Dockerfile 基本上都是放入源碼中進行管理的,所以我們這里就是直接構建 Docker 鏡像了
      • 第四步,鏡像打包完成,就應該推送到鏡像倉庫中吧
      • 第五步,鏡像推送完成,是不是需要更改 YAML 文件中的鏡像 TAG 為這次鏡像的 TAG
      • 第六步,萬事俱備,只差最后一步,使用 kubectl 命令行工具進行部署了

       

       


免責聲明!

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



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