成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Tekton 在 Kubernetes 中編寫你的第一條 CI/CD 流水線

開源
Tekton 是一個用于創建持續集成和持續交付(CI/CD)系統的 Kubernetes 原生開源框架。

Tekton 是一個用于創建持續集成和持續交付(CI/CD)系統的 Kubernetes 原生開源框架。通過對底層實施細節的抽象,它還可以幫助你在多個云供應商或企業內部系統中進行端到端(構建、測試、部署)應用開發。

Tekton 介紹

??Tekton?? 最初被稱為 ??Knative Build??,后來被重組為獨立的開源項目,有自己的 ??治理組織??,現在是屬于 ??Linux 基金會?? 的項目。Tekton 提供了一個集群內的容器鏡像構建和部署工作流程,換句話說,它是一個 持續集成continuous integration(CI)和 持續交付continuous delivery(CD)服務。它由 Tekton 流水線和幾個支持組件如 Tekton CLI、Triggers 和 Catalog 等組成。

Tekton 是一個 Kubernetes 原生應用。它在 Kubernetes 集群中作為擴展被安裝和運行,由一套Kubernetes 定制化資源組成,定義了你為流水線創建和復用的構建塊。由于 Tekton 是一種 Kubernetes 原生技術,所以它非常容易擴展。當你需要增加你的工作負載時,你只需向你的集群添加節點就可以了。由于其可擴展的設計和社區貢獻的組件庫,它也很容易定制。

對于需要 CI/CD 系統來開展工作的開發人員,和為其組織內的開發人員建立 CI/CD 系統的平臺工程師,Tekton 是理想選擇。

Tekton 組件

構建 CI/CD 流水線的過程非常復雜,因此 Tekton 為每一步都提供工具。以下是 Tekton 提供的主要組件:

  • 流水線Pipeline: 定義了一組 Kubernetes ??自定義資源??,作為你用來組裝 CI/CD 流水線的構建塊。
  • 觸發器Triggers:一種 Kubernetes 自定義資源,允許你根據從事件有效載荷中提取的信息來創建流水線。例如,你可以在每次創建 Git 倉庫的合并請求時,觸發流水線的實例化和執行。
  • 命令行CLI:提供一個名為 ??tkn?? 的命令行界面,你可以使用它從終端與 Tekton 進行交互。
  • 儀表盤Dashboard:是 Tekton 流水線的一個基于網頁的圖形界面,顯示流水線的執行信息。
  • 目錄Catalog:是一個高質量的、由社區貢獻的 Tekton 構建塊(任務、流水線等),可在你自己的流水線中使用。
  • 中心Hub:是一個基于網頁的圖形界面,用于訪問 Tekton 目錄。
  • 操作員Operator:是一種 Kubernetes ??操作員模式??,你可以在 Kubernetes 集群中安裝、更新、升級和刪除 Tekton 項目。
  • 鏈Chains:是一個 Kubernetes 自定義資源定義Custom Resource Definition(CRD)控制器,使你可以在 Tekton 中處理供應鏈安全的問題。正在開發中。
  • 結果Results:旨在幫助用戶對 CI/CD 工作負載歷史進行邏輯分組,并將長期結果的存儲從流水線控制器中分離出來。

Tekton 術語

Tekton terminology

Tekton terminology

  • 步驟Step:是 CI/CD 工作流程中最基本的實體,例如為 Python 網絡應用程序運行一些單元測試或編譯一個 Java 程序。Tekton 使用容器鏡像執行每個步驟。
  • 任務Task::kissing:* 是按特定順序排列的步驟的集合。Tekton 以 ??Kubernetes 容器莢?? 的形式運行任務,其中每個步驟都成為 容器莢pod
  • 流水線Pipelines:是按特定順序排列的任務的集合。Tekton 把所有任務連接成一個 有向無環圖directed acyclic graph(DAG),并按順序執行圖。換句話說,它創建了一些 Kubernetes 容器莢,并確保每個容器莢按預期成功運行。

Tekton pipelines

Tekton pipelines

  • 流水線運行PipelineRun:顧名思義,是一條流水線的具體執行。
  • 任務運行TaskRun:是一個任務的具體執行。你可以選擇在流水線外運行一次任務運行,可以通過它查看任務中每個步驟執行的具體情況。

創建你的 CI/CD 流水線

開始使用 Tekton 的最簡單方法是自己編寫一個簡單的流水線。如果你每天都在使用 Kubernetes,那你可能對 YAML 很熟悉,這正是 Tekton 流水線的定義方式。下面是一個克隆代碼庫的簡單流水線的例子。

首先,創建一個 ??task.yaml?? 文件,用你喜歡的文本編輯器打開它。這個文件定義了你要執行的 步驟Step。在這個例子中,就是克隆一個倉庫,所以我把這個步驟命名為 “clone”。該文件設置了一些環境變量,然后使用一個簡單的 shell 腳本來執行克隆。

