重新加载命名空间和标签过滤
默认情况下,将使用上述 命名空间解析 所描述的步骤中选定的命名空间来监听配置映射(configmaps)和密钥(secrets)的变更。即:如果您未告知 reload 要监视哪些命名空间以及哪些配置映射/密钥,则它将监视通过上述算法计算出的命名空间中的所有配置映射和密钥。
另一方面,您可以定义一种更细粒度的方法。例如,您可以指定将被监控更改的命名空间:
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 标签的 configmaps/secrets。
| 姓名 | 类型 | 默认 | 描述 |
|---|---|---|---|
|
|
|
启用对属性源和配置重新加载的监控 |
|
|
|
允许监控配置映射中的更改 |
|
|
|
允许监控密钥的变化 |
|
|
|
触发重新加载时所使用的策略( |
|
|
|
指定如何监听属性源( |
|
|
|
使用 |
|
|
我们应监控变更的命名空间 |
|
|
|
启用了带标签的过滤功能,以支持重新加载功能 |
备注:
-
你不应使用配置映射或密钥中下标为
spring.cloud.kubernetes.reload的属性。在运行时更改此类属性可能导致意外结果。 -
删除一个属性或整个配置映射时,如果您使用
refresh级别,无法恢复 Bean 的原始状态。