728x90
개 요
Kubernetes Cluster환경에서 Ingress를 사용할 때 Multi Pod Service인 경우 Session ID가 변경된다.
Session ID가 변경되면서 로그인이 유지가 되지 않는 현상이 발생한다. 이 경우 Ingress Sticky Session을 적용하여 문제를 해결 할 수 있다.
1. 원 인
Ingress를 사용하는 경우 Round Robin 방식으로 서비스를 Routing 한다. Multi Pod인 경우 첫 번째 요청은 1번 Pod, 두 번째 요청은 2번 Pod로 넘어가게 되면서 Session Id가 바뀌는 것이다.
2. 해결 방법
Ingress에서 Sticky Session을 적용하여 Session ID를 발급한 서버에게 계속 하여 Routing을 할 수 있다.
설정 예시는 아래를 참고하자
ingress.yaml파일 부분에서 metadata.annotations에 아래 내용들을 입력해준 뒤 명령어 'kubectl apply -f ingress.yaml'로 적용할 수 있다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: 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: "JSESSIONID"
spec:
ingressClassName: nginx
tls:
- hosts:
- www.jsh.co.kr
secretName: secret-jsh
rules:
- host: www.jsh.co.kr
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: svc-room
port:
number: 7070
728x90
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Ingress 413 에러 해결 방법 (0) | 2024.10.15 |
---|---|
[Kubernetes] Image Pull Policy (0) | 2024.10.15 |
[Kubernetes]구성형 쿠버네티스 설치 Ubuntu (0) | 2024.08.14 |
[Kubernetes]에러 모음집 (0) | 2023.08.30 |
[kubernetes]Private Registy (0) | 2023.05.15 |