Kubernetes

  • Sticky Session을 제거하며 MCP 재연결 상태를 Redis로 옮긴 방법

    롤링 배포 중 MCP 서버 Pod 하나를 종료했을 때, 클라이언트의 재연결은 정상적으로 다른 Pod에 도착했습니다. 문제는 그다음이었습니다. 새 Pod는 이전 연결에서 어디까지 응답을 보냈는지, 실행 중이던 도구 요청이 취소됐는지 알지 못했습니다. 연결에는 성공했지만 대화를 이어갈 수는 없었습니다. 처음에는 같은 클라이언트의 요청을 계속 같은 Pod로 보내는 Sticky…

    읽기 →

  • Kubernetes의 Startup·Readiness·Liveness Probe를 구분해야 하는 이유

    처음에는 Startup과 Readiness, Liveness Probe가 같은 health endpoint를 호출해도 충분하다고 생각했습니다. 하지만 초기화가 오래 걸리는 정상 Pod와 외부 DB 연결이 끊긴 Pod가 같은 실패로 처리됐습니다. 그 결과 정상 프로세스가 반복해서 재시작되거나 아직 준비되지 않은 Pod로 요청이 전달됐습니다. 세 Probe가 묻는 질문과 실패 효과를 분리해야 했습니다. 하나의…

    읽기 →