云原生的 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 和低代码是如何搭配来满足一个业务诉求的。 作者 | 寒斜 …

这样才是代码管理和 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;可以满足用户建设大…

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

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

用键盘输入一条命令

作者 | 闪客来源 | 低并发编程新建一个非常简单的 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 的数…

面向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;提高企业面对容灾、容错、容量等问…

清晰还原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;风起…

全链路灰度之 RocketMQ 灰度

简介&#xff1a;本文将以上次介绍过的《如何用 20 分钟就能获得同款企业级全链路灰度能力&#xff1f;》中的场景为基础&#xff0c;来进一步介绍消息场景的全链路灰度。 作者&#xff1a;亦盏 之前的系列文章中&#xff0c;我们已经通过全链路金丝雀发布这个功能来介绍了 M…

普洛斯数据中心发布DC Brain系统,科技赋能智慧化运营管理

7月5日&#xff0c;普洛斯数据中心发布了DC Brain智慧化运营管理系统。该系统由普洛斯历时两年自主研发&#xff0c;契合现代化数据中心平台的发展趋势。目前已应用于普洛斯旗下数据中心&#xff0c;并有对外输出的成功案例&#xff0c;面向行业&#xff0c;赋能中小规模运营商…

mi6 android版本,小米6:我依旧是王,MIUI10.4.2稳定版与AndroidP同时到来

原标题&#xff1a;小米6&#xff1a;我依旧是王&#xff0c;MIUI10.4.2稳定版与AndroidP同时到来小米6作为小米数字系列最受欢迎的机型之一&#xff0c;从上市到下架热度一直未减&#xff0c;它也是众多米粉心目中小米数字系列最成功的机型没有之一。但是&#xff0c;再怎么讲…

如何利用 AHAS 保障 Web 服务稳如磐石?

简介&#xff1a;应用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴内部多年高可用体系沉淀下来的云产品&#xff0c;基于阿里开源流控降级组件 Sentinel&#xff0c;以流量与容错为切入点&#xff0c;从流量控制、不稳定调用隔离、熔断降级、热点流量…

KubeDL HostNetwork:加速分布式训练通信效率

简介&#xff1a;ubeDL 为分布式训练作业带来了 HostNetwork 网络模式&#xff0c;支持计算节点之间通过宿主机网络相互通信以提升网络性能&#xff0c;同时适应 RDMA/SCC 等新型高性能数据中心架构的网络环境&#xff0c;此外&#xff0c;KubeDL 针对 HostNetwork 模式带来的 …

阿里云容器服务差异化 SLO 混部技术实践

简介&#xff1a;阿里巴巴在“差异化 SLO 混合部署”上已经有了多年的实践经验&#xff0c;目前已达到业界领先水平。所谓“差异化 SLO”&#xff0c;就是将不同类型的工作负载混合运行在同一节点&#xff0c;充分利用工作负载对资源 SLO 需求特征的不同&#xff0c;提升资源整…