扩缩环境

Cloud Composer 1 | Cloud Composer 2

本页面介绍如何在 Cloud Composer 2 中扩缩 Cloud Composer 环境。

其他有关扩缩的页面:

纵向和横向扩缩

横向扩缩选项:

纵向扩缩选项:

调整工作器数量的下限和上限

您可以为环境设置工作器数量下限和上限。 Cloud Composer 会在设定的限制内自动扩缩您的环境。您可以随时调整这些限制。

控制台

  1. 前往 Google Cloud 控制台中的环境页面:

    转到“环境”页面

  2. 选择您的环境。

  3. 转到环境配置标签页。

  4. 资源 > 工作负载配置项中,点击修改

  5. 工作负载配置对话框中,在工作器自动扩缩部分调整 Airflow 工作器的限制:

    • 工作器数量下限字段中,指定您的环境必须始终运行的 Airflow 工作器的数量。您的环境中的工作器数量不能低于此数量,即使更少数量的工作器可以处理负载也是如此。

    • 工作器数量上限字段中,指定您的环境可以运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。

  6. 点击保存

gcloud

运行以下 Google Cloud CLI 命令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • WORKERS_MIN 替换为您的环境可运行的 Airflow 工作器数量的下限。即使可以处理负载的工作器数量较少,您环境中的工作器数量也不会低于此数字。
  • WORKERS_MAX 替换为您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。

示例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定 config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount 掩码。

    2. 在请求正文的 minCountmaxCount 字段中,指定新的工作器数量限制。

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX
    }
  }
}

您需要将其中的:

  • WORKERS_MIN 替换为您的环境可运行的 Airflow 工作器数量的下限。即使可以处理负载的工作器数量较少,您环境中的工作器数量也不会低于此数字。
  • WORKERS_MAX 替换为您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。

示例:

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

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6
    }
  }
}

Terraform

workloadsConfig.worker 块中的 min_countmax_count 字段用于指定环境中的工作器数量下限和上限:

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

  config {

    workloads_config {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

  }
}

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • WORKERS_MIN 替换为您的环境可运行的 Airflow 工作器数量的下限。即使可以处理负载的工作器数量较少,您环境中的工作器数量也不会低于此数字。
  • WORKERS_MAX 替换为您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。

示例:

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

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
      }
    }

  }
}

调整调度器的数量

您的环境可以同时运行多个 Airflow 调度器。使用多个调度器在多个调度器实例之间分配负载,以实现更好的性能和可靠性。

您的环境中最多可以有 10 个调度器。

增加调度器的数量并不总是可以提高 Airflow 性能。例如,仅使用一个调度器的性能可能优于使用两个调度器。如果额外的调度器未得到利用,则可能会发生这种情况,因而会占用环境的资源,而不会提升整体性能。实际的调度器性能取决于 Airflow 工作器的数量、在您的环境中运行的 DAG 和任务的数量,以及 Airflow 和环境的配置。

我们建议您先使用两个调度器,然后再监控环境的性能。如果您更改调度器的数量,则可以随时将环境扩缩回原始调度器的数量。

如需详细了解如何配置多个调度器,请参阅 Airflow 文档

如需更改环境的调度器的数量,请按照以下所述操作:

控制台

  1. 前往 Google Cloud 控制台中的环境页面:

    转到“环境”页面

  2. 选择您的环境。

  3. 转到环境配置标签页。

  4. 资源 > 工作负载配置项中,点击修改

  5. 工作负载配置对话框的调度器数量下拉列表中,为您的环境设置调度器的数量。

  6. 点击保存

gcloud

运行以下 Google Cloud CLI 命令:

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

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • SCHEDULER_COUNT 替换为调度器的数量。

示例:

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

API

  1. 创建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定 config.softwareConfig.workloadsConfig.scheduler 掩码。

    2. 在请求正文的 count 字段中,指定调度器数量。

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

您需要将其中的:

  • SCHEDULER_COUNT 替换为调度器的数量。

示例:

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

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

Terraform

workloads_config.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
      }

    }
  }
}

调整触发器的数量

您可以将触发器数量设置为零,但您的环境中需要至少一个触发器实例(或在高弹性环境中至少两个),才能在 DAG 中使用可延迟运算符

根据环境的弹性设置,有多种不同的触发器数量配置可能有所不同:

  • 标准弹性:您最多可以运行 10 个触发器
  • 高弹性:至少 2 个触发器,最多 10 个

