프로그래밍/airflow

[airflow] KubernetesExecutor 환경 구축하기 Local_mount.ver

장경훈 2023. 11. 22. 17:00

 

1. Helm repo 등록

helm repo add apache-airflow https://airflow.apache.org

 

 

2. Kubernetes PV, PVC .yaml파일 만들기

# pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: airflow-local-dags-folder
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/Users/jang-gyeonghun/project_shop/dags" <- 자신의 dags 폴더 절대경로 입력
#pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: airflow-local-dags-folder
  namespace: airflow
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

 

3. 네임스페이스 생성  및 PV, PVC 적용

kubectl create namespace airflow\ #네임스페이스 airflow 만들기 
kubectl apply -f pv.yaml\ #pv 등록
kubectl apply -f pvc.yaml -n airflow #pvc 등록 pv와 다르게 네임스페이스를 적용시켜줘야함

 

4. ariflow Helm chart 실행및 values.yaml 불러오기

#helm chart 실행
helm upgrade --install airflow apache-airflow/airflow --namespace airflow

#values.yaml 파일 불러오기
helm get values airflow > values.yaml

 

5. values.yaml 수정 및 적용 

#이 부분들 찾아서 수정
executor: "KubernetesExecutor"

dags:
  persistence:
    enabled: true
    storageClassName: local-storage
    # access mode of the persistent volume
    accessMode: ReadWriteOnce
    ## the name of an existing PVC to use
    existingClaim: airflow-local-dags-folder
#변경사항 적용
helm upgrade -f values.yaml airflow apache-airflow/airflow -n airflow

 

6. 결과 확인 

#localhost:8080에 연결
kubectl port-forward svc/airflow-webserver 8080:8080 -n airflow

정상적으로 마운트된 모습 확인가능