我有一个 Spring Boot 微服务,具有 configmap 和 Secret 支持的 kubernetes 依赖项。当前的 Spring Boot 版本是 2.3.9.RELEASE 。 kubernetes 依赖版本为 1.1.0.RELEASE 。它是旧的,所以我尝试将依赖项更新到最新的 1.1.10.RELEASE。 这是更新后的 pom 详细信息
<spring-cloud-kubernetes.version>1.1.10.RELEASE</spring-cloud-kubernetes.version>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-kubernetes-dependencies</artifactId>
<version>${spring-cloud-kubernetes.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-kubernetes-dependencies</artifactId>
<version>${spring-cloud-kubernetes.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
将 kubernetes 依赖项版本更新到 1.1.10.RELEASE 后,在声明应用程序时收到以下错误
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'propertyChangeWatcher' defined in class path resource [org/springframework/cloud/kubernetes/config/reload/ConfigReloadAutoConfiguration$ConfigReloadAutoConfigurationBeans.class]: Unsatisfied dependency expressed through method 'propertyChangeWatcher' parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationUpdateStrategy' defined in class path resource [org/springframework/cloud/kubernetes/config/reload/ConfigReloadAutoConfiguration$ConfigReloadAutoConfigurationBeans.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.kubernetes.config.reload.ConfigurationUpdateStrategy]: Factory method 'configurationUpdateStrategy' threw exception; nested exception is java.lang.IllegalArgumentException: Restart endpoint is not enabled
这是我的 bootstrap.yml 文件
spring:
cloud:
kubernetes:
reload:
enabled: true
monitoring-config-maps: true
mode: polling
period: 15000
strategy: restart_context
config:
enabled: true
sources:
- name: demo
secrets:
enabled: true
enable-api: true
sources:
- name: demo-secret
management:
endpoint:
restart:
enabled: true
health:
enabled: true
info:
enabled: true
env:
enabled: true
refresh:
enabled: true
这是我的application.yml文件
management:
endpoints:
beans:
enabled: false
web:
exposure:
include: prometheus,info,refresh,health,env,restart
prometheus:
path: /api/actuator/prometheus
sensitive: false
我已经启用了重启端点,但它仍然不起作用。请帮我解决这个问题。 我也尝试了以下方法,但仍然抛出同样的问题。
<properties>
<spring.cloud-version>Hoxton.SR12</spring.cloud-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
我对 spring 也有类似的问题 spring-cloud-aws-starter 我偶然发现了这个 github 问题。
它依赖于启用的执行器。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在您的 application.yml 中加上此配置:
management:
endpoint:
restart:
enabled: true
endpoints:
web:
exposure:
include: health,info,restart