我们的应用程序环境包括托管在Kubernetes管理的docker容器上的Spring Boot应用程序。 在Spring Boot中,我们使用属性" spring.config.location"指定属性文件的外部位置。 java命令如下: java -jar myproject.jar --spring.config.location = {file:// some file path}
现在,我可以创建一个Kube持久卷而不是使用本地文件路径,并在上面的命令中提供该路径吗? 我应该使用什么Kube卷类型来允许文件的相同语义:// {文件路径}?
答案 0 :(得分:0)
我们可以使用" spring.config.location"从Kubernetes Persistent Volume成功读取application.properties文件。命令行参数。我们遵循的步骤如下:
在Kubernetes上创建了持久卷(PVC设置为ReadWriteMany选项,因为多个微服务将使用相同的属性文件)。
将卷安装到每个微服务的Pod中(pod脚本文件中的更改)。可以通过 - ' / shared / folder / properties'访问挂载的文件系统。路径。
添加了" spring.config.location" " java -jar"的参数命令 - 例如java -Dspring.profiles.active = $ spring_profile -Xmx4096m -XX:+ HeapDumpOnOutOfMemoryError -jar myJar.jar --spring.config.location = file:/ shared / folder / properties