Skip to content

Session Affinity

Session Affinity(または Sticky Session)は、同じユーザーからのリクエストを同じ Pod にルーティングする手法です。

目次

  1. Session Affinity の概要
  2. Consistent Hash ベース
  3. Cookie ベース
  4. Header ベース
  5. 実践例

Session Affinity の概要

Consistent Hash ベース

HTTP Header ベース

yaml
apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: reviews-session-affinity
spec:
  host: reviews
  trafficPolicy:
    loadBalancer:
      consistentHash:
        httpHeaderName: "x-user-id"
yaml
apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: reviews-cookie-affinity
spec:
  host: reviews
  trafficPolicy:
    loadBalancer:
      consistentHash:
        httpCookie:
          name: "session-id"
          ttl: 0s  # Cookie expiration time (0s = session cookie)

Source IP ベース

yaml
apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: reviews-ip-affinity
spec:
  host: reviews
  trafficPolicy:
    loadBalancer:
      consistentHash:
        useSourceIp: true

参考資料