Kubernetes 协调CI系统中的作业容器和卷
我正在开发一个基于tinker Kubernetes的CI系统,每个构建都作为一个作业启动。我运行这些与Drone CI非常相似,因为构建中的每个步骤都是一个单独的容器。在我的k8s CI案例中,我将每个步骤作为作业舱中的容器运行。以下是我所追求的行为:Kubernetes 协调CI系统中的作业容器和卷,kubernetes,Kubernetes,我正在开发一个基于tinker Kubernetes的CI系统,每个构建都作为一个作业启动。我运行这些与Drone CI非常相似,因为构建中的每个步骤都是一个单独的容器。在我的k8s CI案例中,我将每个步骤作为作业舱中的容器运行。以下是我所追求的行为: 将创建生成卷。所有步骤都将安装此。一份工作被解雇了 关闭所有定义为单独容器的步骤,顺序为 期望的执行 git步骤(容器)运行,装载共享卷并进行克隆 消息来源 “运行测试”步骤将共享卷装载到生成的容器中 来自预安装了所有依赖项的映像 如果我们的测
编辑:请不要建议使用其他现有CI系统,因为这没有帮助。我这样做是为了我自己的满足和实验。这个tinker CI系统不太可能是我的玩具。如果您希望所有构建步骤都在容器中运行,或者可能更适合您。我没有这方面的经验,但建议它也会起作用 一旦您开始变得足够复杂,以至于需要在容器之间发送信号来订购构建步骤,那么使用一些预编译的东西就会变得更加高效 作为一个选项,您可以使用一个静态卷(即a)作为工件缓存,并从当前容器中依次触发下一个容器,在两个阶段之间装载相同的卷。然后您可以只在构建的开始或结束添加一个步骤,以便在管道运行后“清理”
需要明确的是:我不认为滚动您自己的CI是处理这一问题的最有效方法,因为已经有了一些系统,它们可以完全满足您的需要如果您希望所有的构建步骤都在容器中运行,或者可能更适合您。我没有经验,但是sugge我相信它也会起作用 一旦您开始变得足够复杂,以至于需要在容器之间发送信号来订购构建步骤,那么使用一些预编译的东西就会变得更加高效 作为一个选项,您可以使用一个静态卷(即a)作为工件缓存,并从当前容器中依次触发下一个容器,在两个阶段之间装载相同的卷。然后您可以只在构建的开始或结束添加一个步骤,以便在管道运行后“清理”
说得很清楚:我不认为滚动您自己的CI是处理这一问题的最有效方法,因为已经有系统可以完全满足您的需求只是好奇一下,如果您看一下的话。听起来您试图实现的一切都是在那里编码的。可能没有直接使用它他们的一些与CI/CD相关的例子可以给你一些如何实现你想要做的事情的想法?看起来他们使用Jenkins来完成这类事情,而不是直接使用Kubernetes,所以可能不是。不过这是一个好主意!有一种方法可以使用k8s设置Jenkins。请看我正在用Kubernetes直接编写一个玩具CI系统。这意味着不使用Jenkins、fabric8或除直接Kubernetes之外的任何东西。主要是为了咯咯地笑,看看事情会如何映射。我想说的是,你对CI采取了一种非正统的方法。我犹豫着回答,因为总是有100种方法可以做一件事,但我可以肯定的是,你使用文件标志来同步容器的想法我It’不好。想把每一步都放在不同的容器中,背后的原因是什么?这听起来比什么都麻烦。如果你看一看,我很好奇。听起来你想要实现的一切都是在那里编码的。如果不直接使用,也许他们的一些与CI/CD相关的示例可以给你一些如何实现你想要做的事情的想法?看起来他们使用Jenkins来完成这类事情,而不是直接使用Kubernetes,所以可能不是。这是一个好主意!有一种方法可以使用k8s设置Jenkins。请看,我正在用Kubernetes直接编写一个玩具CI系统。这意味着不使用Jenkins、fabric8或其他任何东西而不是直接的库伯内特。主要是为了咯咯地笑,看看事情会发展到什么程度。我要说的是,你对CI采取了一种非正统的方法。我不太愿意回答,因为总有100种方法可以做一件事,但我不想做