Kim Jinung

3. Airflow on Kubernetes - Kubernetes executor 본문

Data Engineering/Workflow

3. Airflow on Kubernetes - Kubernetes executor

Kim Jinung 2022. 11. 22. 17:48

Prerequisite

Kubernetes executor에 대한 설명은 제일 첫 번째 글에서 다루어서 생략한다.


Goal

- Airflow Kubernetes exeucotr 설정


1. Kubernetes excutor 

(1) Kubernetes executor 설정

두 번째 포스팅에서 만들었던 Airflow helm value.yaml 파일에 Airflow executor 항목이 있다. 기본 옵션은 "CeleryExecutor" 인데, 이를 "KubernetesExecutor" 로 변경 한다.

 

(2) Airflow upgrade

변경한 yaml 파일로 airflow 업그레이드를 진행한다. 

helm upgrade --install airflow apache-airflow/airflow -n airflow -f values.yaml

 

 

namespace가 airflow인 pod 목록을 확인 해보면 worker pod가 사라진 것을 확인할 수 있다.

kubetl get pod -n airflow

 

 

(3) Test - Kubernetes executor

이전 글에서 생성해둔 tutorial DAG를 실행한다.(Trigger DAG)

 

DAG 실행 중에는 worker pod가 생성되고 해당 pod에 task가 할당 된다. 

 

작업이 완료된 후에는 worker pod가 리소스를 반납하고 사라진다.


마치며

지금까지 Airflow를 K8s 환경에 띄우고, git sync로 remote dag directory를 생성하고, k8s executor를 설정했다. 다음으로 인증에 대한 학습이 더 필요하다. 컨테이너 환경에서 airflow가 동작하므로 aws, gcp 등의 클라우드 리소스에 접근하기 위해서는 arn, access key에 대한 설정이 필요하다.

 

---

기본 로그가 false인데, true 바꿔줘야 Persistence volume에 Pod log를 남긴다.

 

앞으로 공부할 것

- auth

- remote logging

- resorce control

 

'Data Engineering > Workflow' 카테고리의 다른 글

2. Airflow on Kubernetes - git sync  (0) 2022.11.22
1. Airflow on Kubernetes  (0) 2022.11.22