介绍

Tekton是Kubernetes原生的持续集成和交付CI/CD解决方案。它允许开发人员跨云提供商和本地系统构建、测试和部署

包含以下四个组件

  • Pipelines
  • triggers
  • cli
  • dashboard

概念模型

steps tasks piplines

step是CI/CD工作流中的具体操作
task是step的集合
pipline是tasks的集合

输入输出

task和pipline可能都有自己的输入输出,在tekton成为输入输出资源

Tekton支持许多不同类型的资源,包括:

  • git:一个git仓库
  • 提取请求:git存储库中的特定提取请求
  • 镜像:容器镜像
  • 集群:Kubernetes集群
  • 存储:Blob存储中的对象或目录,例如Google Cloud Storage
  • CloudEvent:A CloudEvent

TaskRuns和PipelineRuns

pipelineRun,顾名思义,是一个具体的执行流水线,taskRun是一个具体的执行任务

TaskRuns 和 pipelineRuns将资源与task或Pipline连接

可以手动创建taskRuns或pipelineRuns,这会触发Tekton立即运行任务或管道。
或者,可以要求Tekton组件(例如Tekton Triggers)根据需要自动创建运行。例如,您可能希望在每次将新的拉取请求checked 到git仓库

工作原理

Tekton Pipelines的核心是包装每个task,更具体地说,Tekton Pipelines将entrypoint 二进制文件注入到步骤容器中,该容器将在系统准备就绪时执行您指定的命令。

Tekton Pipelines使用Kubernetes注释跟踪管道的状态,这些注释以Kubernetes Downward API的文件形式映射在每个步骤容器中 。该entrypoint二进制密切关注映射文件,如果一个特定的注释显示为文件才会开始提供的命令。例如,当您要求Tekton在一个任务中连续运行两个步骤时,entrypoint注入第二步容器的二进制文件将闲置等待,直到注释报告第一步容器已成功完成。

此外,Tekton Pipelines调度一些容器在您的task容器之前和之后自动运行,以支持特定的内置功能,例如检索输入资源以及将输出上传到Blob存储解决方案。您还可以通过taskRuns和pipelineRuns跟踪它们的运行状态。在运行task容器之前,系统还执行许多其他操作来设置环境。

安装

kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

如果要修改默认的 storageclasses以及pv大小

kubectl create configmap config-artifact-pvc \--from-literal=size=10Gi \--from-literal=storageClassName=manual \-o yaml -n tekton-pipelines | kubectl replace -f -

如果要修改默认的serviceaccount

kubectl create configmap config-defaults \--from-literal=default-service-account=YOUR-SERVICE-ACCOUNT \-o yaml -n tekton-pipelines | kubectl replace -f -

安装CLI

brew tap tektoncd/tools
brew install tektoncd/tools/tektoncd-cli

创建一个Task

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:name: hello
spec:steps:- name: helloimage: ubuntucommand:- echoargs:- "Hello World!"

将上面的YAML写入名为的文件task-hello.yaml,并将其应用于您的Kubernetes集群:

kubectl apply -f task-hello.yaml

要使用Tekton运行此任务,您需要创建一个TaskRun,这是另一个Kubernetes对象,用于指定的运行时信息Task。

要查看该TaskRun对象,您可以运行以下Tekton CLI(tkn)命令:

tkn task start hello --dry-run

运行上面的命令后,TaskRun应显示以下定义:

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:generateName: hello-run-
spec:taskRef:name: hello

运行hello task

tkn task start hello

使用kubectl 运行task

# use tkn's --dry-run option to save the TaskRun to a file
tkn task start hello --dry-run > taskRun-hello.yaml
# create the TaskRun
kubectl create -f taskRun-hello.yaml

扫描关注我:

