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的关系逻辑图
安装
安装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 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