Escalar entornos

Cloud Composer 1 | Cloud Composer 2

En esta página, se describe cómo escalar entornos de Cloud Composer en Cloud Composer 2.

Otras páginas sobre el escalamiento:

Escalar vertical y horizontalmente

Opciones de escalamiento horizontal:

Opciones de escalamiento vertical:

Ajusta la cantidad mínima y máxima de trabajadores

Puedes configurar la cantidad mínima y máxima de trabajadores para tu entorno. Cloud Composer escala automáticamente tu entorno dentro de los límites establecidos. Puedes ajustar estos límites en cualquier momento.

Console

  1. Ve a la página Entornos en la consola de Google Cloud:

    Ir a la página Entornos

  2. Selecciona tu entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el elemento Recursos > Configuración de cargas de trabajo (Workloads configuration), haz clic en Editar (Edit).

  5. En el diálogo Configuración de las cargas de trabajo, en la sección Ajuste de escala automático de los trabajadores, ajusta los límites para los trabajadores de Airflow:

    • En el campo Cantidad mínima de trabajadores, especifica la cantidad de trabajadores de Airflow que tu entorno debe ejecutar en todo momento. La cantidad de trabajadores en tu entorno no es inferior a esta cantidad, incluso si una cantidad menor de trabajadores puede manejar la carga.

    • En el campo Cantidad máxima de trabajadores, especifica la cantidad máxima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores en tu entorno no supera esta cantidad, incluso si se requiere una mayor cantidad de trabajadores para manejar la carga.

  6. Haz clic en Guardar.

gcloud

Ejecuta el siguiente comando de Google Cloud CLI:

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • WORKERS_MIN por la cantidad mínima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores de tu entorno no es inferior a esta cantidad, incluso si una cantidad menor de trabajadores puede manejar la carga.
  • WORKERS_MAX por la cantidad máxima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores en tu entorno no supera esta cantidad, incluso si se requiere una mayor cantidad de trabajadores para manejar la carga.

Ejemplo:

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

API

  1. Realiza una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount.

    2. En el cuerpo de la solicitud, en los campos minCount y maxCount, especifica los límites nuevos para los trabajadores.

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

Reemplaza lo siguiente:

  • WORKERS_MIN por la cantidad mínima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores de tu entorno no es inferior a esta cantidad, incluso si una cantidad menor de trabajadores puede manejar la carga.
  • WORKERS_MAX por la cantidad máxima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores en tu entorno no supera esta cantidad, incluso si se requiere una mayor cantidad de trabajadores para manejar la carga.

Ejemplo:

// 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

En los campos min_count y max_count del bloque workloadsConfig.worker, se especifica la cantidad mínima y máxima de trabajadores en tu entorno:

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

  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • WORKERS_MIN por la cantidad mínima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores de tu entorno no es inferior a esta cantidad, incluso si una cantidad menor de trabajadores puede manejar la carga.
  • WORKERS_MAX por la cantidad máxima de trabajadores de Airflow que tu entorno puede ejecutar. La cantidad de trabajadores en tu entorno no supera esta cantidad, incluso si se requiere una mayor cantidad de trabajadores para manejar la carga.

Ejemplo:

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

  config {

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

  }
}

Ajusta la cantidad de programadores

Tu entorno puede ejecutar más de un programador de Airflow al mismo tiempo. Usa varios programadores para distribuir la carga entre varias instancias del programador a fin de mejorar el rendimiento y la confiabilidad.

Puedes tener hasta 10 programadores en tu entorno.

Aumentar la cantidad de programadores no siempre mejora el rendimiento de Airflow. Por ejemplo, tener solo un programador puede proporcionar un mejor rendimiento que tener dos. Esto puede suceder cuando no se usa el programador adicional y, por lo tanto, consume recursos de tu entorno sin contribuir al rendimiento general. El rendimiento real del programador depende de la cantidad de trabajadores de Airflow, la cantidad de DAG y tareas que se ejecutan en tu entorno y la configuración de Airflow y el entorno.

