본문 바로가기
문서 목차
ORKESTRIX설치

Airflow 워크플로 오케스트레이션

배치 스케줄링·모니터링 을 위한 Apache Airflow 워크플로 오케스트레이션을 구성합니다. Flower 웹 UI로 Celery 워커를 모니터링할 수 있습니다.

QUANTUM C&S

배치 스케줄링 · 모니터링을 위한 Apache Airflow 워크플로 오케스트레이션을 구성합니다. Flower 웹 UI로 Celery 워커를 모니터링할 수 있습니다.

DAG는 GitLab(qks_airflow_dags_repo) 저장소에서 git-sync로 자동 동기화됩니다. GitLab이 아직 구축되지 않은 환경에서도 Airflow 자체는 정상 기동하며, DAG 폴더만 비어있는 상태로 남습니다.

설정값

inventory/qks/group_vars/all/all-k8s.yaml:

qks_airflow_enabled: true
qks_airflow_version: 1.15.0
qks_airflow_app_version: 2.10.0
qks_airflow_namespace: "qks-airflow"
qks_airflow_worker_replicas: 2
qks_airflow_admin_fqdn: "airflow.{{ kube_default_domain }}"
qks_airflow_flower_fqdn: "flower.{{ kube_default_domain }}"

실행

./install.sh ubuntu plays/qks-airflow.yaml

설치 흐름

./install.sh ubuntu plays/qks-airflow.yaml
  ├─ 1. Helm 저장소 등록 ('apache-airflow')
  ├─ 2. 네임스페이스 생성
  ├─ 3. Helm으로 Airflow 배포 (webserver+scheduler+worker+triggerer+flower+postgresql+redis, Ingress 2개)
  └─ 4. 초기 Airflow Variables 등록 (컴포넌트 재기동 포함)

설치 확인

kubectl get pods -n <qks_airflow_namespace>

webserver · scheduler · worker-0 · worker-1 · triggerer-0 · flower · statsd · postgresql-0 · redis-0 파드가 모두 Running이어야 합니다.

실제 동작 확인

웹서버 접속:

curl -k -s -o /dev/null -w "%{http_code}\n" https://<qks_airflow_admin_fqdn>/

302(로그인 페이지 리다이렉트)가 나오면 정상입니다.

배치 스케줄링 실행 확인:

# 스케줄러 파드에 테스트 DAG 파일 복사
kubectl cp test_dag.py <ns>/<scheduler-pod>:/opt/airflow/dags/ -c scheduler

# DAG 인식 확인
kubectl exec -n <ns> <scheduler-pod> -c scheduler -- airflow dags list

# 트리거 후 결과 확인
kubectl exec -n <ns> <scheduler-pod> -c scheduler -- airflow dags trigger <dag_id>
kubectl exec -n <ns> <scheduler-pod> -c scheduler -- airflow dags list-runs -d <dag_id>

state: success가 나오면 정상입니다.

모니터링(Flower) 확인:

kubectl exec -n <ns> deploy/airflow-flower -- curl -s -o /dev/null -w "%{http_code}\n" http://localhost:5555/flower/

200이 나오면 정상입니다. Flower는 /flower/ URL 접두사로 동작하도록 설계되어 있어, 브라우저 접속 시에도 https://<qks_airflow_flower_fqdn>/flower/ 경로로 접속해야 합니다.

다음 단계