扩缩环境

Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3

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

其他有关扩缩的页面:

纵向和横向扩缩

横向扩缩选项:

  • 调整工作器数量的下限和上限。
  • 调整调度器、DAG 处理器和触发器的数量。

纵向扩缩选项:

  • 调整工作器、调度器、触发器、DAG 处理器和 Web 服务器的扩缩和性能参数。
  • 调整环境大小。

资源限制

组件 数量下限 数量上限 vCPU 数量下限 vCPU 上限 vCPU 步数下限 最小内存 (GB) 内存上限 (GB) 内存最小步长 (GB) 每个 vCPU 的内存下限 (GB) 每 1 个 vCPU 的最大内存 (GB) 最小存储空间 (GB) 存储空间上限 (GB) 存储空间最小步长 (GB)
调度器 1 3 0.5 1 0.5 0.5 8 0.25 1 8 0 100 1
触发器 0 10 0.5 1 0.5 0.5 8 0.25 1 8 - - -
Web 服务器 - - 0.5 32 0.5、1 或 2 的倍数 1 256 0.25 1 8 0 100 1
工作器 1 100 0.5 32 0.5、1 或 2 的倍数 1 256 0.25 1 8 0 100 1
DAG 处理器 1 3 0.5 32 0.5、1 或 2 的倍数 1 256 0.25 1 8 0 100 1

调整 worker 参数

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

您可以指定 Airflow 使用的 CPU、内存和磁盘空间量 您的环境中的工作器。通过这种方式,除了使用多个工作器进行横向扩缩之外,您还可以提高您的环境的性能。

控制台

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

    转到“环境”

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

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

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

  5. 工作负载配置窗格中,调整 Airflow 工作器的参数:

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

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

    • CPU内存Storage 字段中,指定 Airflow 工作器的 CPU、内存和存储空间量。每个工作器使用指定数量的资源。

  6. 点击保存

gcloud

您可以使用以下 Airflow 工作器参数:

  • --min-workers:您的环境必须有的 Airflow 工作器数量 始终运行您的环境中的工作器数量不能低于此数量,即使更少数量的工作器可以处理负载也是如此。
  • --max-workers:您的环境可运行的 Airflow 工作器数量的上限。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。
  • --worker-cpu:Airflow 工作器的 CPU 数量。
  • --worker-memory:Airflow 工作器的内存用量。
  • --worker-storage:Airflow 工作器的磁盘空间量。

运行以下 Google Cloud CLI 命令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX \
  --worker-cpu WORKER_CPU \
  --worker-memory WORKER_MEMORY \
  --worker-storage WORKER_STORAGE

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • WORKERS_MIN:Airflow 工作器数量下限。
  • WORKERS_MAX:Airflow 工作器数量上限。
  • WORKER_CPU:工作器的 CPU 数量(以 vCPU 为单位)。
  • WORKER_MEMORY:工作器的内存量。
  • WORKER_STORAGE:工作器的磁盘大小。

例如:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6 \
  --worker-cpu 1 \
  --worker-memory 2 \
  --worker-storage 2

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. 在参数 updateMask 中,指定要更新的字段。例如,要更新所有 参数的值,请指定 config.workloadsConfig.worker.cpu,config.workloadsConfig.worker.memoryGb,config.workloadsConfig.worker.storageGB,config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount 个蒙版。

    2. 在请求正文中,指定新的 Worker 参数。

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX,
      "cpu": WORKER_CPU,
      "memoryGb": WORKER_MEMORY,
      "storageGb": WORKER_STORAGE
    }
  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • WORKERS_MIN:Airflow 工作器数量下限。
  • WORKERS_MAX:Airflow 工作器数量上限。
  • 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.worker.minCount,
// config.workloadsConfig.worker.maxCount
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGB

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6,
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.worker 块中的以下字段用于控制 Airflow 工作器参数。每个工作器使用指定数量的资源。

  • worker.min_count:您的环境必须有的 Airflow 工作器数量 始终运行您的环境中的工作器数量不能低于此数量,即使更少数量的工作器可以处理负载也是如此。
  • worker.max_count:您的 环境可以运行。您的环境中的工作器数量不能超出此数量,即使需要更多数量的工作器来处理负载也是如此。
  • 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 {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • WORKERS_MIN:Airflow 工作器数量下限。
  • WORKERS_MAX:Airflow 工作器数量上限。
  • 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 {
      worker {
        min_count = 2
        max_count = 6
        cpu = 1
        memory_gb = 2
        storage_gb = 2
      }
    }

  }
}

调整调度器参数

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

您最多可以添加 3 次 调度器

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

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

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

您可以指定 Airflow 使用的 CPU、内存和磁盘空间量 调度器通过这种方式,您可以提高 以及使用多集群虚拟机提供的 调度器

