
데브옵스
서버리스에서 쿠버네티스로 - Airflow 운영 경험기
두줄요약
관리형 서비스의 Airflow를 Kubernetes로 전환하며 스케줄러 CPU 과부하, 워커 OOM, 로그 누락 문제를 해결한 운영 경험을 공유했습니다. 자원 제한과 노드 분리를 통해 안정성을 높이고 비용도 줄인 사례입니다.
문제 상황
- 관리형 서비스에서 운영하던 Airflow를 Kubernetes 환경으로 이관하며 스케줄러 CPU 과부하, 워커 OOM, 실행 로그 누락 같은 운영 이슈가 발생
- DAG 증가와 작업 지연, 자원 경합으로 인해 성능 저하와 장애 가능성이 드러난 상황
원인 분석
- GitSync로 DAG 변경이 늘면서 스케줄러가 파일을 자주 구문분석하고 메타데이터 DB 직렬화까지 수행해 CPU 사용량이 급증
- 워커는 메모리 자원 경합과 오버커밋 환경에서 OOM에 취약했고, 태스크 대기 지연은 상위 작업 지연과 외부 시스템 지연이 겹친 영향
해결 방법
min_file_process_interval조정으로 스케줄러의 파일 I/O 빈도를 낮춰 CPU 사용량 감소- request/limit, LimitRange/ResourceQuota 검토 후 Taint와 Tolerations로 자원 격리
- 워커 수를 늘리는 스케일 아웃으로 동시에 처리 가능한 태스크 수 확대
