默认情况下,使用命名空间解析中概述的步骤选择的命名空间将用于侦听更改 在 ConfigMap 和 Secret 中。即:如果您不告诉 Reload 要注意哪些命名空间和 ConfigMaps/Secret, 它将监视命名空间中将使用上述算法计算的所有 ConfigMaps/Secret。

另一方面,您可以定义更细粒度的方法。例如,您可以指定命名空间,其中 将监控更改:

spring:
  application:
    name: event-reload
  cloud:
    kubernetes:
      reload:
        enabled: true
        strategy: shutdown
        mode: event
        namespaces:
          - my-namespace

此类配置将使应用监视仅在命名空间中进行更改。请注意,这将 监视所有 ConfigMaps/Secret(取决于您启用的 ConfigMaps/Secret)。如果您想要更细粒度的方法, 您可以启用“标签过滤”。首先,我们需要通过以下方式启用此类支持:my-namespaceenable-reload-filtering: true

spring:
  application:
    name: event-reload
  cloud:
    kubernetes:
      reload:
        enabled: true
        strategy: shutdown
        mode: event
        namespaces:
          - my-namespaces
        monitoring-config-maps: true
        enable-reload-filtering: true

这将做的是监视只有标签的配置映射/机密。spring.cloud.kubernetes.config.informer.enabled: true

表 1.性能:
名字 类型 违约 描述

spring.cloud.kubernetes.reload.enabled

Boolean

false

启用对属性源和配置重新加载的监视

spring.cloud.kubernetes.reload.monitoring-config-maps

Boolean

true

允许监视配置映射中的更改

spring.cloud.kubernetes.reload.monitoring-secrets

Boolean

false

允许监视机密中的更改

spring.cloud.kubernetes.reload.strategy

Enum

refresh

发射重新加载(、 或refreshrestart_contextshutdown)

spring.cloud.kubernetes.reload.mode

Enum

event

指定如何侦听属性源( 或eventpolling)

spring.cloud.kubernetes.reload.period

Duration

15s

使用策略时验证更改的时间段polling

spring.cloud.kubernetes.reload.namespaces

String[]

我们应该注意更改的命名空间

spring.cloud.kubernetes.reload.enable-reload-filtering

String

为重新加载功能启用标记过滤

笔记:

  • 不应使用配置映射或机密下的属性。在运行时更改此类属性可能会导致意外结果。spring.cloud.kubernetes.reload

  • 使用关卡时,删除属性或整个配置映射不会恢复 Bean 的原始状态。refresh