云原生的 CICD 框架:Tekton

6044121bb9419af66ce02034ae272799.gif

作者 | AddoZhang

来源 | 云原生指北

Tekton 是 Google 开源的 Kubernetes 原生CI/CD 系统,功能强大扩展性强。前身是 Knavite 里的 build-pipeline 项目,后期孵化成独立的项目。并成为 CDF 下的四个项目之一, 其他三个分别是 Jenkins, Jenkins X, Spinnaker。

为什么说 Tekton 是 Kubernetes 原生的, 因其基于 Kubernetes 的 CRD 定义了 Pipeline 流水线。

CRD 及说明:

  • Task: 构建任务, 可以定义一些列的 steps. 每个 step 由一个 container 执行.

  • TaskRun: task 实际的执行, 并提供执行所需的参数. 这个对象创建后, 就会有 pod 被创建。

  • Pipeline: 定义一个或者多个 task 的执行, 以及 PipelineResource 和各种定义参数的集合。

  • PipelineRun: 类似 task 和 taskrun 的关系: 一个定义一个执行. PipelineRun 则是 pipeline 的实际执行. 创建后也会创建 pod 来执行各个 task。

  • PipelineResource: 流水线的输入资源, 比如 github/gitlab 的源码, 某种存储服务的文件, 或者镜像等. 执行时, 也会作为 pod 的其中一个 container 来运行(比如拉取代码)。

  • Condition: 在 pipeline 的 task 执行时通过添加 condition 来对条件进行评估, 进而判断是否执行 task. 目前是WIP的状态, 待#1137的完成、

组件:

  • tekton-pipelines-controller: 监控 CRD 对象(TaskRun, PipelineRun)的创建, 为该次执行创建 pod.

  • tekton-pipelines-webhook: 对 apiserver 提供 http 接口做 CRD 对象的校验

安装

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

检查安装的tekton相关的CRD:

kubectl api-resources | grep tekton
clustertasks                                   tekton.dev                     false        ClusterTask
conditions                                     tekton.dev                     true         Condition
pipelineresources                              tekton.dev                     true         PipelineResource
pipelineruns                      pr,prs       tekton.dev                     true         PipelineRun
pipelines                                      tekton.dev                     true         Pipeline
taskruns                          tr,trs       tekton.dev                     true         TaskRun
tasks                                          tekton.dev                     true         Task

tekton 的两个pod:

kubectl get pods --namespace tekton-pipelines
NAME                                           READY   STATUS    RESTARTS   AGE
tekton-pipelines-controller-556d8f4494-2qthv   1/1     Running   0          11m
tekton-pipelines-webhook-849cff5cf-8m5qq       1/1     Running   0          11m

安装CLI

cli: https://github.com/tektoncd/cli#installing-tkn

brew install tektoncd-cli

Tekton: hello world

创建一个简单的Task, 只有一个step就是打印出”hello world”

apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:name: echo-hello-world
spec:steps:- name: echoimage: alpinecommand:- echoargs:- "hello world"

创建一个TaskRun执行上面的Task

apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:name: echo-hello-world-task-run
spec:taskRef:name: echo-hello-world

运行task:

kubectl apply -f <name-of-file.yaml>

检查TaskRun的输出, 执行命令:

tkn taskrun describe echo-hello-world-task-run
Name:        echo-hello-world-task-run
Namespace:   tekton-pipelines
Task Ref:    echo-hello-worldStatus
STARTED          DURATION    STATUS
21 minutes ago   1 minute    SucceededInput Resources
No resourcesOutput Resources
No resourcesParams
No paramsSteps
NAME   STATUS
echo   Completed

Succeeded状态表示task执行成功.

查看实际的输出, 执行命令:

tkn taskrun logs echo-hello-world-task-run

结果:

[echo] hello world

de702f5d6a77adbed8a8914d7643f9bf.gif

往期推荐

read 文件一个字节实际会发生多大的磁盘IO?

Docker 容器为什么傲娇?全靠镜像撑腰!

Redis 内存满了怎么办?这样置才正确!

云原生的本手、妙手和俗手

0c248a6e269b6ddd8a43f211a1464395.gif

点分享

01329e8b17344ff6a81989593c0abfcf.gif

点收藏

