I understand that for consistent hash based load balancing to a service we can configured using an HTTP cookie which can generated by configuring it in the DestinationRule (Istio / Destination Rule).
apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: sticky-rule namespace: my-ns spec: host: app-svc.my-ns.svc.cluster.local trafficPolicy: loadBalancer: consistentHash: httpCookie: name: STICKY-SESSION-COOKIE path: / ttl: 0s
I would like to clarify what happens if the cookie name provided in the DestinationRule already exists:
- If the cookie (STICKY-SESSION-COOKIE) is set by the application (behind the service), I see that the cookie is not overwritten/generated by istio. Does the sticky routing also work with own (application) cookie
- In this case, where is the mapping to the cookie value and the backend hosts maintained? If it is within envoy (istio-proxy) of individual pods, are there redirects between the pods (istio-proxy) of backend service to reach the right pod (host)?
Please help me understand whether it is possible to use an own application cookie for achieving stickiness via, DestinationRule?