tekton入门 - 起步
介绍
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入门 - 起步相关推荐
- maven2学习总结(1,入门起步与实践)
1.1 Maven 概述 Maven提供了一套软件项目管理的综合性方案.无论是编译,发布,文档还是团队协作,Maven提供了必要的抽象,它鼓励重用,并做了除了软件构建以外的许多工作. 1.1.1 什么 ...
- Git入门起步(超详细)
从今天起开始学习Git,力争要在10天内Git从入门到放弃. 版本控制概念 版本控制优点 版本控制发展 本地版本控制 集中化的版本控制 分布式版本控制系统 Git历史 Git基础 直接记录快照,而非差 ...
- tekton入门 - tasks
介绍 task是steps的集合,可以在持续集成流程中按照特定的顺序执行,task在k8s集群中以pod的方式运行,task可以在其明明空间中可用,clustertask可以在集群范围内使用 Task ...
- tekton入门-细数tekton用到的那些images
tekton中以pod为Task的运行单元,而Task中的step实际就是一个个pod,其中用到了许多容器用于进行初始化动作,本文将分析各个容器在tekton task运行时起到的作用 entrypo ...
- tekton入门 - piplinerun
总览 PipelineRun允许您实例化并执行集群内管道.管道按所需的执行顺序指定一个或多个任务. PipelineRun按照指定的顺序在管道中执行任务,直到所有任务成功执行或发生故障为止. 注意:P ...
- python无人驾驶_无人驾驶入门
你将学到什么 Python.C++.矩阵和微积分知识 了解基础计算机视觉和机器学习 获得无人驾驶入门基石纳米学位认证! 课程概况 只需编程基础,迈出成为百万年薪工程师第一步! 跟随 Google 无人 ...
- iOS底层探索(二) - 写给小白看的Clang编译过程原理
iOS底层探索(一) - 从零开始认识Clang与LLVM 写在前面 编译器是属于底层知识,在日常开发中少有涉及,但在我的印象中,越接近底层是越需要编程基本功,也是越复杂的.但要想提升技术却始终绕不开 ...
- 台式机电脑配置单_2020年电脑配置单重点硬件参考
,电脑的基本配件扫盲我前面写过很多,相信很多小伙伴都看过了,没有看过的可以上我专栏参观: 电脑神棍局-组装机专栏www.zhihu.com 配置单在本文后面两篇, 但是建议前面花两分钟看下. 游戏篇 ...
- python程序设计机械工业出版社课后答案-Python 3程序设计基础
图书简介 配套资源:电子课件.教学大纲.源代码.习题答案 本书特色: 内容精练,实训题目经典实用,明确定位面向初.中级读者,由"入门"起步,侧重"提高". 附录 ...
最新文章
- 【spring 5】AOP:spring中对于AOP的的实现
- android之微信分享音频
- charles代理手机调试_H5开发 移动端 调试之 Charles 抓包 和 Map Remote
- HttpService远程校验
- JPA + EclipseLink + SAP云平台 = 运行在云端的数据库应用 1
- Qt下的模态和非模态对话框
- 五个有用的过滤器 (转)
- Windows驱动开发入门——从这里出发
- 2. MarkText可代替Typora的markdown 编辑器
- Ubuntu 1604 升级 1804 记录
- MTK 手机接耳机状态下,来电话耳机响扬声器不响
- 【LeetCode】389. 找不同
- 模拟二进制交叉(SBX)
- linux curse库函数,curse
- vant 固定定位不生效
- python模型检验_PyMC-Bernoulli模型检验
- 添加网站(虚拟主机)
- 7-2 输油管道问题
- Notepad++装JsonViewer插件
- XP硬盘安装Ubuntu 10.10系统
热门文章
- 长风破浪会有时,直挂云帆济沧海——纪念2020,展望2021
- Java中Math函数的使用
- Java jcmd内存远大于top_Java堆外内存排查小结
- ScrollView和HorizontalScrollView常用属性,及禁止滑动
- SpringMVC知识点记录
- 如何选择合适的境外网站服务器?
- 读Java核心技术36讲有感——谈谈对Java的理解,谈谈Exception和Error
- C语言fscanf/fprintf函数(格式化读写文件)的用法(%[]和%n说明符)
- void*的用法【转】
- 任正非“互联网思维”如是说