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 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
在资源 > 工作负载配置项中,点击修改。
在资源 > 调度器数量项中,点击修改。
在调度器配置窗格的调度器数量字段中,为您的环境指定调度器数量。
点击保存。
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 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
在工作器节点 > 节点数项中,点击修改。
在工作器节点配置窗格中,在节点数字段中,指定环境中的节点数。
点击保存。
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:环境虚拟机的 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 实例的机器类型
您可以更改存储您环境的 Airflow 数据库的 Cloud SQL 实例的机器类型。
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
在资源 > Cloud SQL 机器类型项中,点击修改。
在 Cloud SQL 配置窗格中,在 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"
}
}
}
替换以下内容:
示例:
// 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"
}
}
}
替换以下内容:
示例:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
database_config {
machine_type = "db-n1-standard-2"
}
}
调整网络服务器机器类型
您可以更改环境的 Airflow 网络服务器的机器类型。
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
在资源 > Web 服务器类型项中,点击修改。
在 Web 服务器配置窗格的 Web 服务器机器类型下拉列表中,选择 Airflow Web 服务器的机器类型。
点击保存。
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 Web 服务器实例的机器类型。
示例:
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 Web 服务器实例的机器类型。
示例:
// 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 Web 服务器实例的机器类型。
resource "google_composer_environment" "example" {
config {
web_server_config {
machine_type = "WS_MACHINE_TYPE"
}
}
}
替换以下内容:
WS_MACHINE_TYPE:Airflow Web 服务器实例的机器类型。
示例:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}