動態前向代理叢集組態 (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_config 和 sub_clusters_config 中的其中一個。
- sub_clusters_config
(extensions.clusters.dynamic_forward_proxy.v3.SubClustersConfig) 子叢集的組態,啟用此組態後,Envoy 將為每個主機:埠動態建立一個獨立的子叢集。子叢集的大部分組態都繼承自目前的叢集,例如 health_checks、dns_resolvers 等。並且 load_assignment 將設定為唯一一個端點,即主機:埠。
與 dns_cache_config 相比,它具有以下優點
子叢集將使用 STRICT_DNS DiscoveryType 建立,以便 Envoy 將使用從主機解析的所有 IP。
每個子叢集都是功能齊全的叢集,啟用了 lb_policy 和健康檢查等。
只能設定 dns_cache_config 和 sub_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) 應在建立時建立和預熱的子叢集。對於在穩定狀態期間將預熱且在組態載入時已知的子叢集,這可能會以快取命中的形式提供效能改進。