Tekton 如何接入物理机进行构建
1. 为什么需要物理构建机
Kuberntes 对物理机或者虚拟机的管理,实际上是一个典型的 Operator 场景。我们可以定义一个 CRD 用来描述相关字段,通过写 Controller 处理 Pod 与构建机之间的逻辑。也可以写 Tekton 的 Task 封装,本文将使用这种方式。由此也给我带来另一个疑问,Tekton 能否代替部分 Operator 的场景,在后续的文章中我会给出思考。这里仅做原型验证,不会太关注产品化的细节。在 Tekton 中,每个流水线由很多个 Task 构成,Task 可以并行。一个 Task 包含很多个串行的 step 步骤,对应着一个 Pod 包含很多个容器。这里的关键是要将 Pod 与构建机关联起来。我选择的是使用 rsync 同步 Pod 与构建机之间的文件,在 Pod 中使用 sshpass 执行物理机的构建命令。主要分为如下步骤 (以下命令都是在容器中执行):