Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面說明如何將有向非循環圖、資料和設定從現有的 Cloud Composer 2 環境轉移至 Cloud Composer 3。
其他遷移指南
寄件者 | 收件者 | 方法 | 指南 |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | 並排使用遷移指令碼 | 指令碼遷移指南 |
Cloud Composer 2 | Cloud Composer 3 | 並排顯示,使用快照 | 本指南 |
Cloud Composer 1、Airflow 2 | Cloud Composer 3 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 2 | Cloud Composer 2 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 2 | Cloud Composer 2 | 並排、手動轉移 | 手動遷移指南 |
Cloud Composer 1、Airflow 1 | Cloud Composer 2、Airflow 2 | 並排顯示,使用快照 | 快照遷移指南 |
Cloud Composer 1、Airflow 1 | Cloud Composer 2、Airflow 2 | 並排、手動轉移 | 手動遷移指南 |
Cloud Composer 1、Airflow 1 | Cloud Composer 1、Airflow 2 | 並排、手動轉移 | 手動遷移指南 |
事前準備
本遷移指南使用快照。Cloud Composer 2 的 2.0.9 以上版本支援快照。
Cloud Composer 支援從 Cloud Composer 2 並行遷移至 Cloud Composer 3。無法原地從 Cloud Composer 2 升級至 Cloud Composer 3。
請參閱Cloud Composer 2 與 Cloud Composer 3 之間的差異。請確認環境不會使用 Cloud Composer 3 尚未提供的功能。
支援快照的 Airflow 資料庫大小上限為 20 GB。如果環境的資料庫大小超過 20 GB,請縮減 Airflow 資料庫的大小。
環境值區中
/dags
、/plugins
和/data
資料夾中的物件總數必須少於 100,000 個,才能建立快照。如果您使用 XCom 機制傳輸檔案,請務必按照 Airflow 的規範使用。使用 XCom 傳輸大型檔案或大量檔案會影響 Airflow 資料庫的效能,並可能導致載入快照或升級環境時失敗。請考慮使用 Cloud Storage 等替代方案來傳輸大量資料。
確認 DAG 與 Cloud Composer 3 相容
請按照以下建議,確保 DAG 與 Cloud Composer 3 相容:
Cloud Composer 3 環境中的套件清單,可能與 Cloud Composer 2 環境中的套件清單不同。這可能會影響 DAG 與 Cloud Composer 3 的相容性。
Cloud Composer 會將Cloud Composer 2 環境快照中的設定覆寫、環境變數和 PyPI 套件載入至 Cloud Composer 3,無須變更或調整這些設定以確保相容性。為解決這些設定參數之間的衝突,您可以在載入快照時略過載入自訂 PyPI 套件、環境變數和 Airflow 設定覆寫。
在 Cloud Composer 3 中,環境的叢集位於租用戶專案中。請確認 DAG 與這項變更相容。具體來說,
KubernetesPodOperator
工作負載現在會獨立於環境進行調整,因此無法使用 Pod 關聯設定。
在 Cloud Composer 2 環境中暫停 DAG
為避免重複執行 DAG,請先暫停 Cloud Composer 2 環境中的所有 DAG,再儲存快照。略過生存監控 DAG (airflow_monitoring
),這個 DAG 用於監控用途,不會納入環境快照。
您可以使用下列任一選項暫停 DAG:
在 Google Cloud 主控台中逐一暫停 DAG:
前往 Google Cloud 控制台的「Environments」頁面。
選取環境即可查看詳細資料。
在「Environment details」頁面中,前往「DAGs」分頁。
按一下 DAG 名稱。
在「DAG 詳細資料」頁面上,按一下「暫停 DAG」。
在 Airflow 網頁介面中,前往「DAG」,然後手動暫停所有 DAG。
使用 composer_dags 指令碼暫停所有 DAG:
python3 composer_dags.py --environment COMPOSER_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation pause
取代:
COMPOSER_2_ENV
與 Cloud Composer 2 環境名稱。- 將
PROJECT_ID
替換為專案 ID。 COMPOSER_2_LOCATION
改成環境所在的地區。
儲存 Cloud Composer 2 環境的快照
主控台
建立環境快照:
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下 Cloud Composer 2 環境的名稱。「環境詳細資料」頁面隨即開啟。
按一下 [Create snapshot] (建立快照)。
在「Create snapshot」對話方塊中,按一下「Submit」。在本指南中,您會將快照儲存至 Cloud Composer 2 環境的儲存桶,但您可以視需要選取其他位置。如果您指定自訂位置,兩個環境的服務帳戶必須具備指定位置的讀取和寫入權限。
等待 Cloud Composer 建立快照。
建立快照後,畫面上會顯示快照的位置。請儲存這項資訊,以便日後將快照載入至 Cloud Composer 3 環境時使用。
舉例來說,快照位置可能會是:
gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12
。
gcloud
建立 Cloud Composer 2 環境快照:
gcloud composer environments snapshots save \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION
取代:
COMPOSER_2_ENV
與 Cloud Composer 2 環境名稱。COMPOSER_2_LOCATION
與 Cloud Composer 2 環境所在的地區。(選用) 您可以使用
--snapshot-location
引數,指定環境的快照必須儲存的自訂位置。在本指南中,您會將快照儲存在 Cloud Composer 2 環境的值區中,但您可以視需要選取其他位置。如果您指定自訂位置,兩個環境的服務帳戶必須具備指定位置的讀取和寫入權限。
建立快照後,畫面上會顯示快照的位置。請儲存這項資訊,以便日後將快照載入至 Cloud Composer 3 環境時使用。
舉例來說,快照位置可能會是:
gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12
。
建立 Cloud Composer 3 環境
按照下列規範建立 Cloud Composer 3 環境:
您可以先使用與 Cloud Composer 2 環境相同的資源限制設定,之後再進一步調整及最佳化設定。
在 Cloud Composer 3 環境中,Airflow DAG 處理器會以獨立的環境元件執行。由於 DAG 處理器會將 DAG 剖析工作從排程器卸載,因此您可能需要重新分配先前分配給 Airflow 排程器的資源。您可以稍後在遷移至 Cloud Composer 3 並監控排程器和 DAG 處理器效能後再執行這項操作。
與 Cloud Composer 2 相比,Cloud Composer 3 提供更簡化且更流暢的網路設定。您可以切換公用 IP 和私人 IP 網路設定,以及連結和解除連結虛擬私有雲網路。您不需要指定 IP 範圍。請確認 Cloud Composer 3 環境的網路設定與對應的 Cloud Composer 2 設定相符。
您不需要指定設定覆寫和環境變數,因為稍後載入 Cloud Composer 2 環境的快照時,您會取代這些變數。
將快照載入至 Cloud Composer 3 環境
主控台
如要將快照載入至 Cloud Composer 3 環境,請按照下列步驟操作:
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下 Cloud Composer 3 環境的名稱。「環境詳細資料」頁面隨即開啟。
按一下「Load snapshot」。
在「Load snapshot」對話方塊中,按一下「Browse」。
選取含有快照的資料夾。
如果您使用本指南的預設位置,這個資料夾會位於
/snapshots
資料夾中的 Cloud Composer 2 環境值區,名稱則是快照儲存作業的時間戳記。在快照建立成功的訊息中,會顯示相同的位置。例如
us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12
。按一下「Load」,等待 Cloud Composer 載入快照。
gcloud
將 Cloud Composer 2 環境的快照載入至 Cloud Composer 3 環境:
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
取代:
COMPOSER_3_ENV
與 Cloud Composer 3 環境名稱。COMPOSER_3_LOCATION
與 Cloud Composer 3 環境所在的地區。SNAPSHOT_PATH
與 Cloud Composer 2 環境值區的 URI,後面接著快照的路徑。在快照建立成功的訊息中,會顯示相同的位置。例如:gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12
。
在 Cloud Composer 3 環境中取消暫停 DAG
您可以使用下列任一選項:
在 Google Cloud 控制台中逐一取消暫停 DAG:
前往 Google Cloud 控制台的「Environments」頁面。
選取環境即可查看詳細資料。
在「Environment details」頁面中,前往「DAGs」分頁。
按一下 DAG 名稱。
在「DAG 詳細資料」頁面中,按一下「取消暫停 DAG」。
在 Airflow 網頁介面中,前往「DAG」,然後逐一手動取消暫停所有 DAG。
使用 composer_dags 指令碼取消暫停所有 DAG:
python3 composer_dags.py --environment COMPOSER_3_ENV \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ --operation unpause
取代:
COMPOSER_3_ENV
與 Cloud Composer 3 環境名稱。- 將
PROJECT_ID
替換為專案 ID。 COMPOSER_3_LOCATION
改成環境所在的地區。
檢查 DAG 錯誤
在 Airflow 網頁介面中,前往「DAG」,檢查是否有已回報的 DAG 語法錯誤。
檢查 DAG 是否在正確的時間排定執行。
等待 Cloud Composer 3 環境中 DAG 執行作業,並檢查是否成功。如果 DAG 執行作業成功,請勿在 Cloud Composer 2 環境中取消暫停;如果這麼做,Cloud Composer 2 環境會在同一時間和日期執行 DAG。
如果特定 DAG 執行作業失敗,請嘗試針對 DAG 進行疑難排解,直到 DAG 在 Cloud Composer 3 中成功執行為止。
監控 Cloud Composer 3 環境
將所有 DAG 和設定轉移至 Cloud Composer 3 環境後,請監控環境是否有潛在問題、DAG 執行失敗,以及整體環境健康狀況。
如果 Cloud Composer 3 環境在一段時間內運作正常,請考慮刪除 Cloud Composer 2 環境。