接下來是 任務Task。你可以把步驟看作是一個被任務調用的函數,而任務則設置步驟所需的參數和工作空間。

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: git-clone
spec:
workspaces:
- name: output
description: The git repo will be cloned onto the volume backing this Workspace.
params:
- name: url
description: Repository URL to clone from.
type: string
- name: revision
description: Revision to checkout. (branch, tag, sha, ref, etc...)
type: string
default: ""
steps:
- name: clone
image: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.21.0"
env:
- name: PARAM_URL
value: $(params.url)
- name: PARAM_REVISION
value: $(params.revision)
- name: WORKSPACE_OUTPUT_PATH
value: $(workspaces.output.path)
script: |
#!/usr/bin/env sh
set -eu

CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}"

/ko-app/git-init \
-url="${PARAM_URL}" \
-revision="${PARAM_REVISION}" \
-path="${CHECKOUT_DIR}"
cd "${CHECKOUT_DIR}"
EXIT_CODE="$?"
if [ "${EXIT_CODE}" != 0 ] ; then
exit "${EXIT_CODE}"
fi
# Verify clone is success by reading readme file.
cat ${CHECKOUT_DIR}/README.md

創建第二個文件 ??pipeline.yaml??,并用你喜歡的文本編輯器打開它。這個文件通過設置諸如可以運行和處理任務的工作區等重要參數來定義流水線。

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: cat-branch-readme
spec:
params:
- name: repo-url
type: string
description: The git repository URL to clone from.
- name: branch-name
type: string
description: The git branch to clone.
workspaces:
- name: shared-data
description: |
This workspace will receive the cloned git repo and be passed
to the next Task for the repo's README.md file to be read.
tasks:
- name: fetch-repo
taskRef:
name: git-clone
workspaces:
- name: output
workspace: shared-data
params:
- name: url
value: $(params.repo-url)
- name: revision
value: $(params.branch-name)

最后,創建一個 ??pipelinerun.yaml?? 文件,用喜歡的文本編輯器打開它。這個文件真正的運行流水線。它調用流水線中定義的參數(繼而調用任務文件中定義的任務)。

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: git-clone-checking-out-a-branch
spec:
pipelineRef:
name: cat-branch-readme
workspaces:
- name: shared-data
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
params:
- name: repo-url
value: <https://github.com/tektoncd/pipeline.git>
- name: branch-name
value: release-v0.12.x

把不同工作分在不同的文件中的好處是,??git-clone?? 任務可以在多條流水線中復用。

例如,假設你想為一個流水線項目做端到端的測試。你可以使用 ??git-clone?? 任務 來讓每一次測試都基于最新的代碼

總結

只要你熟悉 Kubernetes,那 Tekton 對你來說就像其他 Kubernetes 原生應用一樣簡單。它有很多工具可以幫助你創建流水線并與之交互。如果你喜歡自動化,不妨試試 Tekton!

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-11-07 09:00:39

Jenkins流水線開源

2021-06-26 14:22:34

Tekton流水線Kubernetes

2021-06-18 05:48:02

Tekton DevopsKubernetes

2023-08-18 10:24:52

GitLabCI 流水線

2022-03-10 13:57:23

TektonJenkinsPipeline

2021-06-28 06:32:46

Tekton Kubernetes Clone

2023-11-08 00:25:14

CI云原生DevOps

2023-09-27 08:24:49

2021-04-13 06:15:37

開源部署流水線Jenkins

2022-08-09 08:42:15

引擎方案

2021-05-13 18:23:53

Tekton云原生Kubernetes

2025-05-08 07:36:57

DevOpsSpringCI/CD

2017-03-02 14:12:13

流水線代碼Clojure

2021-07-09 06:40:59

TektonArgo CD GitOps

2017-02-28 15:40:30

Docker流水線Azure

2013-06-06 09:31:52

2021-06-09 05:44:45

云原生 CICD

2021-01-05 08:39:51

容器前端流水線

2022-01-26 08:12:42

Jenkins開源流水線

2024-01-07 12:47:35

Golang流水線設計模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久另类 | 中文字幕国产视频 | 欧美久久久久久久久 | 91精品一区二区 | 久久精品视频播放 | 黄色在线免费网站 | 涩涩导航| 精品成人免费一区二区在线播放 | 91久久精品一区二区二区 | 中文在线播放 | 国产色婷婷精品综合在线手机播放 | 久久伊 | 久久精品久久久久久 | 亚洲精品99 | 日本免费黄色一级片 | 亚洲视频中文字幕 | 欧美激情一区二区三区 | 韩国av一区二区 | 精品国产乱码久久久久久1区2区 | 国产精品一区二区日韩 | 911影院 | 精品久久久久久亚洲精品 | 在线观看国产视频 | 日韩电影一区二区三区 | 亚洲视频免费 | 91视频一区| 亚洲国产精品99久久久久久久久 | 日日干夜夜操 | 理论片午午伦夜理片影院 | japan21xxxxhd美女| 三级特黄特色视频 | 国产精品视频久久 | 日韩成人免费 | 羞羞色在线观看 | av色站 | 国产精品毛片一区二区在线看 | 久久久综合 | 麻豆亚洲 | 中文字幕一区在线观看视频 | 亚洲一区二区av | 成人二区|