控制台

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

    转到“环境”

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

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

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

  5. Workloads configuration 窗格中,调整 Airflow 的参数 schedulers:

    • 调度器数量下拉列表中,为您的环境选择调度器数量。

    • CPU内存存储字段中,指定 Airflow 调度器的 CPU、内存和存储空间。每个调度器使用指定数量的资源。

  6. 点击保存

gcloud

您可以使用以下 Airflow 调度器参数:

  • --scheduler-count:您的环境中的调度器数量。

  • --scheduler-cpu:Airflow 调度器的 CPU 数量。

  • --scheduler-memory:Airflow 调度器的内存量。

  • --scheduler-storage:Airflow 调度程序的磁盘可用空间。

运行以下 Google Cloud CLI 命令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-cpu SCHEDULER_CPU \
  --scheduler-memory SCHEDULER_MEMORY \
  --scheduler-storage SCHEDULER_STORAGE \
  --scheduler-count SCHEDULER_COUNT

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。

  • SCHEDULER_CPU:调度器的 CPU 数量,以 vCPU 为单位。

  • SCHEDULER_MEMORY:调度程序的内存量。

  • SCHEDULER_STORAGE:调度器的磁盘大小。

  • SCHEDULER_COUNT:调度器数量。

示例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-cpu 0.5 \
  --scheduler-memory 2.5 \
  --scheduler-storage 2 \
  --scheduler-count 2

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. updateMask 参数中,指定 config.workloadsConfig.scheduler 掩码以更新所有调度器参数或仅更新调度器数量。您还可以更新 各个调度器参数(count 除外)。 例如 config.workloadsConfig.scheduler.cpu

    2. 在请求正文中,指定新的调度器参数。

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": SCHEDULER_CPU,
      "memoryGb": SCHEDULER_MEMORY,
      "storageGb": SCHEDULER_STORAGE,
      "count": SCHEDULER_COUNT
    }
  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。

  • SCHEDULER_CPU:调度器的 CPU 数量,以 vCPU 为单位。

  • SCHEDULER_MEMORY:调度器的内存量(以 GB 为单位)。

  • SCHEDULER_STORAGE:调度器的磁盘大小,以 GB 为单位。

  • SCHEDULER_COUNT:调度器的数量。

示例:

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2,
      "count": 2
    }
  }
}

Terraform

workloads_config.scheduler 块中的以下字段控制 Airflow 调度器参数。每个调度器都会使用 资源。

  • scheduler.count:您的环境中的调度器数量。

  • scheduler.cpu:Airflow 调度器的 CPU 数量。

  • scheduler.memory_gb:Airflow 调度器的内存量。

  • scheduler.storage_gb:调度器的磁盘空间量。

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
        count = SCHEDULER_COUNT
      }
    }

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。

  • SCHEDULER_CPU:调度器的 CPU 数量,以 vCPU 为单位。

  • SCHEDULER_MEMORY:调度器的内存量(以 GB 为单位)。

  • SCHEDULER_STORAGE:调度器的磁盘大小,以 GB 为单位。

  • SCHEDULER_COUNT:调度器的数量。

示例:

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
        
        count = 2
      }
    }

  }
}

调整触发器参数

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

触发器数量的可能配置因环境的弹性模式而异:

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

即使触发器数量设置为零,触发器 Pod 定义也会 在环境的集群中创建并可见,但没有实际的触发器 工作负载

您还可以指定 Airflow 使用的 CPU、内存和磁盘空间量 触发器。通过这种方式,除了使用多个触发器进行横向扩缩之外,您还可以提高您的环境的性能。

控制台

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

    转到“环境”

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

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

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

  5. Workloads configuration 窗格中,调整 Airflow 的参数 触发器:

    1. 触发器部分的触发器数量字段中,执行以下操作: 输入您环境中的触发器数量。

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

    2. CPU内存中,指定 Airflow 触发器的 CPU、内存和存储空间。每个触发器 使用指定数量的资源。

  6. 点击保存

gcloud

以下 Airflow 触发器参数可用:

  • --triggerer-count:您的环境中的触发器数量。

    • 对于标准弹性环境,请使用介于 010
    • 对于高度弹性环境,请使用 0,或介于 210 之间的值。
  • --triggerer-cpu:Airflow 触发器的 CPU 数量。

  • --triggerer-memory:Airflow 触发器的内存量。

运行以下 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:触发器的数量。
  • TRIGGERER_CPU:触发器的 CPU 数量,以 vCPU 为单位。
  • TRIGGERER_MEMORY:触发器的内存量。