fb5f0e2d71ea7f9c327d69d5dca02127.gif

点点赞

260c533142e365c3ee28f75baee4cd54.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人人都是 Serverless 架构师 | “盲盒抽奖”创意营销活动实践

简介&#xff1a;当 Serverless 与低代码这两个不同的技术共同相交于同一个业务时会有怎样的价值展现&#xff1f;本文以 “盲盒抽奖” 这个 Serverless Devs 做过的创意营销活动为例&#xff0c;为大家讲述 Serverless 和低代码是如何搭配来满足一个业务诉求的。 作者 | 寒斜 …

C语言 单链表查找出倒数第,查找单链表倒数第k个元素

查找单链表倒数第m个结点&#xff0c;要求时间复杂度为O(n).(提示&#xff0c;使用双指针)解题思路&#xff1a; 常规思路为先获取链表的长度N&#xff0c;然后返回N-k1位置处的结点即可。但是中需要遍历两次链表。 我们使用另一种算法&#xff0c;设定两个指针p1,p2.将这两个指…

这样才是代码管理和 Commit 的正确姿势 | 研发效能提升36计

简介&#xff1a;效能提升从小习惯开始&#xff0c;这样才是代码管理和 Commit 的正确姿势&#xff01; 专栏策划&#xff5c;雅纯 志愿编辑&#xff5c;张晟 软件交付是以代码为中心的交付过程&#xff0c;其中代码的作用有几点&#xff1a;第一&#xff0c;最终的制品要交付…

vSphere+、vSAN+来了!VMware 混合云聚焦:原生、快速迁移、混合负载

编辑 | 宋慧 出品 | CSDN云计算 vSphere、vSAN&#xff0c;从云计算兴起&#xff0c;就是 VMware 在虚拟化、分布式存储里大名鼎鼎的核心技术产品。不过随着云的发展到云原生、以及国内混合云快速发展的今天&#xff0c;虚拟化的领导者 VMware 有哪些最新的方案&#xff0c;值…

技术解读:实时数仓Hologres如何支持超大规模部署与运维

简介&#xff1a;在本次评测中&#xff0c;Hologres是目前通过中国信通院大数据产品分布式分析型数据库大规模性能评测的规模最大的MPP数据仓库产品。通过该评测&#xff0c;证明了阿里云实时数仓Hologres能够作为数据仓库和大数据平台的基础设施&#xff0c;可以满足用户建设大…

c语言怎么写贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#include#includetypedef struct snake{int a;int b;struct snake *u;struct snake *n;}snake,*snake1;typedef struct food{int a;int b;}food;void main(){char c,c0 d;int i,j,k,n1,t,at;snake p,q;snake *dd,…

阿里推出新品牌“瓴羊”,致力成为“数字化领头羊”

伴随我国数字化转型步入“深水区”&#xff0c; 数字化技术让企业服务更加智能与规范&#xff0c;但在企业探索和实践数字化的过程中&#xff0c;不少企业由于数字化基础薄弱&#xff0c;遇到内部数据分散、不会用或用不好数据等难题。如何更好地帮助企业用数字化的方式来提升业…

成功通航:用宜搭提升数字化管理效能,确保每次飞行任务安全执行

简介&#xff1a;宜搭帮助山西成功通航节省了100万左右的成本&#xff0c;同时使管理运营效率提升了76%。 山西成功通用航空股份有限公司 50-100人 / 航空运输 / 山西-长治 / 成功通航综合管理平台 “通用航空迎来发展机遇&#xff0c;随着通航行业‘放管服’政策的不断推进…

香农编码二叉树c语言,shannon码的编码实验总结.docx

shannon码的编码实验总结本科生实验报告  实验课程信息理论与编码  学院名称信息科学与技术学院  专业名称  学生姓名  学生学号  指导教师  实验地点  实验成绩  二〇一六年九月----二〇一六年十一月  填写说明  1、适用于本科生所有的实验报告&#xf…

用键盘输入一条命令

作者 | 闪客来源 | 低并发编程新建一个非常简单的 info.txt 文件。name:flash age:28 language:java在命令行输入一条十分简单的命令。[rootlinux0.11] cat info.txt | wc -l 3这条命令的意思是读取刚刚的 info.txt 文件&#xff0c;输出它的行数。我们先从最初始的状态开始说起…

