envoyproxy / gateway

Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway

Home Page:https://gateway.envoyproxy.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add support for the header hash policy in the consistent hash load balancer

harrisonturton opened this issue · comments

Description:

Slack discussion here.

While Envoy itself supports a range of hash policies for consistent hash load balancing, the Envoy Gateway can only be configured with the ConnectionProperties policy via the SourceIP consistent hash type. This is insufficient for situations where session affinity must be based on a sharding key that is in a request header.

For example, a request might include an resource identifier in a request header. When the request is processed, that resource will be cached on the upstream, so subsequent requests should be routed to the same instance. This routing must be done based on the value of that header, rather than the source IP address, which can change for a variety of reasons1.

Specifically, we want this feature to implement session affinity for gRPC messages based on their protocol headers.

Any extra documentation required to understand the issue.

Footnotes

  1. Whenever the downstream scales up/down, or for an public deployment, or when the client device roams and undergoes a network handover (which causing the connection to be reestablished), NAT rebinding, etc