擴充功能設定
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 |
計數器 |
由於遺失網路篩選器擴充功能設定而關閉的連線總數 |