Dela via


Ö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:

Ett diagram som visar Sessionstillhörighet för Application Gateway för containrar.

Följande steg visas i föregående diagram:

  1. En klient initierar en begäran till en Application Gateway for Containers-klientdel (Application Gateway för containrar).
  2. 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.
  3. Pod C returnerar ett svar till Application Gateway för containrar.
  4. 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.
  5. Klienten skickar en annan begäran till Application Gateway för containrar tillsammans med sessionstillhörighetscookien som angavs i föregående steg.
  6. Application Gateway för containrar identifierar cookien och väljer Pod C för att hantera begäran.
  7. Podd C svarar på Application Gateway för containrar.
  8. 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 och cookieDuration 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