helm
docker 로 치면, docker-compose.yaml 전체를 배포하는 개념
호스트 경로에 docker-compose.yaml 파일을 두는 것이 아니라, docker-compose.yaml 은 기동할때마다 repo 에서 끌고오고, 그 안의 values 만 채워서 사용환경에 맞춰서 기동함
values 는 일종의 환경변수에 대응
helm 제공자는 기본값을 제공하며, values 를 통해 해당 값들을 오버라이드 할 수 있음
이 오버라이드를 통해 각자의 환경에 커스텀해서 사용
배포하는 것을 그대로 사용한다는 것은 도커의 이미지와 동일한 셈이지만, 도커의 이미지는 보통 개별 앱단위인 반면, helm 은 해당 앱을 둘러싼 배포환경 (생태계) 를 한번에 끌어다쓴다는 점에서 좀 더 광범위하고 유연한 활용이 가능함
# helm 작성
helm repo add apache-airflow https://airflow.apache.org
helm repo update
# helm repo list
helm search repo apache-airflow/airflow
helm search repo apache-airflow/airflow --versions
# helm show values apache-airflow/airflow
# helm show values apache-airflow/airflow > default-values.yaml
# helm show readme apache-airflow/airflow
# 검토
helm template airflow apache-airflow/airflow -n airflow -f values.yaml
# 구동
helm upgrade --install airflow apache-airflow/airflow \
-n airflow \
--create-namespace \
-f values.yaml
# helm 관점에서 확인
helm list -n airflow
helm status airflow -n airflow
helm get values airflow -n airflow
helm get values airflow -n airflow --all
helm get manifest airflow -n airflow
# k8s 관점에서 확인
kubectl get pods -n airflow
kubectl get all -n airflow
kubectl get jobs -n airflow
airflow db migrate
kubectl get pods -n airflow -w
kubectl describe pod <pod-name> -n airflow
kubectl logs <pod-name> -n airflow# values.yaml
executor: LocalExecutor
images:
airflow:
repository: apache/airflow
tag: "3.3.1"