名前空間とラベルのフィルタリングをリロードする

デフォルトでは、名前空間の解決で説明されている手順を使用して選択された名前空間は、configmap と Secret の変更をリッスンするために使用されます。つまり、どの名前空間と構成マップ / シークレットを監視するかを reload に指示しない場合、上記のアルゴリズムを使用して計算される名前空間からのすべての構成マップ / シークレットを監視します。

一方、よりきめ細かいアプローチを定義することもできます。例: 変更を監視する名前空間を指定できます。

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

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

プロパティソースの変更をリッスンする方法を指定します (event または polling)

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 のプロパティを使用しないでください。実行時にそのようなプロパティを変更すると、予期しない結果が生じる可能性があります。

  • refresh レベルを使用する場合、プロパティまたは構成マップ全体を削除しても、Bean の元の状態は復元されません。