Folosesc HA Proxy ca controler de intrare. Este configurat cu 2 replici. Aceasta înseamnă că traficul care ajunge la serviciul Ingress Controller LB poate fi direcționat către 2 poduri.
Aplicația mea de utilizator final are 3 replici. Serviciul utilizatorului final este configurat cu sessionAffinity:ClientIP
ceea ce înseamnă că sesiunile dintre podurile de control de intrare și podurile de aplicație sunt blocate.
Acest lucru cauzează o problemă atunci când cele 2 poduri de control de intrare direcționează traficul către 2 poduri de aplicații diferite. Sesiunea utilizatorului final nu este menținută și utilizatorul este deconectat brusc.
Ceea ce ar fi ideal în acest caz ar fi
O opțiune este introducerea sessionAffinity:ClientIP
și pe Ingress Ctrl LB, dar asta ar afecta fiecare aplicație din cluster.
Cum pot să mă asigur că, pentru aplicația mea specifică, cererea atinge în mod persistent doar un singur pod Ingress Controller?
Definiție de intrare curentă
apiVersion: networking.k8s.io/v1
fel: Intrare
metadate:
adnotari:
haproxy.org/backend-config-snippet: |
dynamic-cookie-key Ingress
cookie INGRESSCOOKIE introduce indirect nocache dinamic
kubernetes.io/ingress.class: haproxy
nume: cache
spatiu de nume: cache
specificație:
reguli:
- gazdă: ac.com
http:
trasee:
- backend:
serviciu:
nume: nexus
port:
număr: 8080
cale: /
pathType: Prefix