Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Afinitet sesji, zwany także trwałością sesji lub sesjami przypisanymi, 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 przesyła plik cookie w przyszłych żądaniach, usługa Application Gateway for Containers rozpoznaje plik cookie i przekazuje ruch do tego samego serwera w backendzie. 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 for Containers wybiera jeden z wielu dostępnych podów do zrównoważenia obciążenia względem żądania. W tym przykładzie zakładamy, że zasobnik Pod C jest wybrany spośród czterech dostępnych zasobników.
- Pod C zwraca odpowiedź do Application Gateway for Containers.
- Oprócz odpowiedzi backendu z Pod C, Application Gateway dla kontenerów dodaje nagłówek Set-Cookie, który zawiera 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.
- Moduł C odpowiada na bramę aplikacyjną dla kontenerów.
- Usługa Application Gateway dla kontenerów zwraca odpowiedź do klienta.
Szczegóły użycia
Trwałość sesji jest definiowana przez następujące właściwości i cechy:
| Nazwa/nazwisko | opis |
|---|---|
| typ powinowactwa | 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. |
| czas trwania ciasteczka | Wymagane, jeśli typ koligacji to application-cookie. Jest to czas trwania (okres istnienia) pliku cookie w sekundach. |
W przypadku zarządzanego typu koligacji plików 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
cookieNameicookieDurationoraz wartości są odrzucane.
W typie koligacji aplikacji należy jawnie zdefiniować nazwę pliku cookie i czas trwania (okres istnienia).
Jak skonfigurować przyleganie sesji
Koligację sesji można zdefiniować w zasobie RoutePolicy , który jest przeznaczony dla zdefiniowanej usługi HTTPRoute. Musisz określić sessionAffinity za pomocą affinityType, wybierając pomiędzy application-cookie a managed-cookie. W tym przykładzie używamy application-cookie jako affinityType oraz jawnie definiujemy nazwę i czas 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: 3600s
EOF