Recomendamos comenzar con dos programadores y, luego, supervisar el rendimiento del entorno. Si cambias la cantidad de programadores, siempre puedes volver a escalar el entorno a la cantidad original.

Para obtener más información sobre la configuración de varios programadores, consulta la documentación de Airflow.

Para cambiar la cantidad de programadores de tu entorno, sigue estos pasos:

Console

  1. Ve a la página Entornos en la consola de Google Cloud:

    Ir a la página Entornos

  2. Selecciona tu entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el elemento Recursos > Configuración de cargas de trabajo (Workloads configuration), haz clic en Editar (Edit).

  5. En el cuadro de diálogo Configuración de cargas de trabajo (Workloads configuration), en la lista desplegable Cantidad de programadores, establece la cantidad de programadores de tu entorno.

  6. Haz clic en Guardar.

gcloud

Ejecuta el siguiente comando de Google Cloud CLI:

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • SCHEDULER_COUNT por la cantidad de programadores.

Ejemplo:

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

API

  1. Crea una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.softwareConfig.workloadsConfig.scheduler.

    2. En el cuerpo de la solicitud, en el campo count, especifica la cantidad de programadores.

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

Reemplaza lo siguiente:

  • SCHEDULER_COUNT por la cantidad de programadores.

Ejemplo:

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

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

Terraform

El campo count en el bloque workloads_config.scheduler especifica la cantidad de programadores en el entorno.

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

  config {

    workloads_config {
      scheduler {
        count = SCHEDULER_COUNT
      }
    }

  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • SCHEDULER_COUNT por la cantidad de programadores.

Ejemplo:

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

  config {

    workloads_config {

      scheduler {
        count = 2
      }

    }
  }
}

Ajusta la cantidad de activadores

Puedes establecer la cantidad de activadores en cero, pero necesitas al menos una instancia de activador en tu entorno (o al menos dos en entornos de alta resiliencia) para usar operadores diferibles en tus DAG.

Según la configuración de resiliencia de tu entorno, existen diferentes configuraciones posibles para la cantidad de activadores:

  • Resiliencia estándar: puedes ejecutar hasta 10 activadores
  • Resiliencia alta: al menos 2 activadores, hasta un máximo de 10

Incluso si la cantidad de activadores se establece en cero, se crea una definición de Pod del activador y es visible en el clúster de tu entorno, pero no se ejecutan cargas de trabajo reales de activadores.

Si tienes más de cero activadores, se facturan con los SKU de Cloud Composer de Compute, al igual que otros componentes del entorno.

Console

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el elemento Recursos > Cargas de trabajo, haz clic en Editar. Se abrirá el panel Configuración de cargas de trabajo.

  5. En la sección Activador, usa el campo Cantidad de activadores para ingresar la cantidad de activadores de tu entorno.

    Si configuras al menos un activador para tu entorno, usa los campos CPU y Memoria a fin de configurar la asignación de recursos para tus activadores.

  6. Haz clic en Guardar y espera hasta que se actualice tu entorno.

gcloud

Ejecuta el siguiente comando de Google Cloud CLI:

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • TRIGGERER_COUNT por la cantidad de activadores

    • Para entornos de resiliencia estándar, usa un valor entre 0 y 10.
    • Para entornos de alta resiliencia, usa 0 o un valor entre 2 y 10.
  • TRIGGERER_CPU por la cantidad de CPU de un activador, en unidades de CPU virtual Esta marca es opcional; si no se proporciona, se usa el valor predeterminado de la CPU virtual 0.5. Valores permitidos: 0.5, 0.75, 1.

  • TRIGGERER_MEMORY por la cantidad de memoria para un activador Esta marca es opcional; si no se proporciona, se usa el valor predeterminado de 0.5 GB.

    La memoria mínima requerida es igual a la cantidad de CPU asignadas para los activadores. El valor máximo permitido es igual a la cantidad de CPU del activador multiplicada por 6.5.

    Por ejemplo, si estableces la marca --triggerer-cpu en 1, el valor mínimo para --triggerer-memory es 1 y el valor máximo es 6.5.

Ejemplos:

  • Se inhabilitaron los activadores mediante la configuración del recuento de activadores en 0. Esta operación no requiere especificar la CPU o la memoria para los activadores.

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 0
    
  • Escalamiento a varias instancias de activadores:

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

API

  1. Crea una solicitud a la API de environments.patch.

  2. En el parámetro de consulta updateMask, especifica la máscara config.workloadsConfig.triggerer.

  3. En el cuerpo de la solicitud, usa el siguiente objeto:

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

Reemplaza lo siguiente:

  • TRIGGERER_COUNT por la cantidad de activadores

    • Para entornos de resiliencia estándar, usa un valor entre 0 y 10.
    • Para entornos de alta resiliencia, usa 0 o un valor entre 2 y 10.

      Si usas al menos un activador, también debes especificar los valores para TRIGGERER_CPU y TRIGGERER_MEMORY:

      • Establece TRIGGERER_CPU en la cantidad de CPU para un activador, en unidades de CPU virtual. Valores permitidos: 0.5, 0.75, 1.

      • Establece TRIGGERER_MEMORY en la cantidad de memoria para un activador. La memoria mínima requerida es igual a la cantidad de CPU asignadas para los activadores. El valor máximo permitido es igual a la cantidad de CPU del activador multiplicada por 6.5.

        Por ejemplo, si configuras TRIGGERER_CPU como 1, el valor mínimo para TRIGGERER_MEMORY es 1 y el valor máximo es 6.5.

Ejemplos:

  • Se inhabilitaron los activadores mediante la configuración del recuento de activadores en 0. Esta operación no requiere especificar la CPU o la memoria para los activadores.

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 0
        }
      }
    }
    
  • Escalamiento a varias instancias de activadores:

    // 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

El campo count en el bloque workloads_config.triggerer especifica la cantidad de activadores en el entorno:

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
      }
    }

  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • TRIGGERER_COUNT por la cantidad de activadores

Ejemplo:

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

  config {

    workloads_config {

      triggerer {
        count = 1
      }

    }
  }
}

Ajustar los parámetros de escala y rendimiento de trabajadores, programadores, activadores y servidores web

Puedes especificar la cantidad de CPU, memoria y espacio en disco que usa tu entorno. De esta manera, puedes aumentar el rendimiento de tu entorno, además del escalamiento horizontal proporcionado mediante el uso de varios trabajadores y programadores.

Console

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el elemento Recursos > Cargas de trabajo, haz clic en Editar. Se abrirá el panel Configuración de cargas de trabajo.

  5. En las listas desplegables Cantidad de programadores y Cantidad de activadores, selecciona la cantidad de programadores y activadores de tu entorno.

  6. En el panel Configuración de cargas de trabajo, en los campos CPU, Memoria y Almacenamiento, se especifica la cantidad de CPU, memoria y almacenamiento para los programadores, el activador, el servidor web y los trabajadores de Airflow.

  7. Haz clic en Guardar.

gcloud

Los siguientes argumentos controlan los parámetros de CPU, memoria y espacio en el disco de los programadores, el servidor web y los trabajadores de Airflow. Cada programador y trabajador usa la cantidad especificada de recursos.

  • --scheduler-cpu especifica la cantidad de CPU para un programador de Airflow.
  • --scheduler-memory especifica la cantidad de memoria para un programador de Airflow.
  • --scheduler-storage especifica la cantidad de espacio en disco para un programador de Airflow.
  • --triggerer-cpu especifica la cantidad de CPU para un activador de Airflow. Valores permitidos: 0.5, 0.75, 1. Si deseas ajustar la CPU del activador, también se requieren las marcas --triggerer-memory y --triggerer-count.
  • --triggerer-memory especifica la cantidad de memoria para un activador de Airflow. Si deseas ajustar la memoria del activador, también se requieren las marcas --triggerer-cpu y --triggerer-count.

    La memoria mínima requerida es igual a la cantidad de CPU asignadas para los activadores. El valor máximo permitido es igual a la cantidad de CPU del activador multiplicada por 6.5.

    Por ejemplo, si estableces la marca --triggerer-cpu en 1, el valor mínimo para --triggerer-memory es 1 y el valor máximo es 6.5.

  • --web-server-cpu especifica la cantidad de CPU para el servidor web de Airflow.

  • --web-server-memory especifica la cantidad de memoria para el servidor web de Airflow.

  • --web-server-storage especifica la cantidad de espacio en disco para el servidor web de Airflow.

  • --worker-cpu especifica la cantidad de CPU para un trabajador de Airflow.

  • --worker-memory especifica la cantidad de memoria para un trabajador de Airflow.

  • --worker-storage especifica la cantidad de espacio en el disco para un trabajador de 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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • SCHEDULER_CPU por la cantidad de CPU para un programador, en unidades de CPU virtual.
  • SCHEDULER_MEMORY por la cantidad de memoria para un programador.
  • SCHEDULER_STORAGE por el tamaño del disco de un programador.
  • TRIGGERER_COUNT por la cantidad de activadores Este valor es obligatorio incluso si no quieres cambiar la cantidad actual de activadores y solo quieres ajustar su asignación de CPU o memoria.
  • TRIGGERER_CPU por la cantidad de CPU de un activador, en unidades de CPU virtual
  • TRIGGERER_MEMORY por la cantidad de memoria para un activador
  • WEB_SERVER_CPU por la cantidad de CPU para el servidor web, en unidades de CPU virtuales.
  • WEB_SERVER_MEMORY por la cantidad de memoria para el servidor web.
  • WEB_SERVER_STORAGE por la cantidad de memoria para el servidor web.
  • WORKER_CPU por la cantidad de CPU para un trabajador, en unidades de CPU virtual.
  • WORKER_MEMORY por la cantidad de memoria para un trabajador.
  • WORKER_STORAGE por el tamaño del disco de un trabajador.

Ejemplo:

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. Crea una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica los campos que deseas actualizar. Por ejemplo, para actualizar todos los parámetros de los programadores, especifica la máscara config.workloadsConfig.scheduler.cpu,config.workloadsConfig.scheduler.memoryGb,config.workloadsConfig.scheduler.storageGB.

    Cuando actualices los parámetros del activador, especifica la máscara config.workloadsConfig.triggerer. No se pueden especificar máscaras para parámetros individuales del activador.

    1. En el cuerpo de la solicitud, especifica los parámetros de escalamiento y rendimiento.
  "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
      }
    }
  }

Reemplaza lo siguiente:

  • SCHEDULER_CPU por la cantidad de CPU para un programador, en unidades de CPU virtual.
  • SCHEDULER_MEMORY por la cantidad de memoria para un programador, en GB.
  • SCHEDULER_STORAGE por el tamaño del disco de un programador, en GB.
  • TRIGGERER_COUNT por la cantidad de activadores Este parámetro es obligatorio incluso si no quieres cambiar la cantidad actual de activadores y solo quieres ajustar su asignación de CPU o memoria.
  • TRIGGERER_CPU por la cantidad de CPU de un activador, en unidades de CPU virtual Valores permitidos: 0.5, 0.75, 1.
  • TRIGGERER_MEMORY por la cantidad de memoria para un activador

    La memoria mínima requerida es igual a la cantidad de CPU asignadas para los activadores. El valor máximo permitido es igual a la cantidad de CPU del activador multiplicada por 6.5.

    Por ejemplo, si configuras TRIGGERER_CPU como 1, el valor mínimo para TRIGGERER_MEMORY es 1 y el valor máximo es 6.5.

  • WEB_SERVER_CPU por la cantidad de CPU para el servidor web, en unidades de CPU virtuales.

  • WEB_SERVER_MEMORY por la cantidad de memoria para el servidor web, en GB.

  • WEB_SERVER_STORAGE por el tamaño del disco del servidor web, en GB.

  • WORKER_CPU por la cantidad de CPU para un trabajador, en unidades de CPU virtual.

  • WORKER_MEMORY por la cantidad de memoria para un trabajador, en GB.

  • WORKER_STORAGE por el tamaño del disco de un trabajador, en GB.

Ejemplo:

// 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

Los siguientes bloques en el bloque workloadsConfig controlan los parámetros de CPU, memoria y espacio en disco de los programadores, el servidor web, los activadores y los trabajadores de Airflow. Cada programador, activador y trabajador usa la cantidad especificada de recursos.

  • El campo scheduler.cpu especifica la cantidad de CPU para un programador de Airflow.
  • El campo scheduler.memory_gb especifica la cantidad de memoria para un programador de Airflow.
  • El campo scheduler.storage_gb especifica la cantidad de espacio en el disco de un programador.
  • El campo triggerer.cpu especifica la cantidad de CPU para un activador de Airflow.
  • El campo triggerer.memory_gb especifica la cantidad de memoria para un activador de Airflow.
  • El campo web_server.cpu especifica la cantidad de CPU para el servidor web de Airflow.
  • El campo web_server.memory_gb especifica la cantidad de memoria para el servidor web de Airflow.
  • En el campo web_server.storage_gb, se especifica la cantidad de espacio en el disco para el servidor web de Airflow.
  • En el campo worker.cpu, se especifica la cantidad de CPU para un trabajador de Airflow.
  • En el campo worker.memory_gb, se especifica la cantidad de memoria para un trabajador de Airflow.
  • En el campo worker.storage_gb, se especifica la cantidad de espacio en el disco para un trabajador de 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
      }
    }

  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • SCHEDULER_CPU por la cantidad de CPU para un programador, en unidades de CPU virtual.
  • SCHEDULER_MEMORY por la cantidad de memoria para un programador, en GB.
  • SCHEDULER_STORAGE por el tamaño del disco de un programador, en GB.
  • TRIGGERER_CPU por la cantidad de CPU de un activador, en unidades de CPU virtual
  • TRIGGERER_MEMORY por la cantidad de memoria para un activador, en GB.
  • WEB_SERVER_CPU por la cantidad de CPU para el servidor web, en unidades de CPU virtuales.
  • WEB_SERVER_MEMORY por la cantidad de memoria para el servidor web, en GB.
  • WEB_SERVER_STORAGE por el tamaño del disco del servidor web, en GB.
  • WORKER_CPU por la cantidad de CPU para un trabajador, en unidades de CPU virtual.
  • WORKER_MEMORY por la cantidad de memoria para un trabajador, en GB.
  • WORKER_STORAGE por el tamaño del disco de un trabajador, en GB.

Ejemplo:

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

  }
}

Ajusta el tamaño del entorno

El tamaño del entorno controla los parámetros de rendimiento de la infraestructura administrada de Cloud Composer que incluye la base de datos de Airflow. Considera seleccionar un tamaño de entorno más grande si deseas ejecutar una gran cantidad de DAG y tareas.

Console

  1. Ve a la página Entornos en la consola de Google Cloud:

    Ir a la página Entornos

  2. Selecciona tu entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el elemento Recursos > Infraestructura principal, haz clic en Editar.

  5. En el cuadro de diálogo Infraestructura principal, en el campo Tamaño del entorno, especifica el tamaño del entorno.

  6. Haz clic en Guardar.

gcloud

El argumento --environment-size controla el tamaño del entorno:

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • ENVIRONMENT_SIZE por small, medium o large.

Ejemplo:

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

API

  1. Crea una solicitud a la API de environments.patch.

  2. En esta solicitud, realiza lo siguiente:

    1. En el parámetro updateMask, especifica la máscara config.environmentSize.

    2. En el cuerpo de la solicitud, especifica el tamaño del entorno.

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

Reemplaza lo siguiente:

  • ENVIRONMENT_SIZE por el tamaño del entorno, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM o ENVIRONMENT_SIZE_LARGE.

Ejemplo:

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

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

Terraform

El campo environment_size en el bloque config controla el tamaño del entorno:

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

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • ENVIRONMENT_SIZE por el tamaño del entorno, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM o ENVIRONMENT_SIZE_LARGE.

Ejemplo:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

¿Qué sigue?