環境架構

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 環境架構

租戶專案和客戶專案中的公開 IP Cloud Composer 環境資源
圖 1: 公開 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 Composer 環境資源
圖 2. 私人 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 的私人 IP Cloud Composer 環境資源 (按一下可放大)
圖 3. 私人 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 專案中的記錄數量,您可以停止擷取所有記錄。請勿停用記錄功能。

後續步驟