(译) Tekton 官方使用手册-入门篇

2020/4/21 5:17:17

本文主要是介绍(译) Tekton 官方使用手册-入门篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Tekton是Kubernetes原生的持续集成和交付(CI/CD)解决方案之一。它允许开发人员在混合云或私有云中进行构建、测试和部署

Tekton官方提供了较多的交互式教程,便于开发者直接实践应用此工具。想快速上手可以点击: https://tekton.dev/try
image.png

前提条件:

  • Kubernetes群集版本1.15或更高版本建议使用Tekton Pipeline v0.11.0或更高版本
  • 对于Kubernetes群集版本低于1.15,建议进行升级,否则Tekton存在兼容性问题且官方也不太容易进行维护处理
  • 在群集中启用基于角色的访问控制(RBAC)
  • 授予当前用户群集管理员权限。
    • 注: 如果您使用的是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的性能会受的存储类影响

注: 可使用如下命令检查存储状态是否可用

kubectl get pv
kubectl get storageclasses
  • 可以通过修改Tekton使用的 ConfigMap 来定义其存储设置.如果需要修改PV大小或者PV使用的存储卷类型,则需要修改config-artifact-pvc 中的以下两个选项
  • 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/cli/releases (包含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 云原生建筑师!


这篇关于(译) Tekton 官方使用手册-入门篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程