(譯) Tekton 官方使用手冊-理念

Tekton是Kubernetes原生的持續集成和交付(CI/CD)解決方案之一。它允許開發人員在混合雲或私有云中進行構建、測試和部署

Tekton官方提供了較多的交互式教程,便於開發者直接實踐應用此工具。想快速上手可以點擊: https://tekton.dev/try

(譯) Tekton 官方使用手冊-理念


** 總覽 **

Tekton是開源的Kubernetes原生CI / CD(持續集成和交付/部署)解決方案。他可以使開發人員使用自己的Kubernetes中構建,測試和跨集群部署。 截至目前,Tekton包含四個組件:

  • Pipelines: CI/CD 工作流的基本模塊
  • Triggers: CI/CD工作流的觸發器
  • CLI:tekton命令行工具
  • Dashboard:可視化頁面

Pinelines是Tekton的核心組件,其他組件也是基於其之上產生的。Triggers 、CLI、Dashboard是可選的,可以根據團隊自身情況選擇是否啟用。

** 概念模型 **

** Steps、Tasks、Pinelines **

  • Step是CI/CD工作流中的操作,例如為Python web應用程序運行一些單元測試,或編譯Java程序。Tekton使用您提供的基礎鏡像執行每個步驟
  • Task是按順序排列的Step集合。Tekton以Kubernetes Pod的形式執行Task,其中每個Step都成為Pod中的運行的容器。這種設計允許Task中的所有Step享用相同環境。例如,在Task中掛載一個Kubernetes卷,該卷可以在Task中的每個Step中訪問
  • Pineline是按順序排列的Task集合。Tekton收集所有任務,將它們連接在一個有向無環圖形(DAG)中,然後按順序執行該圖形的任務。換句話說,它創建了多個Pod對象,並確保每個Pod按成功的按照預期運行。Tekton允許開發人員完全控制該過程:用戶可以設置任務完成的fan-in(扇入)/fan-out(扇出)場景,要求Tekton在存在flaky測試時自動重試,或者指定Task在繼續之前必須滿足設定的條件

Tasks和Pinelines在Kubernetes集群中被標記為自定義資源( custom resources: CRD)

(譯) Tekton 官方使用手冊-理念

** 資源的輸入輸出(Input and output resources) ** 每個 Task 和 Pinelines 可能都有自己的輸入和輸出,在Tekton中稱為輸入和輸出資源。例如,編譯任務可能有一個 git 庫作為輸入,一個鏡像作為輸出:該任務從git庫拉取源代碼,運行一些測試,最後將代碼構建到一個可運行的鏡像中

Tekton支持多種不同類型的資源,包括:

  • Git:一個Git倉庫
  • Pull Request:git庫中的特定拉取請求
  • Image:容器鏡像
  • Cluster:Kubernetes集群。
  • Storage:BLOB存儲中的對象或目錄,如Google雲存儲
  • CloudEvent:一個CloudEvent
  • Resources在Kubernetes集群中被標記為自定義資源( custom resources: CRD)

** TaskRuns 和 PipelineRuns **

顧名思義,PipelineRun 是 Pipeline 的特定執行方式。例如,您可以要求Tekton每天運行某個工作流兩次,每次執行都將成為Kubernetes集群中可跟蹤的 PipelineRun 資源。您可以查看CI/CD工作流的狀態,包括使用 PipelineRuns 執行每個任務的詳細信息

類似地,TaskRun 是任務的特定執行方式。當您選擇 Pipeline 在外部運行任務時,也可以使用TaskRuns,您可以使用它查看任務中每個步驟執行的詳細信息

TaskRuns 和 PipelineRuns 將資源與任務和管道連接起來。運行必須包括資源的實際地址,例如git倉庫的URL、Task 或 Pineline的需求。這種設計允許使用者複用 Task 和 Pineline來獲取不同的輸入輸入

您可以手動創建 TaskRuns 或 PipelineRuns,這會觸發Tekton立即運行 Task 或 Pineline。或者,您可以要求Tekton組件(如Tekton觸發器) 根據需求自動創建並且執行。例如,在每次將有新的代碼提交後自動執行 pineline

TaskRuns 和 PipelineRuns 在Kubernetes集群中被標記為自定義資源( custom resources: CRD)

(譯) Tekton 官方使用手冊-理念

** Tekton是如何工作的 **

簡而言之,Tekton Pipeline 的核心是通過打包每個 Step 來發揮作用。確切地說,Tekton Pipeline 在每個 Step 容器中注入二進制文件,在系統就緒時執行您指定的命令。

Tekton Pipeline 使用Kubernetes Annotations 跟蹤 Pineline 的狀態。這些 annotations 使用 Kubernetes Downward API 以文件的形式掛載到每個 Step 容器中。入口點二進制文件密切監視掛載的文件,並且只有包含特定 annotations 的文件才會啟動所提供的命令。例如,當要求 Tekton 在一個 Task 中連續運行兩個 Step 時,注入到第二步容器中的入口點二進制文件將空閒等待,直到 annotations 反饋第一步容器已經成功完成

此外,Tekton Pipeline安排一些容器在步驟容器之前和之後自動運行,以便支持特定的內置功能,如檢索輸入資源和將輸出上載到BLOB存儲解決方案。您還可以通過 taskRuns 和 PipelineRuns 跟蹤它們的運行狀態。在運行步驟容器之前,系統還執行許多其它操作來設置環境

本文由博客一文多發平臺 OpenWrite 發佈!


分享到:


相關文章: