我是 Jenkins 的长期用户,但对 Kubernetes 有点陌生,并在这里寻求专家的一些指导。基本上,我有许多项目需要三步构建:
- 运行一些流程以生成定制的 Containerfile。
- 将该 Containerfile 转换为图像(buildah、kaniko、img 等)。
- 为该图像创建一个新的“工作”容器,输入它,然后做一些事情。
刚开始,Kubernetes pods 是不可变的,所以工作容器不能在以后添加,但如果它的镜像没有,它也不能与初始容器同时创建。还存在。因此,要使其正常工作,它需要一个多 pod 构建。这似乎是可行的,但可能更适用于并行而不是顺序运行多个进程的情况 [ 1 ]。
第二种可能的方法是将工作容器作为 Kaniko 映像启动,然后使用 Kaniko 执行程序“就地”构建它,然后在步骤 3 中输入它。
最后,我可以将其拆分为两个 Jenkins 作业——让第一个准备容器,然后使用参数化触发器让第二个获取并运行它。
我认为我可以使这些方法中的任何一种都起作用,但我不想在这方面与系统抗争——什么是最能使我与良好实践和这些工具的设计意图保持一致的选项?