Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
本頁面說明 Cloud Composer 環境的架構。
環境架構設定
Cloud Composer 1 環境可採用下列架構設定:
客戶和租戶專案
當您建立環境時,Cloud Composer 會將環境的資源分配至用戶群和客戶專案:
客戶專案是您建立環境的 Google Cloud 專案。您可以在單一客戶專案中建立多個環境。
租戶專案是 Google 管理的租戶專案,且屬於 Google.com 機構。租戶專案提供統一的存取控制機制,並為環境多添一層資料安全防護。每個 Cloud Composer 環境都有自己的租戶專案。
環境元件
Cloud Composer 環境是由環境元件組成。
環境元件是代管 Airflow 基礎架構的元素,會做為環境的一部分在 Google Cloud上執行。環境元件會在環境的租戶或客戶專案中執行。
環境的叢集
環境的叢集是環境的標準模式 VPC 原生或以路徑為基礎的 Google Kubernetes Engine 叢集:
根據預設,Cloud Composer 會啟用節點自動升級和節點自動修復功能,保護環境的叢集不受安全性漏洞的侵擾。這些作業會在您為環境指定的維護期間執行。
環境的 bucket
環境值區是Cloud Storage 值區,用於儲存 DAG、外掛程式、資料依附元件和 Airflow 記錄。環境的值區位於客戶專案中。
當您將 DAG 檔案上傳到環境 bucket 的 /dags
資料夾時,Cloud Composer 會將 DAG 同步到環境的 Airflow 元件。
Airflow 網路伺服器
Airflow 網路伺服器會執行環境的 Airflow UI。
在 Cloud Composer 1 中,Airflow 網路伺服器會在環境的租戶專案中執行。
Airflow 網路伺服器已與 Identity-Aware Proxy 整合。Cloud Composer 會隱藏 IAP 整合詳細資料,並根據使用者身分和為使用者定義的 IAM 政策繫結,提供網路伺服器存取權。
在 Cloud Composer 1 中,Airflow 網路伺服器與 Airflow 工作站和排程器是透過不同的服務帳戶執行。系統會在建立環境時自動產生網路伺服器的服務帳戶,並衍生自網路伺服器網域。舉例來說,如果網域是 example.appspot.com
,則服務帳戶為 example@appspot.gserviceaccount.com
。
Airflow 資料庫
Airflow 資料庫是Cloud SQL 執行個體,可在環境的租戶專案中執行。用來代管 Airflow 中繼資料庫。
為保護機密連線和工作流程資訊,Cloud Composer 只允許環境的服務帳戶存取資料庫。
其他 Airflow 元件
環境中執行的其他 Airflow 元件包括:
Airflow 排程器會剖析 DAG 定義檔案、依據排程間隔排定 DAG 執行作業,並將任務排入佇列來讓 Airflow 工作站執行。在 Cloud Composer 1 中,Airflow DAG 處理器會做為排程器元件的一部分執行。
Airflow 工作站會執行 Airflow 排程器排定的任務。
公開 IP 環境架構
在 Cloud Composer 1 的公用 IP 環境架構中:
- 租戶專案會代管 Cloud SQL 執行個體、Cloud SQL 儲存空間,以及執行 Airflow 網路伺服器的 App Engine 彈性執行個體。
- 客戶專案會代管環境的所有其他元件。
- 客戶專案中的 Airflow 排程器和工作人員,會透過位於客戶專案中的 Cloud SQL Proxy 執行個體,與 Airflow 資料庫通訊。
- 租戶專案中的 Airflow 網路伺服器,會透過位於租戶專案的 Cloud SQL Proxy 執行個體,與 Airflow 資料庫通訊。
私人 IP 環境架構
在私人 IP 環境架構中:
- 租戶專案會代管 Cloud SQL 執行個體、Cloud SQL 儲存空間,以及兩個執行 Airflow 網頁伺服器的 App Engine 執行個體。
- 客戶專案會代管環境的所有其他元件。
- Airflow 排程器和工作站會透過環境叢集中的 HAProxy 程序連線至 Airflow 資料庫。
- HAProxy 程序會將流量負載平衡至 Cloud SQL 執行個體,並在位於租戶專案中的兩個 Cloud SQL Proxy 執行個體之間分配流量。私人 IP 環境會使用兩個 Cloud SQL Proxy 執行個體,因為客戶專案無法直接存取資料庫 (受限於網路)。您需要兩個執行個體,確保環境中的元件隨時都能存取資料庫。
搭配 DRS 使用私人 IP
如果專案已啟用網域限制共用 (DRS) 機構政策,Cloud Composer 會使用 DRS 環境架構的私人 IP。
在採用 DRS 的私人 IP 環境架構中:
租戶專案會代管 Cloud SQL 執行個體、Cloud SQL 儲存空間,以及兩個執行 Airflow 網路伺服器的 App Engine 執行個體。
租戶專案會代管其他環境的值區。Airflow 網路伺服器會直接存取這個 bucket。
客戶專案會代管環境的所有其他元件。
客戶專案會在環境的叢集中,代管 Bucket Syncing 程序。這個程序會同步處理兩個環境的 bucket。
Airflow 排程器和工作站會透過環境叢集中的 HAProxy 程序,連線至 Airflow 資料庫。
HAProxy 程序會將流量負載平衡至 Cloud SQL 執行個體,並在位於租戶專案中的兩個 Cloud SQL Proxy 執行個體之間分配流量。私人 IP 環境會使用兩個 Cloud SQL Proxy 執行個體,因為客戶專案無法直接存取資料庫 (受限於網路)。您需要兩個執行個體,確保環境中的元件隨時都能存取資料庫。
與 Cloud Logging 和 Cloud Monitoring 整合
Cloud Composer 會與 Google Cloud 專案的 Cloud Logging 和 Cloud Monitoring 整合,讓您集中查看 Airflow 和 DAG 記錄。
Cloud Monitoring 會從 Cloud Composer 收集和擷取指標、事件和中繼資料,透過資訊主頁和圖表產生深入分析資料。
Cloud Logging 具有串流特性,因此您可以立即查看 Airflow 元件發出的記錄,而不必等候 Airflow 記錄出現在環境的 Cloud Storage 值區中。
如要限制 Google Cloud 專案中的記錄數量,您可以停止擷取所有記錄。請勿停用記錄功能。