【发布时间】:2019-07-30 16:29:12
【问题描述】:
我是 java 和 k8 的新手,我对如何处理我的 java 应用程序的应用程序配置有些疑问。我有一个 spring boot 应用,另外三个使用 wildfly。
因此,它们都获得了硬编码的应用程序配置,并且在启动它们时只需使用以下内容:
java -Dswarm.project.stage=development -jar foobar/target/foobar-swarm.jar
Spring Boot 除外,它有一个包含应用程序配置数据的 application.properties 文件。
所以基本上这三个 java 应用程序都支持两个文件(我知道这是不可以的):
- project-stages.yml
- standalone.xml
当开发人员想要部署到生产环境时,他使用:
java -Dswarm.project.stage=production -jar foobar/target/foobar-swarm.jar
现在我们来看看 Kubernetes,它具有三种处理应用程序配置数据的方式:
1.) Env variables
2.) Config maps
3.) Secrets
我正在考虑使用 configmaps 而不是 env 变量,因为它们有更多 benefits。
因此,开发人员允许我使用外部文件覆盖这些硬编码变量:Dsystem.properties.file=/var/foobar/environment.properties
但我仍在用外部文件覆盖硬编码文件,我对那个解决方案不满意!
所以,我基本上是在寻找建议是否可以从外部提供这些硬编码文件并在 k8 中填充配置映射 - 在 k8 的世界中处理配置文件的最佳实践是什么?
Tnx, 汤姆
【问题讨论】:
标签: java docker configuration kubernetes