調度環境資源

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面說明如何調整 Cloud Composer 環境的規模。

垂直和水平縮放

在 Cloud Composer 1 中,您不會為 Cloud Composer 和 Airflow 元件 (例如工作站和排程器) 定義特定 CPU 和記憶體資源。而是為環境叢集中的節點指定機器數量和類型。

水平資源調度選項:

  • 調整節點數量
  • 調整排程器數量

垂直資源調度選項:

  • 調整 Cloud SQL 執行個體的機型
  • 調整網路伺服器機型

調整排程器參數

您的環境可以同時執行多個 Airflow 排程器。使用多個排程器可以將負載分配到多個排程器執行個體,以提升效能和穩定性。

如果環境使用 Airflow 2,您可以指定排程器數量,最多為環境中的節點數量。

調度器擴充時,請注意下列事項:

  • 增加排程器數量不一定能提升 Airflow 效能。

    舉例來說,如果額外的排程器未派上用場,且耗用環境資源,但對整體效能沒有貢獻,就可能發生這種情況。實際的排程器效能取決於 Airflow 工作站數量、環境中執行的 DAG 和工作數量,以及 Airflow 和環境的設定。

  • 建議先從兩個排程器開始,然後監控環境的效能。

如要進一步瞭解如何設定多個排程器,請參閱 Airflow 說明文件

控制台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」

  5. 在「資源」>「排程器數量」項目中,按一下「編輯」

  6. 在「排程器設定」窗格的「排程器數量」欄位中,指定環境的排程器數量。

  7. 按一下 [儲存]

gcloud

以下是可用的 Airflow 排程器參數:

  • --scheduler-count:環境中的排程器數量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-count SCHEDULER_COUNT

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-count 2

API

  1. 建構 environments.patch API 要求。

  2. 在這項要求中:

    1. updateMask 參數中,指定 config.workloadsConfig.schedulerCount 遮罩。

    2. 在要求主體中,指定環境的排程器數量。

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": SCHEDULER_COUNT
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

  • SCHEDULER_COUNT:排程器數量。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
    }
  }
}

Terraform

workloads_config.scheduler 區塊中的下列欄位會控管 Airflow 排程器參數。每個排程器都會使用指定數量的資源。

  • scheduler.count:環境中的排程器數量。

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      scheduler {
        count = SCHEDULER_COUNT
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

  • SCHEDULER_COUNT:排程器數量。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      scheduler {
        
        count = 2
      }
    }

  }
}

調整節點數量

您可以變更環境中的節點數量。

這個數字對應於環境中的 Airflow 工作站數量。除了執行 Airflow 工作站,環境節點也會執行 Airflow 排程器和其他環境元件。

控制台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「工作節點」>「節點計數」項目中,按一下「編輯」

  5. 在「Worker nodes configuration」(工作站節點設定) 窗格的「Node count」(節點數) 欄位中,指定環境中的節點數。

  6. 按一下 [儲存]

gcloud

--node-count 引數可控管環境中的節點數量:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --zone NODE_ZONE \
    --node-count NODE_COUNT

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • NODE_COUNT:節點數量。節點數量下限為 3
  • NODE_ZONE:環境 VM 的 Compute Engine 可用區。

範例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --zone us-central1-a \
    --node-count 6

API

  1. 建立 environments.patch API 要求。

  2. 在這項要求中:

    1. updateMask 參數中,指定 config.nodeCount 遮罩。

    2. 在要求主體中,指定環境的節點數量。

  "config": {
    "nodeCount": NODE_COUNT
  }

更改下列內容:

  • NODE_COUNT:節點數量。節點數量下限為 3

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.nodeCount

"config": {
  "nodeCount": 6
}

Terraform

node_config 區塊中的 node_count 欄位會指定環境中的節點數量。

resource "google_composer_environment" "example" {

  config {
    node_config {
      node_count = NODE_COUNT
    }
}

更改下列內容:

  • NODE_COUNT:節點數量。

範例:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {
      node_count = 4
    }

}

調整 Cloud SQL 執行個體的機型

您可以變更 Cloud SQL 執行個體的機器類型,該執行個體會儲存環境的 Airflow 資料庫。

控制台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「Cloud SQL 機型」項目中,按一下「編輯」

  5. 在「Cloud SQL configuration」(Cloud SQL 設定) 窗格中,從「Cloud SQL machine type」(Cloud SQL 機器類型) 下拉式選單中,選取環境的 Cloud SQL 執行個體機器類型。

  6. 按一下 [儲存]

gcloud

--cloud-sql-machine-type 引數會控管環境中 Cloud SQL 執行個體的機器類型。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --cloud-sql-machine-type SQL_MACHINE_TYPE

更改下列內容:

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --cloud-sql-machine-type db-n1-standard-2

API

  1. 建立 environments.patch API 要求。

  2. 在這項要求中:

    1. updateMask 參數中,指定 config.databaseConfig.machineType 遮罩。

    2. 在要求主體中,指定 Cloud SQL 執行個體的機器類型。

{
  "config": {
    "databaseConfig": {
      "machineType": "SQL_MACHINE_TYPE"
    }
  }
}

更改下列內容:

  • SQL_MACHINE_TYPE:Cloud SQL 執行個體的機器類型

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.databaseConfig.machineType

{
  "config": {
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    }
  }
}

Terraform

database_config 區塊中的 machine_type 欄位會指定 Cloud SQL 執行個體的機器類型。

resource "google_composer_environment" "example" {

  config {
    database_config {
      machine_type = "SQL_MACHINE_TYPE"
    }
  }
}

更改下列內容:

  • SQL_MACHINE_TYPE:Cloud SQL 執行個體的機器類型

範例:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {
    database_config {
      machine_type = "db-n1-standard-2"
    }
}

調整網路伺服器機型

您可以變更環境的 Airflow 網路伺服器機器類型。

控制台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「網頁伺服器機型」項目中,按一下「編輯」

  5. 在「Web server configuration」(網頁伺服器設定) 窗格中,從「Web server machine type」(網頁伺服器機器類型) 下拉式清單中,選取 Airflow 網頁伺服器的機器類型。

  6. 按一下 [儲存]

gcloud

--web-server-machine-type 引數會控管環境中 Airflow 網路伺服器執行個體的機器類型。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --web-server-machine-type WS_MACHINE_TYPE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WS_MACHINE_TYPE:Airflow 網路伺服器執行個體的機器類型

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --web-server-machine-type composer-n1-webserver-2

API

  1. 建立 environments.patch API 要求。

  2. 在這項要求中:

    1. updateMask 參數中,指定 config.webServerConfig.machineType 遮罩。

    2. 在要求主體中,指定網路伺服器的機器類型。

{
  "config": {
    "webServerConfig": {
      "machineType": "WS_MACHINE_TYPE"
    }
  }
}

更改下列內容:

  • WS_MACHINE_TYPE:Airflow 網路伺服器執行個體的機器類型

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerConfig.machineType

{
  "config": {
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

web_server_config 區塊中的 machine_type 欄位會指定 Airflow 網路伺服器執行個體的機器類型。

resource "google_composer_environment" "example" {

  config {
    web_server_config {
      machine_type = "WS_MACHINE_TYPE"
    }
  }
}

更改下列內容:

  • WS_MACHINE_TYPE:Airflow 網路伺服器執行個體的機器類型

範例:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {
    web_server_config {
      machine_type = "composer-n1-webserver-2"
    }
}

後續步驟