Udostępnij za pośrednictwem


Omówienie koligacji sesji usługi Application Gateway for Containers

Koligacja sesji, znana również jako trwałość sesji lub sesje lepkie, jest techniką używaną w równoważeniu obciążenia w celu zapewnienia, że żądania klienta są zawsze wysyłane do tego samego serwera. Jest to ważne w przypadku aplikacji, które przechowują dane użytkownika w zmiennych sesji lub w lokalnej pamięci podręcznej na określonym serwerze (często określane jako aplikacja stanowa).

W przypadku koligacji sesji usługa Application Gateway dla kontenerów przedstawia plik cookie w nagłówku Set-Cookie pierwszej odpowiedzi. Jeśli klient przedstawi plik cookie w przyszłych żądaniach, usługa Application Gateway for Containers rozpoznaje plik cookie i przekazuje ruch do tego samego obiektu docelowego zaplecza. Zobacz następujący przykładowy scenariusz:

Diagram przedstawiający koligację sesji usługi Application Gateway for Containers.

Poniższe kroki przedstawiono na poprzednim diagramie:

  1. Klient inicjuje żądanie do frontonu usługi Application Gateway for Containers (Application Gateway for Containers).
  2. Usługa Application Gateway dla kontenerów wybiera jeden z wielu dostępnych zasobników do równoważenia obciążenia żądania. W tym przykładzie przyjęto założenie, że zasobnik Pod C jest zaznaczony spośród czterech dostępnych zasobników.
  3. Zasobnik C zwraca odpowiedź na usługę Application Gateway for Containers.
  4. Oprócz odpowiedzi zaplecza z zasobnika C usługa Application Gateway dla kontenerów dodaje nagłówek Set-Cookie zawierający unikatowo wygenerowany skrót używany do routingu.
  5. Klient wysyła kolejne żądanie do usługi Application Gateway for Containers wraz z plikiem cookie koligacji sesji ustawionym w poprzednim kroku.
  6. Usługa Application Gateway dla kontenerów wykrywa plik cookie i wybiera zasobnik C, aby obsłużyć żądanie.
  7. Zasobnik C odpowiada na usługę Application Gateway for Containers.
  8. Usługa Application Gateway dla kontenerów zwraca odpowiedź na klienta

Szczegóły użycia

Koligacja sesji jest definiowana przez następujące właściwości i cechy:

Nazwa/nazwisko opis
koligacjaType Prawidłowe wartości to plik cookie aplikacji lub plik cookie zarządzany.
nazwa pliku cookie Wymagane, jeśli typ koligacji to application-cookie. Jest to nazwa pliku cookie.
cookieDuration Wymagane, jeśli typ koligacji to application-cookie. Jest to czas trwania (okres istnienia) pliku cookie w sekundach.

W typie koligacji zarządzanego pliku cookie usługa Application Gateway używa wstępnie zdefiniowanych wartości, gdy plik cookie jest oferowany klientowi.

  • Nazwa pliku cookie to: AGCAffinity.
  • Czas trwania (okres istnienia) pliku cookie wynosi 86 400 sekund (jeden dzień).
  • Właściwości cookieName i cookieDuration i wartości są odrzucane.

W typie koligacji aplikacji należy jawnie zdefiniować nazwę pliku cookie i czas trwania (okres istnienia).

Jak skonfigurować koligację sesji

Koligację sesji można zdefiniować w zasobie RoutePolicy , który jest przeznaczony dla zdefiniowanej usługi HTTPRoute. Musisz określić sessionAffinity wartość z wartością affinityType application-cookie lub managed-cookie. W tym przykładzie używamy application-cookie wartości jako koligacjiType i jawnie definiujemy nazwę i okres istnienia pliku cookie.

Przykładowe polecenie umożliwiające utworzenie nowego obiektu RoutePolicy ze zdefiniowanym plikiem cookie o nomnom okresie istnienia 3600 sekund (1 godzina).

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