Switching off sticky sessions in Openshift routes

Switching off sticky sessions in Openshift routes

I had some trouble a while ago implementing a canary deployment using internal scaling.

When I started calling the route, I noticed that all requests were being served from the same pod.

Obviously this was caused by sticky sessions.

How do you switch them off ?

It's quite simple in Openshift Routes using annotations.

The annotations in question are

haproxy.router.openshift.io/balance
haproxy.router.openshift.io/disable_cookies

What these do are change the balancing strategy for the openshift route to roundrobin, which will randomise the pod that receives your request, and disable cookies from the router, so they cannot set a cookie which dictates which pod should receive your request.

You can switch off the sticky sessions by running

oc annotate routes myroute haproxy.router.openshift.io/disable_cookies='true'
oc annotate routes myroute haproxy.router.openshift.io/balance='roundrobin'

May your requests be ever spread [...]

Cheers