I have a large application that uses ingress-nginx with a configuration similar to:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
nginx.ingress.kubernetes.io/ssl-redirect: SSL_REDIRECT
name: MY_INGRESS
spec:
tls:
- secretName: SSL_CERTIFICATE_NAME
rules:
- host: EXTERNAL_HOST
http:
paths:
- backend:
serviceName: service2
path: /service2
- backend:
serviceName: service3
path: /service3
- backend:
serviceName: service4
path: /service4
- backend:
serviceName: service5
path: /service5
- backend:
serviceName: service6
path: /service6
- backend:
serviceName: service7
path: /service7
- backend:
serviceName: service1
path: /
With the current configuration my cookie value is updated frequently and I am routed to different servers.
My issue is that each service is unique, each is linked to a different set of PODs and I need session affinity.
What would be the best way to accomplish this? An ingress for each backend with a different cookie name?