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