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 說明文件。
控制台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「資源」>「工作負載設定」項目中,按一下「編輯」。
在「資源」>「排程器數量」項目中,按一下「編輯」。
在「排程器設定」窗格的「排程器數量」欄位中,指定環境的排程器數量。
按一下 [儲存]。
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
建構
environments.patchAPI 要求。在這項要求中:
在
updateMask參數中,指定config.workloadsConfig.schedulerCount遮罩。在要求主體中,指定環境的排程器數量。
"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 排程器和其他環境元件。
控制台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「工作節點」>「節點計數」項目中,按一下「編輯」。
在「Worker nodes configuration」(工作站節點設定) 窗格的「Node count」(節點數) 欄位中,指定環境中的節點數。
按一下 [儲存]。
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
建立
environments.patchAPI 要求。在這項要求中:
在
updateMask參數中,指定config.nodeCount遮罩。在要求主體中,指定環境的節點數量。
"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 資料庫。
控制台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「資源」>「Cloud SQL 機型」項目中,按一下「編輯」。
在「Cloud SQL configuration」(Cloud SQL 設定) 窗格中,從「Cloud SQL machine type」(Cloud SQL 機器類型) 下拉式選單中,選取環境的 Cloud SQL 執行個體機器類型。
按一下 [儲存]。
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
更改下列內容:
ENVIRONMENT_NAME:環境名稱。LOCATION:環境所在的區域。SQL_MACHINE_TYPE:Cloud SQL 執行個體的機器類型。
範例:
gcloud composer environments update example-environment \
--location us-central1 \
--cloud-sql-machine-type db-n1-standard-2
API
建立
environments.patchAPI 要求。在這項要求中:
在
updateMask參數中,指定config.databaseConfig.machineType遮罩。在要求主體中,指定 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 網路伺服器機器類型。
控制台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「資源」>「網頁伺服器機型」項目中,按一下「編輯」。
在「Web server configuration」(網頁伺服器設定) 窗格中,從「Web server machine type」(網頁伺服器機器類型) 下拉式清單中,選取 Airflow 網頁伺服器的機器類型。
按一下 [儲存]。
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
建立
environments.patchAPI 要求。在這項要求中:
在
updateMask參數中,指定config.webServerConfig.machineType遮罩。在要求主體中,指定網路伺服器的機器類型。
{
"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"
}
}