(译) 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)


使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值