即使将触发器数量设置为 0,系统仍会创建触发器 Pod 定义并显示在环境集群中,但不会运行实际的触发器工作负载。

如果您有多个触发器,则这些触发器会按 Cloud Composer 计算 SKU 进行结算,就像其他环境组件一样。

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页。

  4. 资源 > 工作负载项中,点击修改。 系统随即会打开工作负载配置窗格。

  5. 触发器部分中,使用触发器数量字段输入您环境中的触发器数量。

    如果您为环境设置了至少一个触发器,请使用 CPU内存字段为触发器配置资源分配。

  6. 点击保存,然后等待环境更新。

gcloud

运行以下 Google Cloud CLI 命令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --triggerer-count TRIGGERER_COUNT
  --triggerer-cpu TRIGGERER_CPU,
  --triggerer-memory TRIGGERER_MEMORY

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • TRIGGERER_COUNT 替换为触发器的数量。

    • 对于标准弹性环境,请使用介于 010 之间的值。
    • 对于高弹性环境,请使用 0 或介于 210 之间的值。
  • TRIGGERER_CPU 替换为触发器的 CPU 数量(以 vCPU 为单位)。此标志是可选标志;如果未提供,系统会使用默认值 0.5 vCPU。允许使用的值有:0.50.751

  • TRIGGERER_MEMORY 替换为触发器的内存量。此标志是可选标志;如果未提供,系统会使用默认值 0.5 GB。

    所需的最小内存等于为触发器分配的 CPU 数量。允许的最大值等于触发器 CPU 的数量乘以 6.5。

    例如,如果您将 --triggerer-cpu 标志设置为 1,则 --triggerer-memory 的最小值为 1,最大值为 6.5

示例:

  • 通过将触发器数量设置为 0 来停用触发器。此操作不需要为触发器指定 CPU 或内存。

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 0
    
  • 扩展到多个触发器实例:

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 4 \
      --triggerer-cpu 1 \
      --triggerer-memory 1GB
    

API

  1. 创建 environments.patch API 请求。

  2. updateMask 查询参数中,指定 config.workloadsConfig.triggerer 掩码。

  3. 在请求正文中,使用以下对象

  "config": {
    "workloadsConfig": {
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      }
    }
  }

您需要将其中的:

  • TRIGGERER_COUNT 替换为触发器的数量。

    • 对于标准弹性环境,请使用介于 010 之间的值。
    • 对于高弹性环境,请使用 0 或介于 210 之间的值。

      如果您至少使用一个触发器,则还必须指定 TRIGGERER_CPUTRIGGERER_MEMORY 的值:

      • TRIGGERER_CPU 设置为触发器的 CPU 数量(以 vCPU 为单位)。允许使用的值有:0.50.751

      • TRIGGERER_MEMORY 设置为触发器的内存量。所需的最小内存等于为触发器分配的 CPU 数量。允许的最大值等于触发器 CPU 的数量乘以 6.5。

        例如,如果您将 TRIGGERER_CPU 设置为 1,则 TRIGGERER_MEMORY 的最小值为 1,最大值为 6.5

示例:

  • 通过将触发器数量设置为 0 来停用触发器。此操作不需要为触发器指定 CPU 或内存。

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 0
        }
      }
    }
    
  • 扩展到多个触发器实例:

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 4,
          "cpu": 1,
          "memoryGb": 1
        }
      }
    }
    

Terraform

workloads_config.triggerer 代码块中的 count 字段指定您环境中的触发器数量:

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
      }
    }

  }
}

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • TRIGGERER_COUNT 替换为触发器的数量。

示例:

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

  config {

    workloads_config {

      triggerer {
        count = 1
      }

    }
  }
}

调整工作器、调度器、触发器和 Web 服务器的规模和性能参数

您可以指定环境使用的 CPU、内存和磁盘空间量。这样,除了使用多个工作器和调度器提供的横向伸缩之外,您还可以提高环境性能。

控制台

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页。

  4. 资源 > 工作负载项中,点击修改。 系统随即会打开工作负载配置窗格。

  5. 调度器数量触发器数量下拉列表中,选择环境中的调度器和触发器数量。

  6. 工作负载配置窗格的 CPU内存存储空间字段中,为 Airflow 调度器、触发器、Web 服务器和工作器指定 CPU、内存和存储空间的数量。

  7. 点击保存

gcloud

