過載名稱空間和標籤過濾

預設情況下,將使用 名稱空間解析 中概述的步驟選擇的名稱空間來監聽 configmaps 和 secrets 的更改。也就是說:如果您不指定過載應監聽哪些名稱空間和 configmaps/secrets,它將監聽根據上述演算法計算出的名稱空間中的所有 configmaps/secrets。

另一方面,您可以定義更細粒度的方法。例如,您可以指定要監控更改的名稱空間

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

這樣的配置將使應用程式僅監控 my-namespace 名稱空間中的更改。請注意,這將監控 所有 configmaps/secrets(取決於您啟用哪一個)。如果您想要更細粒度的方法,可以啟用“標籤過濾”。首先我們需要透過以下方式啟用此支援: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。

表 1. 屬性
名稱 型別 預設值 描述

spring.cloud.kubernetes.reload.enabled

布林值

false

啟用屬性源監控和配置過載

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

布林值

true

允許監控 config map 中的更改

spring.cloud.kubernetes.reload.monitoring-secrets

布林值

false

允許監控 secrets 中的更改

spring.cloud.kubernetes.reload.strategy

列舉

refresh

觸發過載時使用的策略(refreshrestart_contextshutdown

spring.cloud.kubernetes.reload.mode

列舉

event

指定如何監聽屬性源中的更改(eventpolling

spring.cloud.kubernetes.reload.period

持續時間

15s

使用 polling 策略時檢查更改的週期

spring.cloud.kubernetes.reload.namespaces

String[]

應監控更改的名稱空間

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

String

為過載功能啟用標籤過濾

注意

  • 您不應在 config maps 或 secrets 中使用 spring.cloud.kubernetes.reload 下的屬性。在執行時更改這些屬性可能會導致意外結果。

  • 當您使用 refresh 級別時,刪除屬性或整個 config map 不會恢復 bean 的原始狀態。