데이터 공부/Apache Airflow

Airflow Helm 배포 - 설치하기

한소희DE 2022. 10. 22. 17:46

공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다.

 

 

이전 포스팅을 통해 Helm 에 대해서 알아보았다면, 이제 직접 실습을 해 보겠다.

(이전 포스팅 링크: https://eng-sohee.tistory.com/161)

 

Airflow Helm 배포 - Helm 과 Chart 를 알아보기

Kubernetes 환경에서 Airflow를 운영할 때, 일반적으로 Helm 차트를 이용하여 배포 및 운영을 한다. 이유는, Airflow 에서 제공하는 공식 Helm 차트를 제공하기 때문이며, 이를 통해 특정 클라우드 제공 업

eng-sohee.tistory.com

 

 

 

목차

 

1. Helm 설치

2. Helm 레포지토리 추가

3. values가 정의된 yaml 작성

4. Airflow Helm Chart 설치

 

 

 


 

 

 

 

나는 해당 레포지토리를 참고하여 helm chart를 빌드해보겠다.

 

GitHub - airflow-helm/charts: The User-Community Airflow Helm Chart is the standard way to deploy Apache Airflow on Kubernetes w

The User-Community Airflow Helm Chart is the standard way to deploy Apache Airflow on Kubernetes with Helm. Originally created in 2018, it has since helped thousands of companies create production-...

github.com

 

위 링크에서 언급된 User-Community Airflow Helm Chart 는 airflow 를 배포하는 표준 방법이라고 한다.

 

우선 레포 내 명시된 스타트 가이드를 참고하여, 빌드를 해보겠다.

 

 

 

 

1. Helm 설치

 

Helm 을 각자의 환경에 설치한다.

가이드는 해당 링크와 같다.

https://helm.sh/ko/docs/intro/install/

 

헬름 설치하기

헬름 설치하고 작동하는 방법 배우기.

helm.sh

(나는 기존에 설치를 했으므로 이 부분은 패스 하겠다.)

 

 

 

 

2. Helm 레포지토리 추가

나의 helm 레포지토리에 airflow chart를 추가한다.

helm repo add airflow-stable https://airflow-helm.github.io/charts
helm repo update

 

그리고 잘 repo에 저장이 되었다면, 아래와 같이 확인할 수 있다.

 

helm repo list


# output
NAME          URL                                       
apache-airflow https://airflow.apache.org

       

 

 

 

 

3. values가 정의된 yaml 작성

 

이제, 이 chart 에 부여할 values 를 custom-values.yaml(이름은 'values.yaml' 등으로 다르게 해도 무관)이라는 파일명에 정의한다.

여기서 정의할 수 있는 value는 1000개 이상으로 매우 많다. 매우 복잡하다. 따라서, 아래 세 개 중 하나의 샘플 Executer Value.yaml 을 참고하여 하나씩 채우는 것이 좋다고 안내되고 있다.

(다음 포스팅에서, 내가 value.yaml 를 어떻게 정의했는지에 대해서 포스팅하겠다.)

 

 

 

 

4. Airflow Helm Chart 설치

 

install 에 필요한 환경변수를 아래와 같이 export 하고, install 한다.

export AIRFLOW_NAME="airflow-cluster"
export AIRFLOW_NAMESPACE="airflow-cluster"

## create the namespace
kubectl create ns "$AIRFLOW_NAMESPACE"

## install
helm install \
  "$AIRFLOW_NAME" \
  airflow-stable/airflow \
  --namespace "$AIRFLOW_NAMESPACE" \
  --version "8.X.X" \
  --values ./custom-values.yaml

helm install 부분을 살펴보자.

 

  • helm install  "$AIRFLOW_NAME" : 우리가 지정한 대상 이름(위에서 환경변수로 airflow-cluster 라고 설정했으므로 airflow-cluster 를 설치한다는 의미)으로 helm 을 설치한다는 의미다.
  • airflow-stable/airflow : 설치할 helm chart는, 이전에 레포지토리에 저장한 airflow-stable/airflow 차트를 쓴다는 의미다.
  •   --namespace "$AIRFLOW_NAMESPACE" : 우리가 지정한 네임스페이스(위에서 환경변수로 airflow-cluster 라고 설정했으므로 airflow-cluster 라는 네임스페이스를 의미)에 해당 helm 을 설치한다는 의미다.
  • --version "8.X.X" : version 의 경우, chart 가 추후 예기치 않게 업데이트될 수 있음을 방지하고자, 8대 버전의 chart를 고정적으로 명시한다.
  • --values ./custom-values.yaml : 이 helm 에 정의할 values 의 경우 해당 경로에 있는 custom-values.yaml 파일을 사용한다는 의미다. 이렇게 명령을 할 경우에는, 3. values가 정의된 yaml 작성에서 작성한 파일의 이름이 custom-values.yaml 여야 한다. 만약 파일 이름이 다른 거라면, 다르게 커스텀해서 명령을 주면 된다.

 

 

이렇게 하면 설치가 끝이 난다! 짝짝.

 

실제로 스터디를 했을 때, 내가 정의한 values.yaml 파일에 대해서, 다음 포스팅에서 작성해보도록 하겠다.