跳到主要内容

重新加载命名空间和标签过滤

DeepSeek V3 中英对照 Reload namespace and label filtering

默认情况下,将使用通过命名空间解析步骤选择的命名空间来监听配置映射(configmaps)和密钥(secrets)的更改。也就是说,如果你没有告诉 reload 要监视哪些命名空间和配置映射/密钥,它将监视使用上述算法计算出的命名空间中的所有配置映射和密钥。

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

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

这样的配置将使应用程序仅监视 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
yaml

这将监视仅具有 spring.cloud.kubernetes.config.informer.enabled: true 标签的 ConfigMap/Secret。

表 1. 属性:

名称类型默认值描述
spring.cloud.kubernetes.reload.enabledBooleanfalse启用对属性源和配置重新加载的监控
spring.cloud.kubernetes.reload.monitoring-config-mapsBooleantrue允许监控 ConfigMap 中的变化
spring.cloud.kubernetes.reload.monitoring-secretsBooleanfalse允许监控 Secret 中的变化
spring.cloud.kubernetes.reload.strategyEnumrefresh触发重新加载时使用的策略 (refresh, restart_context, 或 shutdown)
spring.cloud.kubernetes.reload.modeEnumevent指定如何监听属性源的变化 (eventpolling)
spring.cloud.kubernetes.reload.periodDuration15s使用 polling 策略时检查变化的周期
spring.cloud.kubernetes.reload.namespacesString[]应监控变化的命名空间

笔记:

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

  • 当你使用 refresh 级别时,删除一个属性或整个配置映射不会恢复 bean 的原始状态。