端点 (proto)

config.endpoint.v3.Endpoint

[config.endpoint.v3.Endpoint proto]

上游主机标识符。

{
  "address": {...},
  "health_check_config": {...},
  "hostname": ...,
  "additional_addresses": []
}
地址

(config.core.v3.Address) 上游主机地址。

注意

主机地址的形式取决于给定的集群类型。对于 STATIC 或 EDS,它应该是一个直接的 IP 地址(或者由 Address 中指定的 解析器 可解析的地址)。对于 LOGICAL 或 STRICT DNS,它应该是一个主机名,并将通过 DNS 解析。

health_check_config

(config.endpoint.v3.Endpoint.HealthCheckConfig) 可选的健康检查配置用作健康检查器与健康检查主机联系的配置。

注意

这仅对启用了 主动健康检查 的上游集群有效。

主机名

(string) 与该端点关联的主机名。此主机名不用于路由或地址解析。如果提供,它将与端点关联,并且可用于需要主机名的功能,如 auto_host_rewrite

additional_addresses

(repeated config.endpoint.v3.Endpoint.AdditionalAddress) 地址的排序列表,这些地址与 address 一起构成端点地址列表。 address 中给出的地址将被预先添加到此列表中。假设该列表必须已经按地址的优先级顺序排序。这将仅在 STATIC 和 EDS 集群中得到支持。

config.endpoint.v3.Endpoint.HealthCheckConfig

[config.endpoint.v3.Endpoint.HealthCheckConfig proto]

可选的健康检查配置。

{
  "port_value": ...,
  "hostname": ...,
  "address": {...},
  "disable_active_health_check": ...
}
port_value

(uint32) 可选的备用健康检查端口值。

默认情况下,上游主机的健康检查地址端口与主机的服务地址端口相同。这提供了一个备用健康检查端口。使用非零值设置此值允许上游主机具有不同的健康检查地址端口。

主机名

(string) 默认情况下,L7 健康检查的主机头由集群级配置控制(参见: 主机授权)。将其设置为非空值允许覆盖特定端点的集群级配置。

地址

(config.core.v3.Address) 可选的备用健康检查主机地址。

注意

健康检查主机地址的形式应为直接 IP 地址。

disable_active_health_check

(bool) 可选标志,用于控制是否对该端点执行主动健康检查。如果存在健康检查器,默认情况下会启用主动健康检查。

config.endpoint.v3.Endpoint.AdditionalAddress

[config.endpoint.v3.Endpoint.AdditionalAddress proto]

{
  "address": {...}
}
地址

(config.core.v3.Address) 与端点关联的附加地址。

config.endpoint.v3.LbEndpoint

[config.endpoint.v3.LbEndpoint proto]

Envoy 可以将流量路由到的端点。

{
  "endpoint": {...},
  "health_status": ...,
  "metadata": {...},
  "load_balancing_weight": {...}
}
端点

(config.endpoint.v3.Endpoint) 上游主机标识符或命名引用。

health_status

(config.core.v3.HealthStatus) 可选的健康状态,当已知且由 EDS 服务器提供时。

元数据

(config.core.v3.Metadata) 端点元数据指定负载均衡器可能用来为给定请求选择集群中的端点的值。过滤器名称应指定为 envoy.lb。一个示例布尔键值对是 canary,它提供了上游主机的可选金丝雀状态。这可能与路由的 RouteAction metadata_match 字段匹配,以对集群负载均衡中考虑的端点进行子集化。

load_balancing_weight

(UInt32Value) 上游主机的可选负载均衡权重;至少为 1。Envoy 在一些内置负载均衡器中使用负载均衡权重。端点的负载均衡权重除以端点所在区域中所有端点权重的总和,从而得出该端点的流量百分比。然后,该百分比将根据端点所在的区域的 LocalityLbEndpoints 中的负载均衡权重进一步加权。如果未指定,将被视为 1。端点所在区域中所有端点的权重总和不能超过 uint32_t 最大值 (4294967295)。

config.endpoint.v3.LocalityLbEndpoints

[config.endpoint.v3.LocalityLbEndpoints proto]

一组属于区域的端点。一个区域可以有多个 LocalityLbEndpoints,但前提是它们具有不同的优先级。

{
  "locality": {...},
  "metadata": {...},
  "lb_endpoints": [],
  "load_balancer_endpoints": {...},
  "leds_cluster_locality_config": {...},
  "load_balancing_weight": {...},
  "priority": ...
}
区域

(config.core.v3.Locality) 标识上游主机运行的位置。

元数据

(config.core.v3.Metadata) 元数据,用于提供有关聚合区域端点的其他信息。

lb_endpoints

(repeated config.endpoint.v3.LbEndpoint) 属于指定区域的端点组。

load_balancing_weight

(UInt32Value) 可选:按优先级/区域/区域/子区域加权;至少为 1。区域的负载均衡权重除以同一优先级级别中所有区域的权重总和,从而得出该区域的有效流量百分比。同一优先级级别中所有区域的权重总和不能超过 uint32_t 最大值 (4294967295)。

仅当配置了 区域加权负载均衡 时才考虑区域权重。否则,这些权重将被忽略。如果在启用区域加权负载均衡时没有指定权重,则该区域将被分配到没有负载。

优先级

(uint32) 可选:此 LocalityLbEndpoints 的优先级。如果未指定,这将默认为最高优先级 (0)。

在通常情况下,Envoy 仅选择最高优先级 (0) 的端点。如果特定优先级的端点数量不足,则 Envoy 将故障转移到选择下一最高优先级组的端点。在 优先级级别 中阅读更多信息。

优先级应从 0(最高)到 N(最低)排列,不应跳过。