繁体   English   中英

Spring docker-compose 和 Kubernetes 之间的云配置行为差异

[英]Spring Cloud Config behavior difference between docker-compose and Kubernetes

我在我的应用程序中使用了一个基本的 spring 云微服务。 每个配置和发现服务都构建为 docker 容器,当我使用 docker-compose 运行它们时,一切正常,因为配置服务器直接从挂载加载属性文件并在日志中显示以下内容:

2021-11-16 14:29:51.691  INFO 1 --- [nio-8888-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-11-16 14:29:51.691  INFO 1 --- [nio-8888-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-11-16 14:29:51.713  INFO 1 --- [nio-8888-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 22 ms
2021-11-16 14:29:51.920  INFO 1 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/data/application-container.properties
web-configuration-1  | 2021-11-16 14:29:51.921  INFO 1 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/data/hazelcast-service.properties

当我在 kubernetes 中运行相同的容器时,容器运行良好但不加载属性文件。 我在某处读到配置文件需要是本地的,我确认是本地的。

结果,当我的发现服务出现时,它没有分配端口号,因此在随机端口上启动。 知道是什么原因导致在 kubernetes 中运行的这个容器没有加载这些应用程序属性吗?

这是为更好的可见性而发布的社区 wiki 答案。 随意扩展它。

@sg1973 使用 minikube,它在主机和实际的 docker 容器之间添加了一层。 因此,当尝试挂载本地文件夹时,它实际上是从 minikube 实例挂载文件夹,该实例为空。

通过将代码作为容器本身的一部分包含在内,该问题得到了解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM