Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Honor Istio DestinationRule session affinity (sticky sessions) #10758

Open
PetrMc opened this issue Mar 5, 2025 · 0 comments
Open

Honor Istio DestinationRule session affinity (sticky sessions) #10758

PetrMc opened this issue Mar 5, 2025 · 0 comments
Labels
Type: Enhancement New feature or request

Comments

@PetrMc
Copy link
Contributor

PetrMc commented Mar 5, 2025

kgateway version

2.0

Is your feature request related to a problem? Please describe.

When using kgateway with Istio DestinationRules that have session affinity enabled, the sticky session functionality does not work properly. This is a limitation for users that would like to extend the use of session affinity from their Istio setup without creating additional configurations

As shown in the attached diagram, there are four scenarios:

Image

  • In-cluster calls using istio-proxy with sticky sessions: WORKS
  • External calls using Istio Ingress Gateway with sticky sessions: WORKS
  • In-cluster calls without istio-proxy and sticky sessions: DOES NOT WORK
  • External calls with kgateway and sticky sessions: DOES NOT WORK

Describe the solution you'd like

kgateway should properly implement and honor the stickiness settings defined in Istio DestinationRules, similar to how Istio's native Ingress gateway handles them. When a DestinationRule specifies loadBalancer.consistentHash settings for session affinity, 'kgateway` should respect these settings and route subsequent requests from the same client to the same backend pod.

Describe alternatives you've considered

My tests of GW API session affinity, show the following short comings:

  • i couldn't find the way for GAWAPI to work passively - it seem to require a token provided by the gatewayto be extracted and added to the subsequent client request to be sticky. that requires customers to change their client app logic. Istio implementation uses client provided header or cookie to maintain session affinity.
  • also if istio implementation already has the session affinity configured - it seems logical for kgateway to respect it without requiring user to create more configs

Additional Context

come across an issue that also affects LoadBalancing. #10461

@PetrMc PetrMc added the Type: Enhancement New feature or request label Mar 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant