쿠버네티스 환경에서의 다운타임 없는 데이터베이스 마이그레이션: 배포의 날을 두려워하게 만든 방법
(dev.to)
쿠버네티스 롤링 업데이트 시 발생하는 데이터베이스 마이그레이션의 다운타임 문제를 해결하고자 Kubernetes Job과 'Expand/Contract' 패턴을 활용해 서비스 중단 없이 안전하게 스키마를 변경하고 데이터 무결성을 유지하는 전략을 제시합니다.
이 글의 핵심 포인트
- 1쿠버네티스 롤링 업데이트 중 구버전과 신버전 Pod이 공존할 때 스키마 불일치로 인한 500 에러 및 데이터 오염 발생 위험
- 2Init Container 방식은 여러 레플리카가 동시에 마이그레이션을 실행하여 DB에 경합(Race Condition)을 일으킬 수 있음
- 3