将照片和文档保存在应用程序路径之外并部署kubernetes

问题描述 投票:0回答:1

我有一个 Spring Boot 项目,将员工照片和其他文档保存在

"C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\employee"

并将文件名存储在数据库中。然后我在端口 8085 上运行相应的 Tomcat 8.0。
因此,我的前端可以通过请求 http://localhost:8085/employee/photosOrDocNameFromDb 轻松访问这些照片和文件。 问题是我的客户想通过 Kubernetes 部署它。那么,我知道如何在 Kubernetes 上部署 Spring Boot 应用程序,但是我保存在本地文件系统上的那些图像和文档呢?
显然,如果我将图像保存在 pod 内,我将无法像之前的方式一样访问它(运行虚拟 tomcat 通过 URL 公开它)。 有什么办法让我的 Kubernetes 部署的 spring boot 应用程序可以访问本地文件系统吗?这样我就可以在该位置运行另一个 tomcat 来访问这些图像和文档。 关于如何解决这个问题的任何想法。我应该使用另一个容器来保存这些图像吗?在这种情况下,我必须从我部署应用程序的 pod 访问另一个 pod fily 系统。

spring spring-boot kubernetes file-upload
1个回答
1
投票

您可以为此使用持久卷。

持久卷的类型

PersistentVolume 类型作为插件实现。 Kubernetes 目前支持以下插件:

awsElasticBlockStore - AWS 弹性块存储 (EBS)
azureDisk - Azure 磁盘
azureFile - Azure 文件
cephfs - CephFS 卷
csi - 容器存储接口 (CSI)
fc - 光纤通道 (FC) 存储
gcePersistentDisk - GCE 持久磁盘
glusterfs - Glusterfs 卷
hostPath - HostPath 卷(仅用于单节点测试;不适用于
多节点集群;考虑使用本地卷代替)
iscsi - iSCSI(SCSI over IP)存储
local - 安装在节点上的本地存储设备。
nfs - 网络文件系统 (NFS) 存储
portworxVolume - Portworx 卷
rbd - Rados 块设备 (RBD) 卷
vsphereVolume - vSphere VMDK 卷

请参阅 https://kubernetes.io/docs/concepts/storage/persistent-volumes/ 了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.