@
目录
- 概述
- 定义
- 常见CICD工具
- 使用好处
- 组件
- 基本概念
- 安装
- 前提条件
- 安装Tekton Pipelines
- 创建并运行任务
- 安装Dashboard
- 安装Cli
- Pipelines示例演示
Tekton 官网地址 https://tekton.dev/Tekton是构建CI/CD系统的本地云解决方案 。它由提供构建块的Tekton pipeline和支持组件组成,如Tekton CLI和Tekton Catalog , 使Tekton成为一个完整的生态系统;Tekton也是CD基金会(一个Linux基金会项目)的一部分;以yaml文件编排应用构建及部署流程,是一个纯云原生的标准化CICD流水线构建、测试和部署流程的工具 。
Tekton 最新官网文档 https://tekton.dev/docs/
Tekton GitHub源码地址 https://github.com/tektoncd
Tekton是一个强大、灵活的构建 CI/CD 流水线系统的开源框架,允许开发者构建、测试和发布应用 。Tekton 是云原生的,通过定义 CRD ,让用户快速灵活定义流水线;
常见CICD工具
文章插图
使用好处
- 可定制的:Tekton实体是完全可定制的 , 从而具有高度的灵活性 。平台工程师可以定义非常详细的构建基目录,以供开发人员在各种情况下使用 。
- 可重复使用的:Tekton实体是完全可移植的,因此一旦定义,组织内的任何人都可以使用给定的管道并重用其构造块 。这使开发人员可以快速构建复杂的管道,而无需“重新发明轮子” 。
- 可扩展的:Tekton Catalog是Tekton社区驱动的存储库 。您可以使用Tekton目录中的预制组件快速创建新的并展开现有管道 。
- 标准化:Tekton在您的Kubernetes集群上作为扩展安装并运行,并使用完善的Kubernetes资源模型 。Tekton工作负载在Kubernetes容器中执行 。
- 缩放性:为了增加工作负载容量,您可以简单地将节点添加到群集 。Tekton与您的群集进行缩放 , 无需重新定义您的资源分配或对管道的任何其他修改 。
- Tekton Pipelines:tekton 的基础,定义了一组 CRD,用于定义 pipeline
- Tekton Triggers:允许基于 event 实例化 pipeline 。比如:git的pr请求
- Tekton Cli:提供命令行工具和 tekton 交互
- Tekton Dashboard:图形化界面展示 pipeline 信息
- Tekton Catalog:高质量的、社区贡献的 pipeline 仓库
- Tekton Hub:图形化界面访问 tekton catalog
- Tekton Operator:在k8s上安装、移除、更新tekton组件的项目
- Task:Tekton中的最小单元,代表一个任务模板,包括多个步骤 。每一个操作定义为Task中的一个step
- Pipeline:多个 Task 组成的有向无环图,定义了流水线的模板
- PipelineRun:Pipeline 真正执行时需要定义一个PipelineRun , 作为流水线的实例 , 生成一条流水线记录
- TaskRun:Task 真正执行的实例,记录任务状态 。一个TaskRun 会创建一个对应的 Pod,每个 step 对应 pod 中的一个 container
- PipelineResource:流水线执行过程中需要的资源信息
文章插图
每个任务在它自己的Kubernetes Pod中执行 。因此,默认情况下,Pipeline中的任务不共享数据 。要在任务之间共享数据,必须显式地配置每个任务,使其输出可用于下一个任务,并将先前执行的任务的输出作为其输入 。
安装前提条件
- 安装kubectl
- 安装K8S集群
- minikube部署用于开发测试的K8S集群 。
# 先要安装docker,然后安装kubectlwget "https://storage.googleapis.com/kubernetes-release/release/v1.18.8/bin/linux/amd64/kubectl"chmod 777 kubectlmv kubectl /usr/local/bin# 安装minikubecurl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64install minikube-linux-amd64 /usr/local/bin/minikubeminikube start# 创建新用户,这步不是必要adduser K8S//创建K8S用户passwd K8S//设置密码asdfwsxedc# 将创建的新用户加入到docker组中,,这步不是必要groupadd mydockergpasswd -a K8S mydocker//$USER为上面创建的K8S用户newgrp mydockerdocker version# 启动minikubeminikube start# 卸载minikubeminikube delete#也可以使用--registry-mirror=https://registry.docker-cn.com,running minikube within a VM, consider using --driver=none,--image-mirror-country='cn'minikube start --force --driver=docker
- Kubekey部署单节点K8S集群,详细可以参考前面的文章《云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上》
推荐阅读
- 光遇欧若拉季网易云黑胶会员怎么领取
- 云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上
- 云原生虚拟网络 tun/tap & veth-pair
- 制造业数字化转型,本土云ERP系统如何卡位?
- frp服务利用云主机实现Windows远程连接
- frp服务利用云主机docker服务实现Windows远程连接
- 十分钟速成DevOps实践
- 云顶之弈护卫赛娜怎么玩
- 少女前线云图计划诡海迷航节奏榜怎么过
- 原生Redis跨数据中心双向同步优化实践