如何将音量装入应用程序的源代码?

我有kubernetes荚,我将我的应用程序源代码作为git卷。 我尝试了各种设置,以便如何将源代码放入pod中,并且git卷是我最终得到的。

但是现在我有一个数据问题。 我的应用程序中有一个文件目录(空),我需要在那里挂载一个音量(保险丝)。 但是由于目标位于git卷上,我无法做到这一点。 所以我想知道如何重新devise我的应用程序?

我是否应该直接将应用程序的源代码构build到图像中,以便能够将数据卷装入到该图像中,或者可以通过某种方式将卷装入另一个中,以便不必调整任何内容?

我不能将目标目录移动到其他地方,因为它必须可以通过其目录中的应用程序访问,也可以从Web访问。

我通常做的是在构build图像时将源添加到泊坞窗图像。 这是一个非常简单的过程,您可以随时将图像视为黑盒子。 这实现的是有效地将映像的准备和运行时的部署/更新分离为两个不同的过程。

我相信这就是为什么kubernetes可以通过交换完整映像来轻松地执行滚动升级来推出新的软件版本,而不是试图修复容器的内容。 这与使用以下命令一样简单:

kubectl set image deployment/my-nginx-deployment my-nginx-image=TagXX

replace图像还可以确保清理任何碎片(例如,增长日志,临时文件等),并且可以带来更多的变化,而不仅仅是更改源(例如升级服务器软件版本)。

它还使您可以根据确切的图像执行testing/登台,而不仅仅是在服务器上部署的代码可能与生产服务器不相同。

您可以在Updating a Deployment下的此页面上阅读它。