(譯) Tekton 官方使用手冊-入門篇

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

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

image.png

前提條件:

  • Kubernetes羣集版本1.15或更高版本建議使用Tekton Pipeline v0.11.0或更高版本
  • 對於Kubernetes羣集版本低於1.15,建議進行升級,不然Tekton存在兼容性問題且官方也不太容易進行維護處理
  • 在羣集中啓用基於角色的訪問控制(RBAC)
  • 授予當前用戶羣集管理員權限。github

    • 注: 若是您使用的是Google Kubernetes Engine(GKE),請參閱Kubernetes Engine QuickStart獲取設置Kubernetes集羣的說明默認狀況下,GKE羣集啓用了RBAC,而且默認支持持久卷(PV),須要授予當前用戶所需的權限,請運行如下命令,其餘K8S環境則參考其安裝手冊:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole=cluster-admin \
--user=$(gcloud config get-value core/account)

安裝:

  • Tekton Pipelines是Tekton的核心組件,僅需在k8s集羣中執行如下命令,便可完成安裝
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
  • 安裝須要一些時間,爲保障服務正常使用,請確保tekton-pipelines相關組件均處於running狀態,可以使用以下命令查詢組件狀態
kubectl get pods --namespace tekton-pipelines

持久卷(Persistent volumes)

  • 運行CI/CD pinelines,須要爲Tekton提供永久卷存儲。默認狀況下,Tekton須要5G的存儲空間。須要注意的是, Tekton的性能會受的存儲類影響

注: 可以使用以下命令檢查存儲狀態是否可用ubuntu

kubectl get pv
kubectl get storageclasses
  • 能夠經過修改Tekton使用的 ConfigMap 來定義其存儲設置.若是須要修改PV大小或者PV使用的存儲卷類型,則須要修改config-artifact-pvc 中的如下兩個選項api

    • size: 數據卷大小: 好比10Gi
    • storageClassName: 存儲卷的類型
    • 假設須要10Gi的存儲空間、指定使用 manal的存儲類,則ConfigMap須要作以下修改
kubectl create configmap config-artifact-pvc \
                         --from-literal=size=10Gi \
                         --from-literal=storageClassName=manual \
                         -o yaml -n tekton-pipelines | kubectl replace -f -
  • 此外,除非另有配置,不然Tekton將使用Kubernetes集羣中的默認服務賬戶;若是您但願覆蓋此選項,請更新ConfigMap config-default的default-service-account屬性:
kubectl create configmap config-defaults \
                         --from-literal=default-service-account=YOUR-SERVICE-ACCOUNT \
                         -o yaml -n tekton-pipelines | kubectl replace -f -

安裝CLI (tkn)

  • 爲了方便,建議將Tkn CLI 與 Pinelines核心組件一塊兒安裝,下載地址: https://github.com/tektoncd/c... (包含mac、linux、win等主流操做系統)

使用Tekton建立第一個CI/CD工做流

  • 使用Tekton,CI/CD 工做流中的每一個操做都會變成一個 Step,使用設定好的容器鏡像執行該 Step。而後將 Step 聚合到 Task 中,Task 則以 pod 的形式運行。也能夠進一步將 Task 聚合到 Pinelines 中,Pinelines能夠設定多個 Task 的執行順序。
  • 建立Tekton Task,須要使用 apiVersion: tekton.dev/v1beta1 , Kind: Task來建立K8S中的對象。下面的YAML文件用一個簡單的 Step 來執行打印Hello 雲原生建築師的 Task。
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: echo
spec:
  steps:
    - name: echo
      image: ubuntu
      command:
       - echo
      args:
       - "Hello 雲原生建築師!"
kubectl apply -f task.yaml
  • 運行此 Tekton 的 Task,還須要建立一個 TaskRun 對象。TaskRun 是用來設置 Task 執行任務
  • 能夠只用tkn命令或者yaml 來執行 TaskRun對象
tkn task start echo --dry-run
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: getting-started
spec:
  taskRef:
    name: echo
  • Tekton 如今已經在執行 Task,可使用以下命令查看 TaskRun的運行日誌
tkn taskrun logs getting-started -f
  • 執行完成後,會顯示執行結果
Hello 雲原生建築師!
更多內容請訪問【雲原生建築師】 https://blog.dtcka.com
相關文章
相關標籤/搜索