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

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

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

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

前提条件:

  • 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集群中执行以下命令,即可完成安装
<code>kubectl apply --filename https:/<code>
  • 安装需要一些时间,为保障服务正常使用,请确保tekton-pipelines相关组件均处于running状态,可使用如下命令查询组件状态
<code>kubectl 

get

pods --

namespace

tekton-pipelines/<code>

持久卷(Persistent volumes)

  • 运行CI/CD pinelines,需要为Tekton提供永久卷存储。默认情况下,Tekton需要5G的存储空间。需要注意的是, Tekton的性能会受的存储类影响

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

<code>kubectl 

get

pv kubectl

get

storageclasses/<code>
  • 可以通过修改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 云原生建筑师! 本文由博客一文多发平台 OpenWrite 发布!


分享到:


相關文章: