데이터 엔지니어 이것저것

KubernetesPodOperator 본문

오픈소스/airflow

KubernetesPodOperator

pastime 2023. 10. 15. 05:03
728x90

airflow를 사용하면서, 이때까지 celery executor를 사용하였지만 이제는 kubernetesPodOperator를 사용해야할때가 왔다.

 

주요 원인

  • 배치의 수가 늘어남
  • 특정 배치의 경우 더 많은 병렬이 필요.
    기존 10개의 Task로 처리했다면, 갑자기 20-30개 등으로 늘어나야함
    이때까지는 airflow 성능을 업그레이드 하거나 하는 등의 비효율적인 방법으로 대응
  • 특정 TASK마다 필요로 하는 lib 버전 또는 언어가 다름
    특정 TASK를 위해 lib 업그레이드를 하면 다른 TASK에서 오류 발생

간단하게 이러한 문제로 인해 넘어가기 위한 공부 진행

 

airflow version은 2.5.0

from airflow.providers.cncf.kubernetes.operators.kubernetes_pod import KubernetesPodOperator

 

KubernetesPodOperator(
    task_id='hello-task',
    image='원하는 iamge',
    arguments=["python", "run_code.py"],
    dag=dag,
    namespace='airflow',
    is_delete_operator_pod=True, # 종료시 컨테이너 삭제
    get_logs=True,  # 로그 가져오기
)

 

원하는 이미지에서 실행할때 python run_code를 실행하도록 하였다.

 

로컬에서 테스트라 로그가 안찍힌다.

추후 로컬에서도 로그 찍히도록 하는 방법 추가

 

실제 동작하는지 확인하기 위해 컨테이너 접근하여 확인하나 로그

네이버 홈에서 보이는 언론사 네임 추출

정상 동작하는걸 확인할수있다.

728x90

'오픈소스 > airflow' 카테고리의 다른 글

airflow with spark  (1) 2024.12.22
airflow parallelism  (0) 2023.10.16
DockerOperator  (0) 2023.09.19
Airflow DAG간 종속성  (0) 2022.05.15
Airflow DAG 분리하기  (0) 2022.02.05