擴充功能設定

Envoy 中的每個設定資源在 typed_config 中都有一個類型 URL。此類型對應到一個版本化的綱要。類型 URL 唯一地識別能夠解釋設定的擴充功能。name 欄位是可選的,可以用作識別符或作為特定擴充功能設定實例的註解。例如,允許以下篩選器設定程式碼片段

14      - name: front-http-proxy
15        typed_config:
16          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
17          stat_prefix: ingress_http
18          codec_type: AUTO
19          rds:
20            route_config_name: local_route
21            config_source:
22              api_config_source:
23                api_type: GRPC
24                grpc_services:
25                - envoy_grpc:
26                    cluster_name: xds_cluster
27          http_filters:
28          - name: front-router
29            typed_config:
30              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
31              dynamic_stats: true
32  clusters:
33  - type: STRICT_DNS

如果控制平面缺少擴充功能的綱要定義,則應使用 xds.type.v3.TypedStruct 作為通用容器。然後,用戶端會使用其中的類型 URL 將內容轉換為類型化設定資源。例如,上述範例可以寫成如下

14      - name: front-http-proxy
15        typed_config:
16          "@type": type.googleapis.com/xds.type.v3.TypedStruct
17          type_url: type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
18          value:
19            stat_prefix: ingress_http
20            codec_type: AUTO
21            rds:
22              route_config_name: local_route
23              config_source:
24                api_config_source:
25                  api_type: GRPC
26                  grpc_services:
27                  - envoy_grpc:
28                      cluster_name: xds_cluster
29            http_filters:
30            - name: front-router
31              typed_config:
32                "@type": type.googleapis.com/xds.type.v3.TypedStruct
33                type_url: type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
34                value:
35                  dynamic_stats: true
36  clusters:
37  - type: STRICT_DNS

探索服務

擴充功能設定可以從 xDS 管理伺服器 使用 ExtensionConfiguration 探索服務 動態提供。擴充功能設定中的 name 欄位會作為資源識別符。

監聽器篩選器

對於監聽器篩選器,探索服務設定為: 動態監聽器篩選器重新設定。動態監聽器篩選器設定僅在 TCP 監聽器中支援。如果遺失動態設定,連線將會被拒絕,直到更新有效的設定為止。

網路篩選器

對於下游網路篩選器,探索服務設定為: 動態篩選器重新設定。如果遺失動態設定,連線將會被拒絕,直到更新有效的設定為止。當篩選器設定更新時,新的設定只會套用至新的連線,現有的連線將繼續使用舊的篩選器設定。

HTTP 篩選器

對於 HTTP 篩選器,HTTP 連線管理員支援 動態篩選器重新設定。如果遺失設定,則會返回具有 ‘500’ 狀態碼的本機 HTTP 回應。

UDP 會議篩選器

對於 UDP 會議篩選器,UDP Proxy 支援 動態篩選器重新設定。如果遺失設定,則會移除 UDP 會議。

統計

除了針對 xDS 訂閱支援的統計之外,以下統計資料也支援監聽器篩選器、下游網路篩選器和 HTTP 篩選器,根目錄位於 extension_config_discovery.<stat_prefix>.<extension_config_name>

  • 對於 TCP 監聽器篩選器,<stat_prefix> 的值為 tcp_listener_filter

  • 對於下游網路篩選器,<stat_prefix> 的值為 network_filter

  • 對於上游網路篩選器,<stat_prefix> 的值為 upstream_network_filter

  • 對於下游 HTTP 篩選器,<stat_prefix> 的值為 http_filter

  • 對於上游 HTTP 篩選器,<stat_prefix> 的值為 upstream_http_filter

  • 對於 UDP 會議篩選器,<stat_prefix> 的值為 udp_session_filter

名稱

類型

描述

config_reload

計數器

成功設定更新的總數

config_fail

計數器

失敗設定更新的總數

config_conflict

計數器

設定更新的衝突應用總數;當新的監聽器由於無效的類型 URL 而無法重複使用已訂閱的擴充功能設定時,可能會發生這種情況。

此外,還支援以下統計資料,以指出由於遺失設定而關閉的連線,根目錄位於 listener.<address> (如果 stat_prefix 非空,則為 listener.<stat_prefix>)。

名稱

類型

描述

extension_config_missing

計數器

由於遺失監聽器篩選器擴充功能設定而關閉的連線總數

network_extension_config_missing

計數器

由於遺失網路篩選器擴充功能設定而關閉的連線總數