如何将音量装入应用程序的源代码?
我有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
下的此页面上阅读它。
- 谷歌容器引擎有问题从容器registry中拉图像
- 在Mac上将Docker图像推送到Google Container Registry失败
- 如何删除Google容器registry中的推送图片
- Kubernetes卷装载path
- Kubernetes垃圾收集失败 – FreeDiskSpaceFailed&ImageGCFailed
- GKE:Dockerlogin一直成功,但即使使用有效凭证,推送也不起作用
- Docker Kubernetes集群错误请求在Google Cloud上没有足够的身份validation范围
- gclouddocker推送没有空间剩下的错误
- Google云负载平衡器使用Kubernetes Ingress强制使用HTTP而不是HTTPS