k8s Airflow HA 部署指南
本專案提供了一套基礎的高可用 (HA) Apache Airflow on k8s 部署方案。以下文件按建議閱讀與建置順序排列,請依序參考執行。
1. 架構與概念 (Architecture & Concepts)
建立對整體架構的認識:
- Airflow 功能介紹
- 了解 Airflow 的核心功能、元件 (DAG, Operator, Task) 與應用場景。
- K8s Airflow HA 基礎架構說明
- 詳述本專案採用的多層級 HA 架構 (Ingress, K8s Control Plane, Airflow Components, Database)。
- Airflow on K8s 部署評估
- 探討不同的部署策略,以及為何選擇將 Metadata DB 部署於 Bare Metal 而非 K8s 內部的考量。
2. 基礎設施建置 (Infrastructure Setup)
在部署 Airflow 之前,必須先準備好底層的運算與儲存資源:
-
高可用負載平衡 (Load Balancer)
-
Kubernetes 叢集建置
-
儲存系統 (Storage)
- NFS 安裝指南: 建立 NFS Server 並配置 K8s NFS CSI Driver,供 Airflow DAGs/Logs 與 RabbitMQ 使用。
3. 外部服務建置 (External Services)
Airflow 的核心元件依賴於外部資料庫與訊息佇列:
-
Metadata Database
-
Message Broker
- RabbitMQ 安裝指南: 在 K8s 上部署 RabbitMQ Cluster,作為 CeleryExecutor 的訊息中間件。
-
Container Registry
4. Airflow 部署 (Airflow Deployment)
當上述依賴服務皆準備就緒後,即可進行 Airflow 的安裝:
- Airflow on K8s HA 安裝指南
- 核心文件。整合了上述所有資源,說明如何:
- 建立 Airflow 專用的 Namespace 與 Secrets。
- 建立並綁定固定的 PV/PVC (DAGs/Logs)。
- 使用 Helm Chart (配置 CeleryExecutor) 部署 Airflow。
- 驗證服務運作與 Web UI 存取。