개요:
WAS에서 로그인 로직이 존재하는 경우, Ingress에서 Multi POD를 구성하면 로그인이 끊긴다.


원인:
Ingress는 기본적으로 Round-Robin으로 사용자 접속 정보를 Routing하므로, 사용자 세션 정보가 없는 POD로도 지속적으로 사용자 Request를 보낸다.

따라서 Session 정보가 없는 POD에 의한 처리가 될 경우 세션이 끊긴다.


해결책:
두가지 방안이 있다.

  1. Redis와 같은 Session Manager를 구성하여 Session Replication 하기
  2. Ingress에서 Sticky Session을 적용해서 Ingress Routing을 고정하기.
  
여기서는 Ingress에 Sticky Session을 적용하는 법을 가이드한다.


Ingress에 ticky session 적용 절차

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    
nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
    
nginx.ingress.kubernetes.io/session-cookie-name: "route"

spec:
  rules:
  - host: test.skcc.com
    http:
      paths:
      - path: /
        backend:
          serviceName: svc-weblogic12c
          servicePort: 17001


 

 

 

'Kubernetes' 카테고리의 다른 글

Kubernetes 클러스터 구성 (1 Master + 3 Nodes)  (0) 2020.03.27

+ Recent posts