Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

kubernetes Airflow 구성하기2 with. docker spark image

kubernetes Airflow 구성하기2 with. docker spark image


오늘은 Airflow에 원하는 Library를 Requirement로 Image화 시켜 적용 시키는 과정을 공유드리려고 합니다. 생각보다 구성하는데 오래 걸렸습니다. ㅠㅠ ( 야근과 에러의 연속으로 인하여 )

Requirements 구성

  • Airflow Spark Library를 설치해보려고 합니다. 버전은 2.0.0
  • 아래와 같이 구성하여 줍니다.
1
2
# requirements.txt
apache-airflow-providers-apache-spark==2.0.0
Docker Image 구성

  • Docker Image file을 가지고 위 파일과 같은 경로에 생성하여 줍니다.
  • 아래와 같이 이름과 Tag 작업을 잘 빌드되면 됩니다.
1
2
3
4
# Dockerfile
FROM apache/airflow:2.6.2
COPY requirements.txt .
RUN pip install -r requirements.txt
1
2
3
# build image
$ docker build -t airflow-custom:1.0.0 .
$ docker images

Clustesr에 Image 반영하기

  • 반영한 Docker Image 파일을 각 Cluster에 적용시켜주어야 합니다.
  • 그러기 위해서는 values.yaml 파일을 변경해주어야 합니다.
  • Docker Image로 만든 이름과 TAG는 기억해두어야 합니다.
  • defaultAirflowRepository에는 Name을 / defaultAirflowTag에는 Tag 명을 넣어줍니다.
1
2
3
4
5
# Default airflow repository -- overridden by all the specific images below
defaultAirflowRepository: airflow-custom

# Default airflow tag to deploy
defaultAirflowTag: "1.0.0"
1
2
3
4
$ helm upgrade --install airflow apache-airflow/airflow -n airflow -f values.yaml --debug
$ kubectl get pod -n airflow

$ kubectl exec airflow-webserver-pod -n airflow -- airflow providers list
  • 아래 결과와 같이 spark version이 이상 없이 깔린 것을 볼 수 있습니다.
  • 추가적으로 필요한 라이브러리가 있다면 Image를 만들어 반영하면 됩니다.