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:
Poniższe kroki przedstawiono na poprzednim diagramie:
- Klient inicjuje żądanie do frontonu usługi Application Gateway for Containers (Application Gateway for Containers).
- 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.
- Zasobnik C zwraca odpowiedź na usługę Application Gateway for Containers.
- 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.
- Klient wysyła kolejne żądanie do usługi Application Gateway for Containers wraz z plikiem cookie koligacji sesji ustawionym w poprzednim kroku.
- Usługa Application Gateway dla kontenerów wykrywa plik cookie i wybiera zasobnik C, aby obsłużyć żądanie.
- Zasobnik C odpowiada na usługę Application Gateway for Containers.
- 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
icookieDuration
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