Kubernetes로 프로모션 배치 이관 성공!

by DD
1년 전
조회수 12

물리 서버 기반의 프로모션 배치를 Kubernetes 환경으로 이관

Quartz 스케줄러를 활용하여 Spring Batch 기반 배치 작업 수행

Kubernetes 환경에서 배치 작업 안정성 확보를 위한 운영 노하우 공유

Quartz 클러스터링과 Kubernetes 환경

Quartz는 DB 기반 클러스터링을 통해 여러 Pod에서 Job 중복 실행을 방지한다. 구체적으로 분산 락을 활용하여 DB 락을 선점한 Pod만 Job을 실행하도록 한다. 따라서 Kubernetes 스케일링 환경에서도 Job의 일관성을 유지하며, Pod 장애 시 다른 Pod가 Job을 이어받아 고가용성을 확보한다.

Spring Batch Job 이관 및 최적화

Spring Batch Job 이관 시 Tasklet 방식Chunk 방식을 적절히 활용하여 리소스 효율성을 높였다. Chunk 방식은 대량 데이터 처리 시 메모리 사용량을 줄여 OOM을 방지한다. 반면, Tasklet 방식은 간단한 Job에 적합하며, 빠른 실행 속도를 제공한다. 따라서 Job 특성에 맞는 방식을 선택하는 것이 중요하다.

Kubernetes 환경에서의 배치 운영 노하우

Kubernetes 환경에서 Pod 수명주기리소스 사용량을 고려해야 한다. terminationGracePeriodSeconds 설정을 통해 Pod 종료 시 대기 시간을 부여하고, Spring 생명주기를 활용하여 배치 작업 완료 시간을 확보한다. 결과적으로 OOM 발생을 방지하고, 배치 작업의 안정성을 향상시킬 수 있다.

프로모션 배치 k8s 이관기