tekton入门 - 起步相关推荐

  1. maven2学习总结(1,入门起步与实践)

    1.1 Maven 概述 Maven提供了一套软件项目管理的综合性方案.无论是编译,发布,文档还是团队协作,Maven提供了必要的抽象,它鼓励重用,并做了除了软件构建以外的许多工作. 1.1.1 什么 ...

  2. Git入门起步(超详细)

    从今天起开始学习Git,力争要在10天内Git从入门到放弃. 版本控制概念 版本控制优点 版本控制发展 本地版本控制 集中化的版本控制 分布式版本控制系统 Git历史 Git基础 直接记录快照,而非差 ...

  3. tekton入门 - tasks

    介绍 task是steps的集合,可以在持续集成流程中按照特定的顺序执行,task在k8s集群中以pod的方式运行,task可以在其明明空间中可用,clustertask可以在集群范围内使用 Task ...

  4. tekton入门-细数tekton用到的那些images

    tekton中以pod为Task的运行单元,而Task中的step实际就是一个个pod,其中用到了许多容器用于进行初始化动作,本文将分析各个容器在tekton task运行时起到的作用 entrypo ...

  5. tekton入门 - piplinerun

    总览 PipelineRun允许您实例化并执行集群内管道.管道按所需的执行顺序指定一个或多个任务. PipelineRun按照指定的顺序在管道中执行任务,直到所有任务成功执行或发生故障为止. 注意:P ...

  6. python无人驾驶_无人驾驶入门

    你将学到什么 Python.C++.矩阵和微积分知识 了解基础计算机视觉和机器学习 获得无人驾驶入门基石纳米学位认证! 课程概况 只需编程基础,迈出成为百万年薪工程师第一步! 跟随 Google 无人 ...

  7. iOS底层探索(二) - 写给小白看的Clang编译过程原理

    iOS底层探索(一) - 从零开始认识Clang与LLVM 写在前面 编译器是属于底层知识,在日常开发中少有涉及,但在我的印象中,越接近底层是越需要编程基本功,也是越复杂的.但要想提升技术却始终绕不开 ...

  8. 台式机电脑配置单_2020年电脑配置单重点硬件参考

    ,电脑的基本配件扫盲我前面写过很多,相信很多小伙伴都看过了,没有看过的可以上我专栏参观: 电脑神棍局-组装机专栏​www.zhihu.com 配置单在本文后面两篇, 但是建议前面花两分钟看下. 游戏篇 ...

  9. python程序设计机械工业出版社课后答案-Python 3程序设计基础

    图书简介 配套资源:电子课件.教学大纲.源代码.习题答案 本书特色: 内容精练,实训题目经典实用,明确定位面向初.中级读者,由"入门"起步,侧重"提高". 附录 ...

最新文章

  1. 【spring 5】AOP:spring中对于AOP的的实现
  2. android之微信分享音频
  3. charles代理手机调试_H5开发 移动端 调试之 Charles 抓包 和 Map Remote
  4. HttpService远程校验
  5. JPA + EclipseLink + SAP云平台 = 运行在云端的数据库应用 1
  6. Qt下的模态和非模态对话框
  7. 五个有用的过滤器 (转)
  8. Windows驱动开发入门——从这里出发
  9. 2. MarkText可代替Typora的markdown 编辑器
  10. Ubuntu 1604 升级 1804 记录
  11. MTK 手机接耳机状态下,来电话耳机响扬声器不响
  12. 【LeetCode】389. 找不同
  13. 模拟二进制交叉(SBX)
  14. linux curse库函数,curse
  15. vant 固定定位不生效
  16. python模型检验_PyMC-Bernoulli模型检验
  17. 添加网站(虚拟主机)
  18. 7-2 输油管道问题
  19. Notepad++装JsonViewer插件
  20. XP硬盘安装Ubuntu 10.10系统

热门文章

  1. 长风破浪会有时,直挂云帆济沧海——纪念2020,展望2021
  2. Java中Math函数的使用
  3. Java jcmd内存远大于top_Java堆外内存排查小结
  4. ScrollView和HorizontalScrollView常用属性,及禁止滑动
  5. SpringMVC知识点记录
  6. 如何选择合适的境外网站服务器?
  7. 读Java核心技术36讲有感——谈谈对Java的理解,谈谈Exception和Error
  8. C语言fscanf/fprintf函数(格式化读写文件)的用法(%[]和%n说明符)
  9. void*的用法【转】
  10. 任正非“互联网思维”如是说