티스토리 뷰

1. Helm을 사용해 Airflow 설치하기

먼저 Helm을 사용해서 Apache Airflow를 설치해볼 거예요. 

 

다음 명령어를 입력해서 Airflow를 설치해봅시다.

helm install airflow-name apache-airflow/airflow

이 명령어를 실행하면 Airflow가 설치되기 시작해요. 설치가 완료되면 Kubernetes에서 실행 중인 여러 가지 구성 요소들을 확인할 수 있어요.

아래 명령어를 사용해 보세요.

kubectl get pods

이렇게 하면 Airflow와 관련된 다양한 부분들이 실행되고 있는지 확인할 수 있어요. 예를 들어, 웹서버나 스케줄러 같은 요소들이 보일 거예요.

 

2. Airflow 웹 UI 접근하기

이제 설치된 Airflow의 웹 인터페이스에 접근해볼까요? 웹 인터페이스는 Airflow가 어떻게 작업을 처리하고 있는지 쉽게 볼 수 있는 화면이에요. 아래 명령어를 입력하면 웹 UI를 내 컴퓨터에서 확인할 수 있어요.

kubectl port-forward svc/airflow-webserver 8080:8080

이제 인터넷 브라우저에서 http://localhost:8080으로 들어가면 Airflow의 웹 UI가 나타날 거예요. 이곳에서 DAG라는 작업 흐름을 관리할 수 있어요.

 

3. Airflow 설정 커스터마이징하기

기본 설정 파일을 확인하고 내 필요에 맞게 수정해볼까요? 먼저 Helm이 기본으로 사용하는 설정 파일을 내려받아요.

helm show values apache-airflow/airflow > values.yaml

 

이렇게 하면 values.yaml이라는 파일이 생성되고, 이 파일을 열어서 설정을 변경할 수 있어요. 예를 들어 관리자 계정을 설정하거나 DAG 파일을 저장할 위치를 지정할 수 있어요.

web: # 관리자 계정 설정
  defaultUser:
    enabled: true
    username: admin

dags: # DAG 파일 경로 설정
  persistence:
    enabled: true
    existingClaim: my-airflow-dag-pvc

 

수정이 끝났다면 Helm을 이용해 변경된 설정으로 Airflow를 다시 설치해요.

helm upgrade my-airflow apache-airflow/airflow -f values.yaml

 

4. DAG 개발 및 배포하기

 

Airflow에서 작업 흐름을 정의한 파일을 DAG이라고 불러요. 이 DAG 파일을 Airflow에 복사해서 사용할 수 있어요. DAG 파일은 Airflow 스케줄러가 있는 포드(작업을 실행하는 작은 단위)에 복사해야 해요. 

 

아래와 같이 다양한 방법으로 DAG 파일을 스케줄러 포드에 복사할 수 있어요:

kubectl cp my_dat.py <POD_NAME>:/opt/airflow/dags # <POD_NAME>은 스케줄러 이름이에요

# 특정 스케줄러 포드에 직접 복사하기
kubectl cp my_dag.py airflow-scheduler-6bbf6774-bt8w2:/opt/airflow/dags/

# 스케줄러 포드를 동적으로 가져와서 복사하기
kubectl cp my_dag.py $(kubectl get pods -l component=scheduler -o jsonpath='{.items[0].metadata.name}'):/opt/airflow/dags/

# 스케줄러 이름 확인하기
kubectl get pods -l component=scheduler

DAG 파일을 복사한 후에는 웹 UI로 가서 새로고침하면 DAG이 잘 추가되었는지 확인할 수 있어요.

 

마무리

이렇게 Helm과 Minikube를 사용해 Airflow를 설치하고 설정을 변경하며, 작업 흐름을 정의한 DAG 파일을 배포하는 방법을 알아봤어요. 모든 과정이 마치 블록을 쌓아가듯 단계를 따라가며 완성해 나가는 느낌이었죠? 어려운 부분이 있을 수도 있지만 차근차근 따라가다 보면 어렵지 않게 Airflow를 활용할 수 있을 거예요!

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함