TektonPipeline
TektonPipeline 是 Tekton Operator 提供的一种自定义资源,它允许您在 Kubernetes 集群中安装、更新和管理 Tekton Pipelines。它提供了一种声明式的方法来配置和维护您的 Tekton Pipeline 组件,而无需手动应用清单。
目录
术语说明
为什么我们需要 TektonPipeline
管理 Tekton 组件的挑战
手动安装和维护 Tekton Pipeline 组件涉及:
- 为不同组件应用多个清单
- 跟踪组件版本及其兼容性
- 安全管理升级和回滚
- 在不同环境中一致地配置组件
- 处理特定部署的自定义配置
这种方法导致:
- 管理程序复杂
- 可能的错误配置
- 难以跟踪已部署状态
- 实施一致升级的挑战
TektonPipeline 如何解决这些问题
TektonPipeline 资源提供了一种声明式、原生于 Kubernetes 的方式来:
- 简化安装:通过单一资源安装所有 Pipeline 组件
- 集中配置:在一个地方管理所有组件设置
- 自动化升级:通过更新资源轻松升级到新版本
- 确保一致性:在不同环境中应用相同的配置
- 支持定制:根据特定需求自定义 Pipeline 组件
这种方法使 Tekton Pipeline 组件的管理更加高效,同时保持了必要的定制灵活性。
优势
- 简化管理:单一资源管理所有 Pipeline 组件
- 声明式配置:定义所需状态,让 Operator 处理实现细节
- 版本控制:通过 GitOps 实践轻松跟踪配置更改
- 自动化协调:Operator 确保实际状态与所需状态匹配
- 配置验证:内置的配置参数验证
- 简化升级:简化升级到新版本的过程
- 原生 Kubernetes:与 Kubernetes 生态系统无缝集成
适用场景
TektonPipeline 在以下场景中至关重要:
-
初始部署:在新的 Kubernetes 集群中设置 Tekton Pipeline。
-
配置管理:随着时间推移管理 Pipeline 配置变更。
-
版本升级:将 Tekton Pipeline 升级到新版本。
-
多集群部署:确保在多个集群中一致地部署 Pipeline。
-
自定义部署:为不同环境实现特定的 Pipeline 配置。
-
GitOps 工作流:在 GitOps 部署过程中包括 Pipeline 配置。
限制和局限性
- 需要在集群中安装 Tekton Operator
- 一些高级配置可能需要其他 Tekton Operator 资源
- 对某些字段的更改可能需要组件重启
- 必须遵循 Kubernetes 资源管理原则
原则
TektonPipeline 结构
一个 TektonPipeline 资源具有以下结构:
关键组件及其关系
-
targetNamespace:Tekton Pipeline 组件将要安装的位置
- 默认值为 "tekton-pipelines"
- 所有 Pipeline 组件将创建在此命名空间中
- 确保您有权限在此命名空间中创建资源
-
version:要安装的 Tekton Pipeline 版本
- 可以指定特定版本,如 "v0.45.0"
- 省略此字段将安装 Operator 支持的最新版本
-
功能标志:许多配置选项用于控制 Pipeline 的行为
disable-affinity-assistant:控制亲和力助手的行为disable-creds-init:控制凭据初始化enable-api-fields:控制启用哪些 API 字段enable-custom-tasks:启用使用自定义任务- 以及上述完整结构中显示的许多其他选项
-
performance:高可用性和性能调整的设置
replicas:控制器副本的数量buckets:控制器的桶数量threads-per-controller:每个控制器的工作线程数量statefulset-ordinals:启用 StatefulSet Ordinals 模式
配置示例
基本安装
带有功能标志的自定义安装
高可用性配置
与 TektonPipeline 相关的重要参数说明
功能标志
功能标志控制 Pipeline 控制器的特定行为。
适用场景
- 出于性能原因禁用亲和力助手
- 启用或禁用特定的 Pipeline 功能
- 配置环境特定的设置
限制和局限性
- 一些功能标志可能会在未来版本中被弃用
- 更改某些标志可能需要重新运行管道
- 不同标志之间的兼容性考虑
原则/参数说明
常见功能标志包括:
-
disable-affinity-assistant(默认值:
false):将此标志设置为 "true" 会阻止 Tekton 为每个共享 PVC 工作区的 TaskRun 创建亲和力助手。 -
disable-creds-init(默认值:
false):将此标志设置为 "true" 会阻止 Tekton 扫描附加服务账户并将其发现的任何凭据注入到您的步骤中。 -
await-sidecar-readiness(默认值:
true):控制任务运行的第一个步骤是否等待侧车容器运行。 -
running-in-environment-with-injected-sidecars(默认值:
true):当 Pipelines 在不使用注入侧车的集群中运行时,应设置为 false,例如 Istio。 -
enable-custom-tasks(默认值:
false):启用从管道内使用自定义任务。
指标属性
指标属性控制如何收集和报告指标。
适用场景
- 为 Tekton 管道设置监控
- 自定义指标收集行为
- 与可观察性系统集成
配置示例
性能配置
性能部分允许调整控制器的性能特征。
适用场景
- 针对高流量的管道执行进行扩展
- 优化资源使用
- 实现高可用性配置