Tekton(Alpha)
Tekton 是一个功能非常强大而灵活的 CI/CD 开源的云原生框架。
Tekton 的前身是 Knative 项目的 build-pipeline 项目,这个项目是为了给 build 模块增加 pipeline 的功能,但是随着不同的功能加入到 Knative build 模块中,build 模块越来越变得像一个通用的 CI/CD 系统,于是,build-pipeline 被剥离除了 Knative,成了现在的 Tekton,而 Tekton 也从此成为了功能全面、标准化的云原生 CI/CD 解决方案。
Tekton 的特点:
-
可定制:Tekton 是完全可定制的,具有高度的灵活性,用户可以定义非常详细的构建块目录,在各种场景中使用。
-
可重复使用:Tekton 是完全可移植的,用户都可以使用给定的流水线并重用其构建块,可以使得开发人员无需"造轮子"就可以快速构建复杂的流水线。
-
可扩展:Tekton Catalog 是社区驱动的 Tekton 构建块存储库,用户可以使用 Tekton Catalog 中定义的组件快速创建新的流水线并扩展现有管道。
-
标准化:Tekton 在 Kubernetes 集群上作为扩展安装和运行,并使用完善的 Kubernetes 资源模型,Tekton 工作负载在 Kubernetes Pod 内执行。
-
伸缩性:要增加工作负载容量,只需添加新的节点到集群即可,Tekton 可随集群扩展,无需重新定义资源分配或对管道进行任何其他修改。
前提条件
已部署 Tekton Operator,具体请参考 安装 Operator 。
注意:如果希望在指定节点上部署 Tekton Operator,需先给节点添加可代表相关含义的键值对
标签
,待 Operator 部署成功后再
编辑订阅(Subscription)
以增加 nodeSelector
配置。例如以下 YAML 示例可用于表示只在 amd64 架构的节点上部署 Operator。
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: tekton-operator
spec:
config:
nodeSelector:
beta.kubernetes.io/arch: amd64 #节点标签
注意事项
TektonPipeline 仅支持创建一个实例,且名称固定为 pipeline。
部署实例
-
在左侧导航栏中,单击 应用商店管理 > Operators。
-
在 已部署 Operators 页签中,单击 tekton-operator。
-
单击 TektonPipeline 实例卡片中的 创建实例。
-
配置 名称 、标签 等基本信息。
注意:创建 Tekton 实例时,实例名称必须为 pipeline,否则不能使用基于 Tekton 的构建功能。
-
可选:如果已经将 Tekton Operator 部署到了指定的节点上,请相应在 TektonPipeline 实例的 YAML 中增加
nodeSelector
配置。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonPipeline metadata: name: pipeline spec: nodeSelector: beta.kubernetes.io/arch: amd64 #与 Operator 设置保持一致
-
可选:在 YAML 中进行高可用配置。避免因单个节点故障而影响实例及持续构建、持续发布等相关功能使用异常。
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonPipeline metadata: name: pipeline spec: config: availability: highAvailability: replicas: 3 # 副本数大于 1 时,可实现实例高可用 kubernetes.io/os: linux
-
单击 创建。