动态转发代理集群配置 (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 证书也对新主机名有效的情况下。例如,如果之前已使用对 *.example.com 有效的证书建立了到 IP 1.2.3.4 上的 foo.example.com 的连接,那么如果 bar.example.com 也解析为 1.2.3.4,则此连接可用于发送到 bar.example.com 的请求。

注意

根据设计,此功能将最大限度地重复使用连接。这意味着,当现有连接达到最大并发流数时,请求将发送到现有连接,而不是打开新的连接。

注意

合并的连接可能指向 Envoy 不会通过其他方式选择的 upstream。请参阅 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。在配置的时间间隔内未使用的子集群将被清除。如果未指定,则默认为 5m。

preresolve_clusters

(repeated config.core.v3.SocketAddress) 创建时应创建和预热子集群。这可能会在稳定状态期间预热并已知在配置加载时加载的子集群中提供性能改进,形式为缓存命中。