#spring-boot #kubernetes #spring-boot-actuator #spring-cloud-config #spring-cloud-kubernetes
Вопрос:
В моем пространстве имен k8s есть два компонента.
- Первый компонент-это простая веб-служба загрузки Spring Boot с открытой конечной точкой привода/обновления. Я обычно делаю запрос post на конечную точку, и он успешно запускает обновление контекста конфигурации.
- Второй компонент-это наблюдатель конфигурации Spring Cloud Kubernetes, который я извлекаю из изображения в соответствии с руководством по официальному документу и запускаю его в своем k8s env. Согласно официальному документу spring, он должен обнаруживать изменения в конфигурационной карте с меткой spring.cloud.kubernetes.config=»true» и отправлять запрос post на конечную точку привода/обновления приложения, чье spring.application.имя равно имени карты конфигурации.
Второй компонент работает не так, как ожидалось, и я не знаю, как устранить основную причину.
Мое приложение Springboot называется spring-boot-demo, карта конфигурации также называется spring-boot-demo. Но я никогда не нахожу никаких упоминаний о «spring-boot-demo» в журнале наблюдателя конфигурации Spring Cloud Kubernetes и не могу гарантировать, отправил ли он запрос post на соответствующую конечную точку.
Я могу видеть только журналы, которые неоднократно появлялись ниже:
2021-11-22 02:58:53.332 INFO 1 --- [192.168.0.1/...] .w.HttpBasedConfigMapWatchChangeDetector : Added new Kubernetes watch: config-maps-watch-event 2021-11-22 02:58:53.332 INFO 1 --- [192.168.0.1/...] .w.HttpBasedConfigMapWatchChangeDetector : Kubernetes event-based configMap change detector activated 2021-11-22 03:34:06.555 WARN 1 --- [192.168.0.1/...] .f.c.r.EventBasedConfigMapChangeDetector : ConfigMaps watch closed io.fabric8.kubernetes.client.WatcherException: too old resource version: 5491278743 (5554041906) at io.fabric8.kubernetes.client.dsl.internal.AbstractWatchManager.onStatus(AbstractWatchManager.java:263) [kubernetes-client-5.5.0.jar:na] at io.fabric8.kubernetes.client.dsl.internal.AbstractWatchManager.onMessage(AbstractWatchManager.java:247) [kubernetes-client-5.5.0.jar:na] at io.fabric8.kubernetes.client.dsl.internal.WatcherWebSocketListener.onMessage(WatcherWebSocketListener.java:93) [kubernetes-client-5.5.0.jar:na] at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.java:322) [okhttp-3.14.9.jar:na] at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.java:219) [okhttp-3.14.9.jar:na] at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:105) [okhttp-3.14.9.jar:na] at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:273) [okhttp-3.14.9.jar:na] at okhttp3.internal.ws.RealWebSocket$1.onResponse(RealWebSocket.java:209) [okhttp-3.14.9.jar:na] at okhttp3.RealCall$AsyncCall.execute(RealCall.java:174) [okhttp-3.14.9.jar:na] at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) [okhttp-3.14.9.jar:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_312] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_312] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_312] Caused by: io.fabric8.kubernetes.client.KubernetesClientException: too old resource version: 5491278743 (5554041906) ... 13 common frames omitted 2021-11-22 03:34:06.605 INFO 1 --- [192.168.0.1/...] .f.c.r.EventBasedConfigMapChangeDetector : Added new Kubernetes watch: config-maps-watch-event 2021-11-22 03:34:06.605 INFO 1 --- [192.168.0.1/...] .f.c.r.EventBasedConfigMapChangeDetector : Kubernetes event-based configMap change detector activated 2021-11-22 03:34:06.607 INFO 1 --- [192.168.0.1/...] s.c.k.f.c.Fabric8ConfigMapPropertySource : Loading ConfigMap with name 'spring-cloud-kubernetes-configuration-watcher' in namespace 'my-namespace' 2021-11-22 03:34:06.621 WARN 1 --- [192.168.0.1/...] o.s.c.k.f.config.Fabric8ConfigUtils : config-map with name : 'spring-cloud-kubernetes-configuration-watcher' not present in namespace : 'my-namespace' 2021-11-22 03:34:06.625 WARN 1 --- [192.168.0.1/...] o.s.c.k.f.config.Fabric8ConfigUtils : config-map with name : 'spring-cloud-kubernetes-configuration-watcher-kubernetes' not present in namespace : 'my-namespace'
Образ докера, который я использую,-springcloud/spring-cloud-kubernetes-наблюдатель конфигурации:2.1.0-RC1
Любой намек на отладку этой проблемы приветствуется.