【问题标题】:Unable to load config data to springboot application from mounted volume in kubernetes无法从 Kubernetes 中的已安装卷将配置数据加载到 Spring Boot 应用程序
【发布时间】:2022-01-25 10:06:54
【问题描述】:

我有 springboot 应用程序,我正在尝试从卷安装位置 /tmp/secret-config.yaml 加载其他配置并出现以下错误: java.lang.IllegalStateException:无法从“/tmp/secret-config.yaml”加载配置数据

我不想为此使用 configmap 或机密。这是一个我正在尝试加载的简单 json 文件。

我正在尝试像这样从 shell 脚本传递它。 java -jar /opt/app.jar --spring.config.additional-location=/tmp/secret-config.yaml

有人可以帮忙吗?

【问题讨论】:

  • 您是否检查过容器中的 yaml 文件实际上是否可用?请出示您的 YAML 清单

标签: java spring-boot shell kubernetes configuration


【解决方案1】:

我建议验证您的 pod 中文件的卷挂载。 您可以使用以下命令进行验证:

kubectl exec -it <podName> -- cat /tmp/secret-config.yaml

kubectl exec -it <podName> -- ls /tmp

此外,您的 yaml 文件中的卷挂载配置会很有趣。您是否在 pod 配置中为 volumeMount 指定了 mountPath ? 您还可以使用以下命令检查 mountPath:

# for a pod with a single container and only one volumeMount
kubectl get pods <podName> -o jsonpath='{.spec.containers[0].volumeMounts[0].mountPath}'

【讨论】:

  • 你好@Jonas,我能够解决这个问题。实际问题是 jar 文件和卷挂载的路径。我应该给出绝对路径而不是主目录中的相对路径。但是,是的,上述方法会更容易找到它。谢谢。
  • @mayankagarwal 很高兴您能找到问题。
猜你喜欢
  • 2020-03-29
  • 2021-10-30
  • 1970-01-01
  • 2017-11-16
  • 2019-05-29
  • 2021-06-01
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
相关资源
最近更新 更多