以下参数用于控制 Airflow 调度器、Web 服务器和工作器的 CPU、内存和磁盘空间参数:每个调度器和工作器使用指定数量的资源。

  • --scheduler-cpu 用于指定 Airflow 调度器的 CPU 数量。
  • --scheduler-memory 用于指定 Airflow 调度器的内存量。
  • --scheduler-storage 用于指定 Airflow 调度器的磁盘空间。
  • --triggerer-cpu 用于指定 Airflow 触发器的 CPU 数量。允许使用的值有:0.50.751。如果要调整触发器 CPU,还需要使用 --triggerer-memory--triggerer-count 标志。
  • --triggerer-memory 用于指定 Airflow 触发器的内存量。如果要调整触发器内存,还需要使用 --triggerer-cpu--triggerer-count 标志。

    所需的最小内存等于为触发器分配的 CPU 数量。允许的最大值等于触发器 CPU 的数量乘以 6.5。

    例如,如果您将 --triggerer-cpu 标志设置为 1,则 --triggerer-memory 的最小值为 1,最大值为 6.5

  • --web-server-cpu 用于指定 Airflow Web 服务器的 CPU 数量。

  • --web-server-memory 用于指定 Airflow Web 服务器的内存量。

  • --web-server-storage 用于指定 Airflow 网络服务器的磁盘空间。

  • --worker-cpu 用于指定 Airflow 工作器的 CPU 数量。

  • --worker-memory 用于指定 Airflow 工作器的内存量。

  • --worker-storage 用于指定 Airflow 工作器的磁盘空间。

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • SCHEDULER_CPU 替换为调度器的 CPU 数量(以 vCPU 为单位)。
  • SCHEDULER_MEMORY 替换为调度器的内存量。
  • SCHEDULER_STORAGE 替换为调度器的磁盘大小。
  • TRIGGERER_COUNT 替换为触发器的数量。即使您不想更改当前触发器数量,只想调整其 CPU 或内存分配,该值也是必需的。
  • TRIGGERER_CPU 替换为触发器的 CPU 数量(以 vCPU 为单位)。
  • TRIGGERER_MEMORY 替换为触发器的内存量。
  • WEB_SERVER_CPU 替换为 Web 服务器的 CPU 数量(以 vCPU 为单位)。
  • WEB_SERVER_MEMORY 替换为 Web 服务器的内存量。
  • WEB_SERVER_STORAGE 替换为网络服务器的内存量。
  • WORKER_CPU 替换为工作器的 CPU 数量(以 vCPU 为单位)。
  • WORKER_MEMORY 替换为工作器的内存量。
  • WORKER_STORAGE 替换为工作器的磁盘大小。

示例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB\
    --scheduler-storage 2GB \
    --triggerer-count 2 \
    --triggerer-cpu 1 \
    --triggerer-memory 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB

API

  1. 创建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定要更新的字段。例如,如需更新调度器的所有参数,请指定 config.workloadsConfig.scheduler.cpu,config.workloadsConfig.scheduler.memoryGb,config.workloadsConfig.scheduler.storageGB 掩码。

    更新触发器参数时,请指定 config.workloadsConfig.triggerer 掩码。无法为触发器的各个参数指定掩码。

    1. 在请求正文中,指定扩缩和性能参数。
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      }
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE
      }
    }
  }

您需要将其中的:

  • SCHEDULER_CPU 替换为调度器的 CPU 数量(以 vCPU 为单位)。
  • SCHEDULER_MEMORY 替换为调度器的内存量(以 GB 为单位)。
  • SCHEDULER_STORAGE 替换为调度器的磁盘大小(以 GB 为单位)。
  • TRIGGERER_COUNT 替换为触发器的数量。即使您不想更改当前的触发器数量,只想调整其 CPU 或内存分配,也需要使用此参数。
  • TRIGGERER_CPU 替换为触发器的 CPU 数量(以 vCPU 为单位)。允许使用的值有:0.50.751
  • TRIGGERER_MEMORY 替换为触发器的内存量。

    所需的最小内存等于为触发器分配的 CPU 数量。允许的最大值等于触发器 CPU 的数量乘以 6.5。

    例如,如果您将 TRIGGERER_CPU 设置为 1,则 TRIGGERER_MEMORY 的最小值为 1,最大值为 6.5

  • WEB_SERVER_CPU 替换为网络服务器的 CPU 数量(以 vCPU 为单位)。

  • WEB_SERVER_MEMORY 替换为 Web 服务器的内存量(以 GB 为单位)。

  • WEB_SERVER_STORAGE 替换为 Web 服务器的磁盘大小(以 GB 为单位)。

  • WORKER_CPU 替换为工作器的 CPU 数量(以 vCPU 为单位)。

  • WORKER_MEMORY 替换为工作器的内存量(以 GB 为单位)。

  • WORKER_STORAGE 替换为工作器的磁盘大小(以 GB 为单位)。

