端點 (proto)

config.endpoint.v3.Endpoint

[config.endpoint.v3.Endpoint proto]

上游主機識別符。

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

(config.core.v3.Address) 上游主機位址。

注意

主機位址的形式取決於給定的叢集類型。對於 STATIC 或 EDS,預期是直接 IP 位址(或可由 Address 中指定的 解析器 解析的內容)。對於 LOGICAL 或 STRICT DNS,預期是主機名稱,並將透過 DNS 解析。

health_check_config

(config.endpoint.v3.Endpoint.HealthCheckConfig) 可選的健康檢查組態用作健康檢查器聯絡受檢查主機的組態。

注意

這僅對啟用 主動健康檢查 的上游叢集生效。

hostname

(字串) 與此端點相關聯的主機名稱。此主機名稱不適用於路由或位址解析。如果提供,它將與端點相關聯,並可用於需要主機名稱的功能,例如 auto_host_rewrite

additional_addresses

(重複 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) 可選的替代健康檢查埠值。

預設情況下,上游主機的健康檢查位址埠與主機的服務位址埠相同。這提供了一個替代的健康檢查埠。將此值設定為非零值,允許上游主機具有不同的健康檢查位址埠。

hostname

(字串) 預設情況下,L7 健康檢查的主機標頭由叢集層級組態控制(請參閱:hostauthority)。將此值設定為非空值,允許覆蓋特定端點的叢集層級組態。

address

(config.core.v3.Address) 可選的替代健康檢查主機位址。

注意

健康檢查主機位址的形式預期是直接 IP 位址。

disable_active_health_check

(布林值) 可選的旗標,用於控制是否對此端點執行主動健康檢查。如果存在健康檢查器,則預設會啟用主動健康檢查。

config.endpoint.v3.Endpoint.AdditionalAddress

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

{
  "address": {...}
}
address

(config.core.v3.Address) 與端點相關聯的其他位址。

config.endpoint.v3.LbEndpoint

[config.endpoint.v3.LbEndpoint proto]

Envoy 可以將流量路由到的端點。

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

(config.endpoint.v3.Endpoint) 上游主機識別符或具名參考。

health_status

(config.core.v3.HealthStatus) 已知且由 EDS 伺服器提供的可選健康狀態。

metadata

(config.core.v3.Metadata) 端點中繼資料指定負載平衡器可能使用來選擇叢集中給定請求的端點的值。篩選器名稱應指定為 envoy.lb。一個範例布林值鍵值對是 canary,提供上游主機的可選 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": ...
}
locality

(config.core.v3.Locality) 識別上游主機的執行位置。

metadata

(config.core.v3.Metadata) 中繼資料提供關於區域端點集合的其他資訊。

lb_endpoints

(重複 config.endpoint.v3.LbEndpoint) 屬於指定區域的端點群組。

load_balancing_weight

(UInt32Value) 可選:每個優先順序/區域/區域/子區域的權重;至少為 1。區域的負載平衡權重除以相同優先順序層級所有區域的權重總和,以產生區域的有效流量百分比。相同優先順序層級的所有區域權重總和不得超過 uint32_t 最大值 (4294967295)。

僅當組態 區域加權負載平衡 時,才會考慮區域權重。否則會忽略這些權重。如果在啟用區域加權負載平衡時未指定權重,則不會為該區域指派負載。

priority

(uint32) 可選:此 LocalityLbEndpoints 的優先順序。如果未指定,則預設為最高優先順序 (0)。

通常情況下,Envoy 只會選擇最高優先順序 (0) 的端點。如果特定優先順序的端點數量不足/不健康,Envoy 會故障轉移至選擇下一最高優先順序群組的端點。請在 優先順序層級 中閱讀更多資訊。

優先順序應從 0(最高)到 N(最低),不得跳過。