Kubernetes配置映射重载问题



我在spring-boot项目中有Kubernetes配置映射,如果配置映射中有任何值发生变化,我的应用程序应该从配置映射中动态获取值,因此我在bootstarp.yml文件中使用了如下的spring-cloud-Kubernetes-Config

spring:
profiles: dev, preprod
cloud:
kubernetes:
reload:
enabled: true
config:
enabled: true
sources:
- namespace: ${kubernetesnamespace}
name: ${configmapname}

部署应用程序后,如果我去更改配置映射值,我可以在不重新启动的情况下进入应用程序,这是预期的,但如果我在部署1小时后更改配置映射的值,则配置映射的新值不会反映在应用程序中,但在部署5分钟后,它也会起作用。那么原因是什么呢。

的原因是什么

我首先怀疑的是应用程序本身。这可能是";手表;对于ConfigMap(打开一个长期存在的连接,订阅该对象的更改(。最终,这些连接可能会关闭,这是正常的/预期的(容器重新启动,etcd领导人更改,SDN问题,…(

我会确保我的应用程序正确地确认这些并重新连接到API。

要想重新加载,需要用@RefreshScope.对候选类进行注释

请参阅文档参考:https://docs.spring.io/spring-cloud-kubernetes/docs/current/reference/html/#propertysource-重新加载

请注意,默认的重新加载策略是";CCD_ 2";除非指定,否则不会重新加载整个上下文。我希望这能有所帮助。

最新更新