Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página, se describe cómo configurar entornos de Cloud Composer altamente resilientes (de alta disponibilidad).
Acerca de los entornos altamente resilientes (con alta disponibilidad)
Un entorno altamente resiliente es multizonal y se ejecuta en al menos dos zonas de una región seleccionada. Cloud Composer distribuye automáticamente los componentes de tu entorno entre las zonas.
Por ejemplo, una interrupción zonal interrumpe las tareas de Airflow que se ejecutan en una zona específica. Luego, se recupera un entorno altamente resiliente, se reinician sus componentes afectados en una zona diferente y se cambia su base de datos a una zona secundaria. Por lo tanto, Airflow puede reprogramar y reiniciar las tareas fallidas, y, al mismo tiempo, conservar el historial de las ejecuciones del DAG y otros parámetros de configuración.
Acerca de la base de datos con alta disponibilidad de tu entorno
En los entornos de Cloud Composer con alta disponibilidad, el componente de Cloud SQL que almacena la base de datos de tu entorno se ejecuta en el modo de alta disponibilidad. Una instancia principal y una instancia en espera de Cloud SQL se distribuyen entre zonas.
En caso de interrupción, la instancia de Cloud SQL de tu entorno realiza la conmutación por error automática de la base de datos a la instancia de Cloud SQL en espera. No es necesario que realices ninguna acción adicional en tu entorno de Cloud Composer. Una vez que la zona principal vuelve a estar operativa, el entorno vuelve a tener dos zonas (principal y secundaria). En algunos casos, se pueden intercambiar las zonas principal y secundaria. La instancia de Cloud SQL en modo de alta disponibilidad usa la misma dirección IP después de una conmutación por error.
Acerca de los componentes de Airflow con alta disponibilidad
Un entorno altamente resiliente es multizonal y se ejecuta en al menos dos zonas de una región seleccionada. Los siguientes componentes se ejecutan en zonas separadas:
Exactamente dos programadores de Airflow
Al menos dos activadores (si la cantidad de activadores no se establece en cero)
Al menos dos procesadores de DAG
Dos servidores web
La cantidad mínima de trabajadores se establece en dos, y el clúster de tu entorno distribuye las instancias de trabajador entre las zonas. En caso de una interrupción zonal, las instancias de trabajador afectadas se reprograman en una zona diferente.
Para obtener más información sobre la arquitectura de los entornos altamente resilientes, consulta Arquitectura de entornos altamente resilientes.
Antes de comenzar
-
En Cloud Composer 3, la alta resiliencia está disponible tanto para los entornos de IP privada como para los de IP pública.
Los entornos altamente resilientes ejecutan componentes de entorno adicionales. Esto genera mayores costos en comparación con los entornos normales.
Si deseas actualizar un entorno estándar a uno altamente resiliente, asegúrate de que cumpla con los siguientes requisitos de configuración. Si tu entorno no cumple con estos requisitos, puedes actualizar sus parámetros de escalamiento y rendimiento.
- La cantidad mínima de trabajadores de Airflow es de dos o más.
La cantidad de programadores de Airflow es exactamente dos.
Al menos dos procesadores de DAG
Si usas operadores diferibles en tus DAGs, necesitarás al menos dos activadores.
Crea un entorno altamente resiliente
Para crear un entorno altamente resiliente, habilita el modo de resiliencia alta cuando crees un entorno.
Actualiza un entorno estándar al modo de alta resiliencia
Console
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Selecciona la pestaña Configuración del entorno.
En la sección Modo de resiliencia, haz clic en Editar.
Selecciona Alta capacidad de recuperación y haz clic en Guardar.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-high-resilience
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.
API
Realiza una solicitud a la API de
environments.patch
.En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask
, especifica la máscaraconfig.resilienceMode
.En el cuerpo de la solicitud, especifica
HIGH_RESILIENCE
para cambiar al modo de alta resiliencia.
Ejemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "HIGH_RESILIENCE" }
}
}
Terraform
El campo resilience_mode
en el bloque config
especifica el modo de resiliencia. Para usar el modo de alta resiliencia, establece este valor en HIGH_RESILIENCE
.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.
Ejemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
}
Cómo cambiar un entorno altamente resiliente al modo de resiliencia estándar
Puedes cambiar tu entorno al modo de resiliencia estándar en cualquier momento. Esta operación:
- Reduce la cantidad de servidores web de tu entorno a uno.
- Desactiva el modo de alta disponibilidad de la base de datos de Airflow de tu entorno.
No cambia la configuración de la cantidad mínima de trabajadores, programadores o activadores de Airflow.
Console
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Selecciona la pestaña Configuración del entorno.
En la sección Modo de resiliencia, haz clic en Editar.
Selecciona Resistencia estándar (predeterminada) y haz clic en Guardar.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-high-resilience
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: El nombre de tu entorno de Cloud ComposerLOCATION
: Es la región en la que se encuentra el entorno.
API
Realiza una solicitud a la API de
environments.patch
.En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask
, especifica la máscaraconfig.resilienceMode
.En el cuerpo de la solicitud, especifica
RESILIENCE_MODE_UNSPECIFIED
para cambiar al modo de resiliencia estándar.
Ejemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
}
}
Terraform
El campo resilience_mode
en el bloque config
especifica el modo de resiliencia. Para usar el modo de resiliencia estándar, establece este valor en STANDARD_RESILIENCE
.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno.LOCATION
: Es la región en la que se encuentra el entorno.
Ejemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
Verifica si tu entorno se ejecuta en el modo de alta resiliencia
Console
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Selecciona la pestaña Configuración del entorno.
En la sección Modo de resiliencia, consulta el modo de resiliencia de tu entorno.
gcloud
Para verificar si el modo de alta resiliencia está habilitado en tu entorno, ejecuta el siguiente comando de Google Cloud CLI. El valor de True
significa que el modo de alta resiliencia está habilitado en tu entorno.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.resilienceMode)"
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: El nombre de tu entorno de Cloud ComposerLOCATION
: Es la región en la que se encuentra el entorno.
¿Qué sigue?
- Realiza pruebas de conmutación por error para tu entorno altamente resiliente.
- Recuperación ante desastres con instantáneas de entorno