kubernetes原生pipeline的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通开发云主机域名过这篇文章希望你能解决这个问题。
Task
Tekton Pipelines的主要目标是单独运行您的任务或作为管道的一部分运行。每个任务都在Kubernetes集群上作为Pod运行,每个步骤都作为自己的容器。这点深得drone思想精髓,其实drone也有计划将kubernetes作为任务执开发云主机域名行引擎,只是没有下文了。A Task定义了需要执行的工作,例如以下是一个简单的任务:这steps是一系列由任务顺序执行的
命令
。这个steps内的配置几乎与drone如出一辙,Task定义好并没有被执行,创建TaskRun时才会执行。这是合理的,相当于是一个触发查看TaskRun kubectl get taskruns / echo-hello-world-task-run -o yaml状态Succeeded = True显示任务已成功运行。
任务输入和输出
在更常见的场景中,任务需要多个步骤来处理输入和输出资源。例如,Task可以从GitHub存储库获取源代码并从中构建Docker镜像。PipelinesResources用于定义任务的输入(如代码)与输出(如Docker镜像)。有一些系统定义的资源类型可供使用,以下是通常需要的两个资源示例。该git资源可以是你要编译的代码:该image资源代表要被任务编译成的镜像:以下是Task输入和输出开发云主机域名。输入资源是GitHub存储库,输出是从该源生成的图像。任务
命令
的参数支持模板化,因此任务的定义是常量,参数的值可以在运行时更改。TaskRun将输入和输出绑定到已定义的PipelineResources值,除了执行任务步骤外,还将值设置为用于模板化的参数。PS: inputs outputs应当不限制死必须叫这两个名字,只要是能支持参数就好。比如定义一个叫build的资源去指定docker build的镜像:Task 里:我是觉得需要能进行这样的扩展了, 仅是inputs outputs就狭义了获取pipeline全部信息 kubectl get build-pipeline要查看TaskRun的输出,请使用以下命令:类型的状态Succeeded = True显示Task已成功运行,您还可以验证Docker镜像是否生成。
Pipeline
Pipeline定义要按顺序执行的任务列表,同时还通过使用该from字段指示是否应将任何输出用作后续任务的输入,并指示执行的顺序(使用runAfter和from字段)。您在任务中使用的相同模板也可以在管道中使用。以上Pipeline是引用一个Task被叫的deploy-using-kubectl:要运行Pipeline,请创建PipelineRun如下:
执行与查看pipeline
总结
初学者会觉得有点绕,但是这种设计也是为了解耦合,我个人觉得优劣如下:
优势
活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看
可以把k8s集群作为任务执行引擎,这样可以更好的利用资源,比如把线上夜间闲置资源用来跑任务,构建镜像 离线分析 甚至机器学习。解耦做的比较好,任务模板可以拿来复用,而不需要大家都去重复定义,输入输出理念,一个任务的输入作为另个任务的输出不错。
劣势
有点过度设计,一些简单的场景可能觉得配置起来有点绕了,输入输出依赖分布式系统,对比drone一个pipeline中的容器是共享了一个数据卷的,这样上个任务产生的文件很方便的给下个任务用,而基于集群的任务就可能得依赖git docker镜像仓库等做输入输出,有点麻烦,好的解决办法是利用k8s分布试存储给pipeline设置一个共享卷,方便任务间传输数据;总体来说路子是对的而且还是有很多场景可以用的。看完上述内容,你们掌握kubernetes原生pipeline的示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注开发云行业资讯频道,感谢各位的阅读!
本文从转载,原作者保留一切权利,若侵权请联系删除。
《kubernetes原生pipeline的示例分析》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...