Tekton:
CICD Server
Controller, CRDs
Tekton Pipelines
CRDs:
Task 阶段,步骤(Step)
每个Step:运行为一个容器
Task: Pod
TaskRun:
Pod
Pipeline:
由一到多个Task组成
配置Task的方法:
事先定义好Task,而后在Pipeline上使用TaskRef引用
直接在Pipleine的spec字段内部使用TaskSpec定义(内联定义)
串行、DAG:
PipelineRun:
PipelineRun自身不存在一个具体的运行实体
真正的运行的Task的TaskRun
Pipeline --> PipelineRun
Task --> TaskRun
程序 --> 进程
微服务场景
数十个,甚至上百个应用程序
Pipeline,模板化
输入、输出:
输入:Input Resources
Git Repository
输出:Output Resources
Docker Image
Parameters
Task:声明Parameters
TaskRun:向其引用的Task中声明的各Parameters传值
Pipeline:将一个到多个Task装配成流水线
再声明一次Parameters
引用某个Task时,将自己的Parameters间接赋值给Task的Parameters
提示:二者可以同名;
PipelineRun:负责代替向其运行的各TaskRun完成向Task的传值(间接完成)
向Pipeline中声明的各Parameter传值
由Pipeline再传递给其引用的Task
在引用Task时,明确指明如何传递;
流水线中的数据传递:
Workspaces:
卷:ConfigMap/Secret,EmptyDir,PVC
EmptyDir:生命周期同Pod,其数据可以在各Step间共享,但不能跨Task;
PVC:有独立的生命周期,其数据可以跨Task共享;
动态置备PV,volumeClaimTemplate
NFS CSI Driver
Task如何使用Workspace:
得先声明,运行为TaskRun需要为其指定关联的Volume
Pipeline也需声明Workspace
Task:其workspace由Pipeline声明的Workspace间接传递
Pipeline运行为PipelineRun的时候,向Pipeline的各Workspaces指定关联的卷,这些卷最终会基于赋值间接传递给相应的Task
PipelineRun自动创建和使用卷:emptyDir, volumeClaimTemplate
生命周期与PipelineRun相同
事先独立创建并存在的PVC卷:独立生命周期
Results
Volumes
直接在Task和Step使用卷
TaskRun, Pod
Step, mountPath
PVC: