Reload namespace and label filtering

默认情况下,将使用 Namespace resolution 中概述的步骤选择的命名空间来监听 configmap 和 Secrets 中的更改。即:如果您不告诉 Reload 要监视哪些命名空间和 configmap/Secrets,它将监视使用上述算法计算出的命名空间中的所有 configmap/Secrets。

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

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

此类配置将使应用程序仅在 my-namespace 命名空间中监视更改。请注意,这将监视 所有 ConfigMap/secret(具体取决于您启用的哪个)。如果您想要更细粒度的做法,您可以启用“标签筛选”。首先,我们需要通过 enable-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 标签的 ConfigMap/secret。

Table 1. Properties:
Name Type Default Description

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

为重新加载功能启用标记的筛选

备注:

  • 您不得在 config map 或 secret 中使用 spring.cloud.kubernetes.reload 下的属性。在运行时更改此类属性可能会导致意外结果。

  • 删除属性或整个 config map 不会在使用 refresh 级别时还原 bean 的原始状态。