在本地禁用 Spring Cloud Kubernetes

Pat*_*Pat 7 java spring kubernetes spring-cloud-kubernetes

关于如何在本地模式下禁用 Spring Cloud Kubernetes 的小问题。

该项目是一个部署在 Kubernetes 中的简单 SpringBoot + SpringCloud 项目。因此,类路径中存在这种依赖关系:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-kubernetes-fabric8</artifactId>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

当我们在 Kubernetes 环境中部署应用程序时,一切都很好。然而,在本地模式下运行的同一个应用程序将产生此警告,但最重要的是,启动时间增加了 20 秒。

o.s.c.k.f.Fabric8AutoConfiguration       : No namespace has been detected. Please specify KUBERNETES_NAMESPACE env var, or use a later kubernetes version (1.3 or later)
Run Code Online (Sandbox Code Playgroud)

在本地,虽然完全消除了依赖关系,但一切都“恢复正常”。该消息消失,启动时间又缩短。

但是,根据本地环境注释和取消注释依赖项可能不是最好的解决方案。

是否有一个可以在本地配置的完全禁用 Spring Cloud Kubernetes 的属性?

谢谢

Eug*_*ene 9

正如文档所述,您可以通过添加以下内容来做到这一点:

spring.cloud.kubernetes.enabled=false
Run Code Online (Sandbox Code Playgroud)

反过来,它可能是您可以针对每个环境启用/禁用的环境属性。


Jey*_*eyJ 5

对我有用的是将spring.cloud.kubernetes.enabled=false属性添加到boostrap.properties/yaml文件中而不是application.properties/yaml文件中。