Översikt över sessionstillhörighet för Application Gateway för containrar
Sessionstillhörighet, även kallat sessionspersistens eller klibbiga sessioner, är en teknik som används för belastningsutjämning för att säkerställa att en klients begäranden alltid skickas till samma server. Detta är viktigt för program som lagrar användardata i sessionsvariabler eller i en lokal cache på en viss server (kallas ofta för ett tillståndskänsligt program).
Med sessionstillhörighet presenterar Application Gateway for Containers en cookie i set-cookie-rubriken för det första svaret. Om klienten presenterar cookien i framtida begäranden identifierar Application Gateway for Containers cookien och vidarebefordrar trafik till samma serverdelsmål. Se följande exempelscenario:
Följande steg visas i föregående diagram:
- En klient initierar en begäran till en Application Gateway for Containers-klientdel (Application Gateway för containrar).
- Application Gateway för containrar väljer en av de många tillgängliga poddar som begäran ska lastbalanseras till. I det här exemplet antar vi att Pod C är valt av de fyra tillgängliga poddarna.
- Pod C returnerar ett svar till Application Gateway för containrar.
- Förutom serverdelssvaret från Pod C lägger Application Gateway for Containers till en Set-Cookie-rubrik som innehåller en unikt genererad hash som används för routning.
- Klienten skickar en annan begäran till Application Gateway för containrar tillsammans med sessionstillhörighetscookien som angavs i föregående steg.
- Application Gateway för containrar identifierar cookien och väljer Pod C för att hantera begäran.
- Podd C svarar på Application Gateway för containrar.
- Application Gateway for Containers returnerar svaret till klienten
Användningsinformation
Sessionstillhörighet definieras av följande egenskaper och egenskaper:
Name | beskrivning |
---|---|
affinityType | Giltiga värden är application-cookie eller managed-cookie. |
cookieName | Krävs om affinityType är application-cookie. Det här är namnet på cookien. |
cookieDuration | Krävs om affinityType är application-cookie. Det här är varaktigheten (livslängden) för cookien i sekunder. |
I typ av hanterad cookietillhörighet använder Application Gateway fördefinierade värden när cookien erbjuds till klienten.
- Namnet på cookien är:
AGCAffinity
. - Varaktigheten (livslängden) för cookien är 86 400 sekunder (en dag).
- Egenskaperna
cookieName
ochcookieDuration
värdena ignoreras.
I typ av programtillhörighet måste cookienamnet och varaktigheten (livslängd) uttryckligen definieras.
Så här konfigurerar du sessionstillhörighet
Sessionstillhörighet kan definieras i en RoutePolicy-resurs som är inriktad på en definierad HTTPRoute. Du måste ange sessionAffinity
med antingen affinityType
application-cookie
eller managed-cookie
. I det här exemplet använder application-cookie
vi som affinityType och definierar uttryckligen ett cookienamn och en livslängd.
Exempelkommando för att skapa en ny RoutePolicy med en definierad cookie med nomnom
namnet med en livslängd på 3 600 sekunder (1 timme).
kubectl apply -f - <<EOF
apiVersion: alb.networking.azure.io/v1
kind: RoutePolicy
metadata:
name: session-affinity-route-policy
spec:
targetRef:
kind: HTTPRoute
name: http-route
namespace: test-infra
group: ""
default:
sessionAffinity:
affinityType: "application-cookie"
cookieName: "nomnom"
cookieDuration: 3600
EOF