NGINX sticky session not working with Linkerd

I installed Linkerd in a fresh GKE cluster using the following Helm Chart: “linkerd-control-plane:1.15.0”
Everything works as expected apart to “session affinity” with nginx which used to work for me before starting using Linkerd.
I want to clarify that Nginx ingress works as expected for everything else, it routes traffic as expected and is part of the mesh as expected.

I even removed the ‘ “true”’ annotation from the ingress itself since I have been told that the ingress needs to communicate with the endpoints directly for the session affinity to work.

Are there any extra special guidelines for it?

Example ingress:

kind: Ingress
  annotations: general-clusterissuer cookie persistent 20m '1800' '1800' '1800' '172800' '172800' ses_stickounet / 'false' 'true'
  namespace: exp-legacy
  ingressClassName: nginx
    - host:
          - backend:
                name: exp-server
                  number: 80
            path: /
            pathType: ImplementationSpecific
    - hosts:
      secretName: dev-exp-us

Unfortunately, this is more of a NGINX configuration question than a Linkerd one.

One thing you can do on the Linkerd side would be to look at the linkerd proxy logs to see what ip address NGINX is connecting to and verifying that NGINX is connecting to the service cluster IP instead of to an endpoint IP.

Any luck on checking that? :slightly_smiling_face:

Couldn’t find any issue with NGINX, without Linkerd everything works perfectly. Unfortunately I had to move to a k8s headless service to force direct endpoint discovery for services I want to use with session affinity and Linkerd

Can you tell me exactly how you installed NGINX?

NGINX helm chart 4.8.3 (up to date)
With the following extra values for Linkerd

            # This annotation is important as it doesn't route traffic through the proxy which enables ip preservation
   80,443 # the workaround

OK, thanks, I’ll try this in a bit…