2016-12-08 9 views
0

프로덕션 환경에서 실행중인 웹 응용 프로그램의 버전 1.0이 있다고 가정합니다. 프로덕션 버전 1.0의 새 버전 2.0을 함께 배포하려고합니다. 사용자/고객의 하위 집합에서 새 버전으로 트래픽을 라우팅하려고합니다. 즉, Kubernetes의 웹 기반 응용 프로그램에 대한 실제 카나리아 릴리스 (this 문서에 정의 된대로)를 얻는 방법입니다.Kubenetes - 웹 기반 응용 프로그램의 경우 고객의 하위 집합을 새 버전의 응용 프로그램으로 라우팅하기 위해 쿠키 기반 라우팅을 지원합니까?

카나리아 배치에 대해 이야기하지만 사용자 기반 라우팅을 달성하는 방법에 대한 언급이 없습니다. Kubernetes에서 제공하는 기존로드 균형 조정 지원을 사용하여 쿠키를 기반으로 끈적한로드 균형 조정을 구현할 수 있습니까?

답변

0

Kubernetes의 Canary 배포에는 같은 앱이지만 다른 버전의 포드를 배포하는 작업이 포함됩니다. 예를 들어 앱에 5 개의 포드가있는 경우 그 중 하나는 새 버전이고 트래픽의 1/5은 감독됩니다 이 새로운 버전.

당신은 클라이언트가 연결되어있을 때, 항상 (있는 경우 같은 포드에 끝날 것이라는 점을 보장 할 것이다 그

sessionAffinity: ClientIP

와 함께, 귀하의 서비스에 끈적 끈적한 세션을 사용할 수, 사용자 기반의 카나리아 배포를 달성하기 위해 IP는 동일하게 유지됨)

나는 트래픽을 할당하는 '쿠키'기반 방법이 없다고 생각합니다.

+0

예,하지만 라우팅 논리를 제어 할 수 없습니다. 사용자의 특정 하위 집합 만 새로운 Pod로 라우팅하려는 경우 불가능합니다. 나는 사용자 로그인에 카나리아 쿠키를 설정 한 다음 그 쿠키를 사용하여 사용자를 카나리아 포드로 라우팅하려고 생각했습니다. Kubernetes가로드 밸런싱을 제공했다면 가능하지 않다고 생각합니다. –

+0

나는 그것이 있다고 생각하지 않는다. 쿠키는 원하는 위치에서 트래픽을 프록시 할 수있는 어딘가에서 파싱되어야합니다. 매우 맞춤형 솔루션 인 것처럼 보입니다. – MrE