示例:

  • 扩容为四个触发器实例:
  gcloud composer environments update example-environment \
    --location us-central1 \
    --triggerer-count 4 \
    --triggerer-cpu 1 \
    --triggerer-memory 1
  ```

- Disable triggerers by setting triggerer count to `0`. This operation
  doesn't require specifying CPU or memory for the triggerers.

```bash
  gcloud composer environments update example-environment \
    --location us-central1 \
    --triggerer-count 0
  ```

API

  1. updateMask 查询参数中,指定 config.workloadsConfig.triggerer 个蒙版。

  2. 在请求正文中,为触发器指定所有三个参数。

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

替换以下内容:

  • TRIGGERER_COUNT:触发器的数量。

    • 对于标准弹性环境,请使用介于 010
    • 对于高弹性环境,请使用 0, 或介于 210
  • TRIGGERER_CPU:触发器的 CPU 数量(以 vCPU 为单位)。

  • TRIGGERER_MEMORY:触发器的内存量。

示例:

  • 将触发器计数设置为 0 以停用触发器。此操作 不要求为触发器指定 CPU 或内存。
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 0
    }
  }
}
  • 扩容为四个触发器实例:
// PATCH https://composer.googleapis.com/v1/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 代码块中的以下字段用于控制 Airflow 触发器参数。每个触发器使用指定数量的资源。

  • triggerer.count:您的环境中的触发器数量。

    • 对于标准弹性环境,请使用介于 010 之间的值。
    • 对于高弹性环境,请使用 0, 或介于 210
  • triggerer.cpu:Airflow 触发器的 CPU 数量。

  • triggerer.memory_gb:Airflow 触发器的内存用量。

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
    }

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • TRIGGERER_COUNT:触发器的数量。
  • TRIGGERER_CPU:触发器的 CPU 数量,以 vCPU 为单位。
  • TRIGGERER_MEMORY:触发器的内存量(以 GB 为单位)。

示例:

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

  config {

    workloads_config {
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
    }

  }
}

调整 DAG 处理器参数

您可以指定环境中的 DAG 处理器数量,以及每个 DAG 处理器使用的 CPU 数量、内存和磁盘空间大小。

控制台

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

    转到“环境”

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

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

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

  5. Workloads configuration 窗格中,调整 Airflow 的参数 DAG 处理器:

    • DAG 处理器数量下拉列表中,选择 适合您环境的 DAG 处理器。

    • CPU内存Storage 字段中,指定 Airflow DAG 处理器的 CPU、内存和存储空间量。每个 DAG 处理器使用指定数量的资源。

  6. 点击保存

gcloud

您可以使用以下 Airflow DAG 处理器参数:

  • --dag-processor-count:DAG 处理器数量。
  • --dag-processor-cpu:DAG 处理器的 CPU 数量。
  • --dag-processor-memory:DAG 处理器的内存量。
  • --dag-processor-storage:DAG 的磁盘空间量 处理器。

运行以下 Google Cloud CLI 命令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
    --dag-processor-count DAG_PROCESSOR_COUNT \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • DAG_PROCESSOR_CPU:DAG 处理器的 CPU 数量。
  • DAG_PROCESSOR_MEMORY:DAG 处理器的内存量。
  • DAG_PROCESSOR_STORAGE:DAG 处理器的磁盘可用空间。

例如:

gcloud composer environments update example-environment \
  --location us-central1 \
  --dag-processor-count 2 \
  --dag-processor-cpu 0.5 \
  --dag-processor-memory 2 \
  --dag-processor-storage 1

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. updateMask 参数中,指定 config.workloadsConfig.dagProcessor 掩码以更新所有 DAG 处理器参数,包括 DAG 处理器数量。您可以 还可以通过指定掩码来更新各个 DAG 处理器参数。 例如 config.workloadsConfig.dagProcessor.cpu,config.workloadsConfig.dagProcessor.memoryGb,config.workloadsConfig.dagProcessor.storageGb

    2. 在请求正文中,指定新的 DAG 处理器参数。

"config": {
  "workloadsConfig": {
    "dagProcessor": {
      "count": DAG_PROCESSOR_COUNT,
      "cpu": DAG_PROCESSOR_CPU,
      "memoryGb": DAG_PROCESSOR_MEMORY,
      "storageGb": DAG_PROCESSOR_STORAGE
    }
  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • DAG_PROCESSOR_COUNT:DAG 处理器数量。
  • DAG_PROCESSOR_CPU:DAG 处理器的 CPU 数量(以 vCPU 为单位)。
  • DAG_PROCESSOR_MEMORY:DAG 的内存量 处理器(以 GB 为单位)。
  • DAG_PROCESSOR_STORAGE:DAG 处理器的磁盘空间大小(以 GB 为单位)。

示例:

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.dag_processor 代码块中的以下字段用于控制 Airflow DAG 处理器参数。每个 DAG 处理器使用指定数量的资源。

  • dag_processor.count:您环境中的 DAG 处理器数量。
  • dag_processor.cpu:DAG 处理器的 CPU 数量。
  • dag_processor.memory_gb:DAG 处理器的内存量。
  • dag_processor.storage_gb DAG 处理器的磁盘空间量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      dag_processor {
        count = DAG_PROCESSOR_COUNT
        cpu = DAG_PROCESSOR_CPU
        memory_gb = DAG_PROCESSOR_MEMORY
        storage_gb = DAG_PROCESSOR_STORAGE
      }
    }

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • DAG_PROCESSOR_COUNT:DAG 处理器数量。
  • DAG_PROCESSOR_CPU:DAG 处理器的 CPU 数量(以 vCPU 为单位)。
  • DAG_PROCESSOR_MEMORY:DAG 的内存量 处理器(以 GB 为单位)。
  • DAG_PROCESSOR_STORAGE:DAG 处理器的磁盘空间大小(以 GB 为单位)。

示例:

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

  config {

    workloads_config {
      dag_processor {
        count = 2
        cpu = 0.5
        memory_gb = 2
        storage_gb = 1
      }
    }

  }
}

调整 Web 服务器参数

您可以指定 Airflow 使用的 CPU、内存和磁盘空间量。 Web 服务器。通过这种方式,您可以 例如,为了满足大量 用户或大量代管式 DAG。

控制台

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

    转到“环境”

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

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

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

  5. 工作负载配置窗格中,调整 Web 服务器的参数。在 CPU内存存储字段中,指定 Web 服务器的 CPU、内存和存储空间数量。

  6. 点击保存

gcloud

您可以使用以下 Airflow Web 服务器参数:

  • --web-server-cpu:Airflow Web 服务器的 CPU 数量。
  • --web-server-memory:Airflow Web 的内存量 服务器。
  • --web-server-storage:Airflow 网站服务器的磁盘空间。

运行以下 Google Cloud CLI 命令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --web-server-cpu WEB_SERVER_CPU \
  --web-server-memory WEB_SERVER_MEMORY \
  --web-server-storage WEB_SERVER_STORAGE

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • WEB_SERVER_CPU:Web 服务器的 CPU 数量,以 vCPU 为单位。
  • WEB_SERVER_MEMORY:Web 服务器的内存量。
  • WEB_SERVER_STORAGE:Web 服务器的内存量。

例如:

gcloud composer environments update example-environment \
  --location us-central1 \
  --web-server-cpu 1 \
  --web-server-memory 2.5 \
  --web-server-storage 2

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. updateMask 参数中,指定 config.workloadsConfig.webServer 掩码以更新所有 Web 服务器 参数。您还可以通过以下方式更新各个 Web 服务器参数: 为这些参数指定掩码: config.workloadsConfig.webServer.cpu, config.workloadsConfig.webServer.memoryGb, config.workloadsConfig.webServer.storageGb

    2. 在请求正文中,指定新的网站服务器参数。

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": WEB_SERVER_CPU,
      "memoryGb": WEB_SERVER_MEMORY,
      "storageGb": WEB_SERVER_STORAGE
    }
  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • WEB_SERVER_CPU:Web 服务器的 CPU 数量(以 vCPU 为单位)。
  • WEB_SERVER_MEMORY:Web 服务器的内存量,以 GB 为单位。
  • WEB_SERVER_STORAGE:Web 服务器的磁盘大小,以 GB 为单位。

示例:

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

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.web_server 块中的以下字段用于控制 Web 服务器参数。

  • web_server.cpu:Web 服务器的 CPU 数量。
  • web_server.memory_gb:Web 服务器的内存量。
  • web_server.storage_gb:Web 服务器的磁盘空间量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
    }

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • WEB_SERVER_CPU:Web 服务器的 CPU 数量(以 vCPU 为单位)。
  • WEB_SERVER_MEMORY:Web 服务器的内存量,以 GB 为单位。
  • WEB_SERVER_STORAGE:Web 服务器的磁盘大小,以 GB 为单位。

示例:

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

  config {

    workloads_config {
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

调整环境大小

环境大小决定了受管理设备的性能参数 Cloud Composer 基础架构,例如包含 Airflow 数据库。

如果要运行大量项目,请考虑选择更大的环境大小。 DAG 和任务的组合。

控制台

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

    转到“环境”

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

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

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

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

  6. 核心基础架构窗格中,在环境大小字段中,指定环境大小。

  7. 点击保存

gcloud

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

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

替换以下内容:

  • ENVIRONMENT_NAME:环境的名称。
  • LOCATION:环境所在的区域。
  • ENVIRONMENT_SIZEsmallmediumlarge

示例:

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"

    }
  }
}

后续步骤