例如:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler.cpu,
// config.workloadsConfig.scheduler.memoryGB,
// config.workloadsConfig.scheduler.storageGb,
// config.workloadsConfig.triggerer
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb,
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGb

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "triggerer": {
      "count": 1,
      "cpu": 1,
      "memoryGb": 1
    },
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "worker": {
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

workloadsConfig 块中的以下块用于控制 Airflow 调度器、Web 服务器、触发器和工作器的 CPU、内存和磁盘空间参数。每个调度器、触发器和工作器都会使用指定数量的资源。

  • scheduler.cpu 字段用于指定 Airflow 调度器的 CPU 数量。
  • scheduler.memory_gb 字段用于指定 Airflow 调度器的内存量。
  • scheduler.storage_gb 字段用于指定调度器的磁盘空间。
  • triggerer.cpu 字段指定 Airflow 触发器的 CPU 数量。
  • triggerer.memory_gb 字段指定 Airflow 触发器的内存容量。
  • web_server.cpu 字段用于指定 Airflow Web 服务器的 CPU 数量。
  • web_server.memory_gb 字段用于指定 Airflow Web 服务器的内存量。
  • web_server.storage_gb 字段指定 Airflow Web 服务器的磁盘空间大小。
  • worker.cpu 字段用于指定 Airflow 工作器的 CPU 数量。
  • worker.memory_gb 字段用于指定 Airflow 工作器的内存量。
  • worker.storage_gb 用于指定 Airflow 工作器的磁盘空间量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
      }
      triggerer {
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
        count = 1
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • SCHEDULER_CPU 替换为调度器的 CPU 数量(以 vCPU 为单位)。
  • SCHEDULER_MEMORY 替换为调度器的内存量(以 GB 为单位)。
  • SCHEDULER_STORAGE 替换为调度器的磁盘大小(以 GB 为单位)。
  • TRIGGERER_CPU 替换为触发器的 CPU 数量(以 vCPU 为单位)。
  • TRIGGERER_MEMORY 替换为触发器的内存量(以 GB 为单位)。
  • WEB_SERVER_CPU 替换为网络服务器的 CPU 数量(以 vCPU 为单位)。
  • WEB_SERVER_MEMORY 替换为 Web 服务器的内存量(以 GB 为单位)。
  • WEB_SERVER_STORAGE 替换为 Web 服务器的磁盘大小(以 GB 为单位)。
  • WORKER_CPU 替换为工作器的 CPU 数量(以 vCPU 为单位)。
  • WORKER_MEMORY 替换为工作器的内存量(以 GB 为单位)。
  • WORKER_STORAGE 替换为工作器的磁盘大小(以 GB 为单位)。

示例:

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

  config {

    workloads_config {

      scheduler {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      triggerer {
        cpu = 0.5
        memory_gb = 0.5
        count = 1
      }
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      worker {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

调整环境大小

环境大小用于控制包含 Airflow 数据库的代管式 Cloud Composer 基础架构的性能参数。如果要运行大量 DAG 和任务,请考虑选择较大的环境大小。

控制台

  1. 前往 Google Cloud 控制台中的环境页面:

    转到“环境”页面

  2. 选择您的环境。

  3. 转到环境配置标签页。

  4. 资源 > 核心基础架构项中,点击修改

  5. 核心基础架构对话框中,在环境大小字段指定环境大小。

  6. 点击保存

gcloud

参数 --environment-size 可用于控制环境大小:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --environment-size ENVIRONMENT_SIZE

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • ENVIRONMENT_SIZE 替换为 smallmediumlarge

示例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --environment-size medium

API

  1. 创建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定 config.environmentSize 掩码。

    2. 在请求正文中,指定环境大小。

  "config": {
    "environmentSize": "ENVIRONMENT_SIZE"
  }

您需要将其中的:

  • ENVIRONMENT_SIZE 替换为环境大小,ENVIRONMENT_SIZE_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

示例:

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

"config": {
  "environmentSize": "ENVIRONMENT_SIZE_MEDIUM"
}

Terraform

config 块中的 environment_size 字段控制环境大小:

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

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。
  • ENVIRONMENT_SIZE 替换为环境大小,ENVIRONMENT_SIZE_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

例如:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

后续步骤