Redis 7.0 Multi Part AOF的设计和实现

简介&#xff1a;本文将详解Redis中现有AOF机制的一些不足以及Redis 7.0中引入的Multi Part AOF的设计和实现细节。 Redis 作为一种非常流行的内存数据库&#xff0c;通过将数据保存在内存中&#xff0c;Redis 得以拥有极高的读写性能。但是一旦进程退出&#xff0c;Redis 的数…

电大1253c语言程序设计考试题,电大1253《C语言程序设计》开放大学期末考试试题2020年1月(含答案)...

《电大1253《C语言程序设计》开放大学期末考试试题2020年1月(含答案)》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《电大1253《C语言程序设计》开放大学期末考试试题2020年1月(含答案)(6页珍藏版)》请在人人文库网上搜索。1、试卷代号&#xff1a;1253座位号口口 国…

面向B端算法实时业务支撑的工程实践

简介&#xff1a;在营销场景下&#xff0c;算法同学会对广告主提供个性化的营销工具&#xff0c;帮助广告主更好的精细化营销&#xff0c;在可控成本内实现更好的ROI提升。我们在这一段时间支持了多个实时业务场景&#xff0c;比如出价策略的实时化预估、关键词批量服务同步、实…

中间表是如何被消灭的?

作者 | 不吃西红柿来源 | CSDN博客中间表的产生中间表是数据库中专门存放中间计算结果的数据表&#xff0c;往往是为了前端查询统计更快或更方便而在数据库中建立的汇总表&#xff0c;由于是由原始数据加工而成的中间结果&#xff0c;因此被称为中间表。在某些大型机构中&#…

自定义控件android.r,Android控件架构与自定义控件

前言最近在开发的路上越走越远了&#xff0c;每天在看各位大神公众号更新内容是自定义View的时候&#xff0c;一些小的内容有点模具&#xff0c;决定回过头来温习一下过往的内容。此篇也是根据android群英传来总结的一篇文章。1 Android控件架构Android的每个控件都是占一块矩形…

基于 PTS 压测轻松玩转问题诊断

简介&#xff1a;性能测试 PTS&#xff08;Performance Testing Service&#xff09;是具备强大的分布式压测能力的 SaaS 压测平台&#xff0c;可模拟海量用户的真实业务场景&#xff0c;全方位验证业务站点的性能、容量和稳定性。 作者&#xff1a;智云 为什么要做压测的问题…

阿里云开源业内首个应用多活项目 AppActive,与社区共建云原生容灾标准

简介&#xff1a;继高可用架构团队的 Sentinel、Chaosblade 开源后&#xff0c;第三个重磅高可用产品&#xff1a;应用多活 AppActive 正式开源&#xff0c;形成高可用的三架马车&#xff0c;帮助企业构建稳定可靠的企业级生产系统&#xff0c;提高企业面对容灾、容错、容量等问…

android xml左边,Android XML – 如何将项目对齐到最左侧,中间和最右侧

您需要使用weight属性.可以把它想象成让android知道它应该给每个项目的宽度百分比.你需要为所有3个项目设置宽度为0dip并添加权重属性android:layout_width"wrap_content"android:layout_height"wrap_content"android:text"Cancel"android:layou…

清晰还原31年前现场,火山引擎超清修复Beyond经典演唱会

7月3日晚&#xff0c;抖音携手环球音乐旗下厂牌宝丽金&#xff0c;直播经过火山引擎超清修复的Beyond Live1991生命接触演唱会及纪念音乐会精选内容&#xff0c;吸引了超1.4亿人次观看。 Beyond是一支成立于1983年的摇滚乐队&#xff0c;随着粤语音乐的兴起&#xff0c;Beyond…

如何定位并修复 HttpCore5 中的 HTTP2 流量控制问题

简介&#xff1a;开篇吹一波阿里云性能测试服务 PTS&#xff0c;PTS 在 2021 年 5 月份已经上线了对 HTTP2 协议的支持&#xff08;底层依赖 httpclient5&#xff09;&#xff0c;在压测时会通过与服务端协商的结果来决定使用 HTTP1.1 或者 HTTP2 协议。 作者&#xff1a;风起…