문서 목차
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/ 경로로 접속해야 합니다.