TektonConfig
TektonConfig 是由 Tekton Operator 提供的顶层自定义资源,允许用户从单一控制点安装、配置和管理所有 Tekton 组件。它为 Kubernetes 集群内的 Tekton 生态系统管理提供了统一的方法。
目录
术语说明为什么需要 TektonConfig管理 Tekton 组件的挑战TektonConfig 如何解决这些问题优势适用场景约束与限制原则TektonConfig 结构关键组件及其关系配置示例最小配置全组件生产配置重要参数说明Pipeline 配置适用场景约束与限制原则/参数说明Pruner 配置适用场景配置示例参考资料术语说明
为什么需要 TektonConfig
管理 Tekton 组件的挑战
没有 TektonConfig,管理 Kubernetes 集群中的 Tekton 组件需要:
- 手动分别安装和配置每个组件
- 单独管理组件版本和兼容性
- 编写自定义脚本处理升级和配置变更
- 分别维护每个组件的配置
- 复杂协调组件间的依赖关系
这种方式导致:
- 运维复杂度增加
- 配置错误风险提升
- 版本兼容性难以维护
- 升级和变更耗时
- 环境间配置不一致
TektonConfig 如何解决这些问题
TektonConfig 提供统一的声明式方法来:
- 安装多个组件:通过单一资源部署 Pipelines、Triggers 等组件
- 确保兼容性:Operator 管理组件间的版本兼容性
- 集中配置:通过单一规范配置所有组件
- 简化升级:通过修改单一资源更新组件版本
- 标准化管理:对所有组件使用一致的管理模式
- 支持平台特性:无缝配置 Kubernetes 或 OpenShift 特定功能
这种集中式方法显著降低了运维复杂度,确保环境间配置一致。
优势
- 简化管理:通过单一资源控制所有 Tekton 组件
- 降低运维负担:Operator 负责安装、配置和升级
- 配置一致性:确保所有组件配置统一
- 版本兼容性:Operator 确保组件版本协同工作
- 平台感知:提供 Kubernetes 和 OpenShift 的平台特定功能
- 声明式配置:使用 Kubernetes 原生方式管理整个 Tekton 堆栈
- 降低错误风险:集中校验防止配置错误
- 资源清理:内置 pruner 功能管理集群资源
适用场景
TektonConfig 在以下场景中至关重要:
- 生产 CI/CD 环境:简化生产级 Tekton 安装管理
- 多租户集群:在共享环境中配置和隔离 Tekton 组件
- 企业部署:确保多集群间配置一致
- 合规环境:维护并验证特定配置以满足合规要求
- 自动化基础设施:使用 GitOps 方法管理 Tekton 组件
- 复杂 CI/CD 工作流:协调多个 Tekton 组件实现全面 pipeline
约束与限制
- 需要集群级权限安装和管理组件
- 部分配置可能依赖平台(Kubernetes 与 OpenShift)
- TektonConfig 资源变更可能触发组件重新部署
- 部分高级配置仍需直接操作组件特定资源
- 主版本升级可能需要额外步骤
原则
TektonConfig 结构
TektonConfig 资源结构如下:
关键组件及其关系
-
Profile:决定安装哪些组件
- lite:仅安装基础 Pipeline controller
- basic:安装 Pipeline 和 Triggers controllers
- all:安装所有可用组件
-
targetNamespace:组件安装的命名空间
- 默认通常为
tekton-pipelines - 所有组件均安装在此命名空间
- 默认通常为
-
组件配置:各组件的具体设置
- pipeline:Pipeline controller 配置
- trigger:Triggers controller 配置
- hub:Tekton Hub 配置
- result:Tekton Results 配置
- chain:Tekton Chains 配置
-
Pruner:自动清理资源的配置
- resources:要清理的资源(TaskRuns、PipelineRuns)
- schedule:清理任务的 Cron 调度
- keep:保留的资源数量
- keep-since:保留资源的时间长度(秒)
配置示例
最小配置
全组件生产配置
重要参数说明
Pipeline 配置
pipeline 部分配置核心 Pipeline controller。
适用场景
- 控制生产环境的高可用性
- 管理受限环境中的资源使用
- 启用实验性功能进行测试
- 设置已完成运行的自动清理
约束与限制
- 部分功能可能仅适用于特定 Kubernetes 平台
- HA 设置变更可能导致短暂中断
- Alpha API 字段可能随版本变更
原则/参数说明
关键参数包括:
- disable-affinity-assistant:控制工作空间的 affinity assistant
- disable-creds-init:控制凭证初始化
- enable-api-fields:控制功能门(stable、alpha、beta)
- performance:控制器性能和扩展设置
- pruner:自动清理资源的配置
Pruner 配置
pruner 自动清理已完成的 TaskRuns 和 PipelineRuns 以管理集群资源。
适用场景
- 长期运行且有大量 pipeline 执行的集群
- 高执行量的 CI/CD 系统
- 存储资源有限的环境
- 需要保留策略以满足合规要求的场景