動態前向代理叢集組態 (proto)

extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig

[extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig proto]

動態前向代理叢集的組態。請參閱 架構概觀 以取得更多資訊。

此擴展的限定名稱為 envoy.clusters.dynamic_forward_proxy

注意

此擴展旨在針對不受信任的下游流量具有強大的防護能力。它假設上游是受信任的。

提示

此擴展延伸並可與下列擴展類別一起使用

{
  "dns_cache_config": {...},
  "sub_clusters_config": {...},
  "allow_insecure_cluster_options": ...,
  "allow_coalesced_connections": ...
}
dns_cache_config

(extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig) 叢集將附加到的 DNS 快取組態。請注意,此組態必須與相關聯的 動態前向代理 HTTP 篩選器組態 的組態相符。

只能設定 dns_cache_configsub_clusters_config 中的其中一個。

sub_clusters_config

(extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig) 子叢集的組態,啟用此組態後,Envoy 將為每個主機:埠動態建立一個獨立的子叢集。子叢集的大部分組態都繼承自目前的叢集,例如 health_checks、dns_resolvers 等。並且 load_assignment 將設定為唯一一個端點,即主機:埠。

與 dns_cache_config 相比,它具有以下優點

  1. 子叢集將使用 STRICT_DNS DiscoveryType 建立,以便 Envoy 將使用從主機解析的所有 IP。

  2. 每個子叢集都是功能齊全的叢集,啟用了 lb_policy 和健康檢查等。

只能設定 dns_cache_configsub_clusters_config 中的其中一個。

allow_insecure_cluster_options

(bool) 如果為 true,則允許叢集組態停用 叢集的 upstream_http_protocol_options 中的 auto_sni 和 auto_san_validation 選項

allow_coalesced_connections

(bool) 如果為 true,則允許將 HTTP/2 和 HTTP/3 連線重新用於與最初建立連線時不同的來源的請求。只有在新連線的已解析位址與連線的對等位址相符,且 TLS 憑證對於新主機名稱也有效時,才會發生這種情況。例如,如果先前已建立到 IP 1.2.3.4 上 foo.example.com 的連線,且憑證對於 *.example.com 有效,則如果 bar.example.com 也解析到 1.2.3.4,則此連線可用於發往 bar.example.com 的請求。

注意

根據設計,此功能將最大程度地重複使用連線。這表示當現有連線達到並行串流的最大數量時,不會開啟新連線,而是將請求傳送到現有連線。

注意

合併的連線可能連到 Envoy 否則不會選取的上游。請參閱 RFC 7540 中的連線重複使用 一節

extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig

[extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig proto]

子叢集的組態。現在硬式編碼 STRICT_DNS 叢集類型。

{
  "lb_policy": ...,
  "max_sub_clusters": {...},
  "sub_cluster_ttl": {...},
  "preresolve_clusters": []
}
lb_policy

(config.cluster.v3.Cluster.LbPolicy) 在子叢集中選擇主機時要使用的負載平衡器類型。請注意,此處不允許 CLUSTER_PROVIDED。

max_sub_clusters

(UInt32Value) DFP 叢集將保留的最大子叢集數量。如果未指定,則預設為 1024。

sub_cluster_ttl

(Duration) 未使用子叢集的 TTL。在設定的時間間隔內未使用的子叢集將被清除。如果未指定,則預設為 5 分鐘。

preresolve_clusters

(重複 config.core.v3.SocketAddress) 應在建立時建立和預熱的子叢集。對於在穩定狀態期間將預熱且在組態載入時已知的子叢集,這可能會以快取命中的形式提供效能改進。