Tektoncd

  • 概念综述
    • tekton是什么
    • tekton提供了哪些新kind
    • 新kind的关系逻辑图
  • 安装
    • 安装tektonPipelines
    • 安装Tekton Pipelines cli
  • 使用

概念综述

tekton是什么

  • Tekton是一个谷歌开源的Kubernetes原生CI/CD系统,功能强大且灵活,开源社区也正在快速的迭代和发展壮大。Google Cloud已经推出了基于Tekton的服务。
  • Tekton的前身是Knative的build-pipeline项目,随着不同的功能加入到Knative build模块中,build模块越来越变得像一个通用的CI/CD系统,这已经脱离了Knative build设计的初衷,于是将build-pipeline剥离出Knative,变成为Tekton,而Tekton也从此致力于提供全功能、标准化的原生Kubernetes CI/CD解决方案。
  • Tekton虽然还是一个挺新的项目,但是已经成为Continuous Delivery Foundation(CDF)的四个初始项目之一,另外三个则是的Jenkins、Jenkins X、Spinnaker,实际上Tekton还可以作为插件集成到JenkinsX中。所以,如果你觉得Jenkins太重,没必要用Spinnaker这种专注于多云平台的CD,为了避免和GitLab耦合不想用gitlab-ci,那么Tekton值得一试。
  • Tekton的特点是Kubernetes原生,什么是Kubernetes原生,简单的理解,就是all in Kubernetes,所以用容器化的方式构建容器镜像是必然,另外,基于Kubernetes CRD定义的Pipeline流水线也是Tekton最重要的特征。

tekton提供了哪些新kind

  • Task:表示一个构建任务,Task里可以定义一系列的steps,例如编译代码、构建镜像、推送镜像等,每个step实际由一个Pod执行。
  • TaskRun:Task只是定义了一个模版,TaskRun才真正代表了一次实际的运行,当然你也可以自己手动创建一个TaskRun,TaskRun创建出来之后,就会自动触发Task描述的构建任务。
  • Pipeline:一个或多个Task、PipelineResource以及各种定义参数的集合。
  • PipelineResource:表示pipeline input资源,比如GitHub上的源码,或者pipeline output资源,例如一个容器镜像或者构建生成的jar包等。

新kind的关系逻辑图

Tekton初试-编程知识网

安装

安装tektonPipelines

  • 运行 kubectl apply 命令以安装Tekton Pipelines 及其依赖项:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
  • 安装过往版本( $VERSION_NUMBER=v$.$.$):

https://storage.googleapis.com/tekton-releases/pipeline/previous/$VERSION_NUMBER/release.yaml

  • 需要准备的镜像(翻墙):
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/kubeconfigwriter
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/creds-init
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/bash
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/gsutil
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/imagedigestexporter
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/pullrequest-init
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller
    gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook
    gcr.io/kaniko-project/executor:v0.14.0
    —-手动微笑
  • 验证: Tekton初试-编程知识网

安装Tekton Pipelines cli

curl -LO https://github.com/tektoncd/cli/releases/download/v0.5.0/tkn_0.5.0_Linux_x86_64.tar.gz
sudo tar xvzf tkn_0.5.0_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn

使用