Spring 启动云 kubernetes - java.lang.IllegalArgumentException:未启用重新启动端点

问题描述 投票:0回答:1

我有一个 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>
java spring spring-boot kubernetes spring-boot-actuator
1个回答
0
投票

我对 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
© www.soinside.com 2019 - 2024. All rights reserved.