Helm 배포와 Executor 선택 퀴즈
Chart 1.22.0 / Airflow 3.3.1 / KEDA 2.20.
1. 이 문서의 공식 chart 이름과 repository alias는?
정답 보기
Apache Airflow 프로젝트의 chart를 사용하며 저장소를 apache-airflow로 등록했으므로 명령에서는 apache-airflow/airflow를 지정합니다. 별도 커뮤니티 chart의 values 스키마와 혼용하지 않습니다.
2. Chart 1.22.0의 실제 기본 Airflow/executor는?
정답 보기
Airflow 3.2.2와 CeleryExecutor입니다. 본문의 3.3.1/KubernetesExecutor는 명시적으로 override한 profile이며 기본 설치 동작과 구분합니다.
3. 최소 버전이 모두 Chart.yaml에서 강제되나요?
정답 보기
그렇게 가정하면 안 됩니다. 현재는 Helm 3.19.0+를 사용하고 호환 Kubernetes/Airflow를 확인합니다. Chart 1.16 README는 Kubernetes 1.29+였으며, 검토한 1.22 템플릿도 1.29 대상으로 렌더링됐지만 지원 증명은 아닙니다.
4. Celery worker·Redis·리소스 종류를 executor 하나만으로 결정하나요?
정답 보기
Executor가 영향을 주지만 Redis 활성화/외부 broker, worker persistence 등의 값도 중요합니다. Worker는 Deployment 또는 StatefulSet일 수 있고 Celery에도 외부 broker를 사용할 수 있습니다.
5. PostgreSQL을 끄기만 하면 외부 DB가 연결되나요?
정답 보기
아닙니다. 준비된 DB·migration 권한·URI·TLS와 metadataSecretName 등의 연결 설정이 필요합니다. Secret 이름이 설정되면 metadataConnection은 우선 연결 출처가 아닙니다.
6. Fernet/API/JWT key를 upgrade 때 새로 만들어도 되나요?
정답 보기
일반 upgrade에서는 기존 키를 보존합니다. Fernet key 손실은 암호화된 데이터 접근에, JWT key 변경은 진행 중 task 인증에 영향을 줄 수 있습니다. 백업·회전은 별도 절차로 진행합니다.
7. 기본 admin/admin을 피하는 예제 방식은?
정답 보기
createUserJob.enabled=false로 기본 생성 Job을 끄고, 선택한 FAB auth manager의 airflow users create를 대화형으로 실행해 비밀번호를 두 번 입력합니다. 다른 auth manager/SSO에는 해당 절차를 사용합니다.
8. KubernetesExecutor 시작 지연은 항상 1–2분인가요?
정답 보기
아닙니다. Image cache/pull, Kubernetes API·scheduler, node 여유·증설, quota와 task runtime 초기화 등을 실제로 측정합니다. Celery도 scale-to-zero 뒤에는 cold start가 있습니다.
9. KubernetesExecutor worker에 임의 GPU/CLI image를 넣으면 되나요?
정답 보기
호환 Airflow task runtime과 DAG/provider 의존성이 있어야 합니다. KubernetesPodOperator가 별도 child Pod에 임의 작업 image를 실행하는 경로와 구분합니다.
10. Worker Pod가 없으면 Airflow 유휴 비용도 0인가요?
정답 보기
Control plane·DB·broker·노드·스토리지·로그 비용이 남을 수 있습니다. Pod별 실행이나 scale-to-zero만으로 모든 비용 또는 보안 격리가 보장되지 않습니다.
11. Chart 기본 KEDA 시간과 본문 예제의 시간은?
정답 보기
Chart 기본은 pollingInterval=5s, cooldownPeriod=30s입니다. 본문은 10s/300s를 명시적으로 선택했습니다. 0으로 줄이는 cooldown과 1개 이상 HPA 조정·stabilization은 구분합니다.
12. SQL의 worker_concurrency는 어떤 값이어야 하나요?
정답 보기
Chart가 넣은 숫자입니다. 예제에서는 4이며 DB column 이름 worker_concurrency가 아닙니다. running/queued task를 해당 queue/executor 범위로 세어 나눈 뒤 올림합니다.
13. 혼합 executor에서 k8s alias가 문제가 될 수 있는 이유는?
정답 보기
TaskInstance는 task.executor 값을 저장합니다. Chart 기본 필터가 KubernetesExecutor 문자열만 제외하면 k8s로 저장한 task는 Celery 집계에 포함될 수 있습니다. 실제 저장 값에 맞는 명시적 필터를 사용합니다.
14. 쿼리가 25를 반환하고 maxReplicaCount=20이면?
정답 보기
Worker는 설정한 최대값의 제약을 받으므로 모든 수요가 즉시 충족되지는 않습니다. Backlog·task concurrency·worker 자원·DB/broker·node 용량을 함께 확인합니다.
15. KEDA가 DB에 연결하려면 Airflow Pod의 TLS 설정만 있으면 되나요?
정답 보기
KEDA도 별도 DB client이므로 DNS·네트워크·권한·호환 URI·CA가 필요합니다. URI의 sslrootcert 경로는 scaler 프로세스에서도 읽혀야 하며 chart가 자동 복사하지 않습니다.
16. KEDA는 Deployment에만 사용할 수 있나요?
정답 보기
아닙니다. 이 chart의 Celery ScaledObject는 persistence에 따라 Deployment 또는 StatefulSet을 대상으로 합니다. KubernetesExecutor task Pod는 같은 방식의 고정 replica pool이 아니지만 다른 KEDA 사용까지 금지되는 것은 아닙니다.
17. Helm --wait 성공이면 설치 검증이 끝났나요?
정답 보기
Migration Job 성공, 장기 컴포넌트 Ready, DAG 전달·worker 실행·Execution API·결과·로그를 확인해야 합니다. KEDA profile은 실제 task 투입과 idle 복귀·오류 복구도 시험합니다.
18. Helm uninstall이 PostgreSQL 데이터를 즉시 전부 삭제하나요?
정답 보기
Pod 삭제와 PVC/PV 데이터 수명주기는 다릅니다. PVC retention, StorageClass reclaim policy, 외부 DB 삭제·백업 정책을 각각 확인하고 공유 namespace·Secret·DB를 일괄 삭제하지 않습니다.