Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se describe cómo realizar pruebas de conmutación por error de bases de datos y clústeres en entornos de alta resiliencia.
Las pruebas de conmutación por error de tu entorno simulan una interrupción completa de una zona en un centro de datos. En ese caso, puede que se produzca una interrupción zonal de un clúster y una interrupción zonal de una base de datos al mismo tiempo. Al realizar las dos pruebas de conmutación por error, puedes monitorizar cómo se lleva a cabo la conmutación por error en tu entorno de alta disponibilidad y comprobar cómo afecta a tus DAGs y tareas.
Antes de empezar
Para realizar pruebas de conmutación por error, tu cuenta de Google debe tener los siguientes roles y permisos:
Permiso de
composer.environments.update
. Consulta la página sobre el control de acceso con gestión de identidades y accesos para ver una lista de roles con este permiso.Administrador de clúster de Kubernetes Engine (
roles/container.clusterAdmin
) para ejecutar comandoskubectl
en el clúster del entorno. Como alternativa, puedes aprovisionar roles de control de acceso basado en roles (RBAC) de Kubernetes directamente en GKE.
Si usas redes autorizadas, debes ejecutar los comandos
kubectl
desde una máquina que pueda acceder al endpoint del plano de control del clúster de GKE. En función de cómo configures el acceso al endpoint del plano de control de tu entorno, puedes usar varias opciones. Para obtener más información, consulta Ejecutar comandos en un entorno de IP privada.
Comprobar que el entorno es correcto
Asegúrate de realizar pruebas de conmutación por error solo en entornos correctos. Para comprobar que tu entorno está en buen estado, sigue estos pasos:
En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
Vaya a la pestaña Monitorización.
Asegúrate de que todas las métricas de salud estén en verde.
Realizar una prueba de conmutación por error de la base de datos
Puedes realizar una prueba de conmutación por error de la base de datos, que simula una interrupción zonal, activándola con un comando de la CLI de Google Cloud. Por ejemplo, puedes hacerlo para medir el tiempo que tarda la base de datos de tu entorno en cambiar a otra zona.
Para realizar una prueba de conmutación por error de la base de datos en tu entorno, sigue estos pasos:
Asegúrate de que tu entorno esté en buen estado.
Obtén la zona principal de la base de datos de tu entorno:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno de Cloud Composer.LOCATION
: la región en la que se encuentra el entorno.
Ejemplo:
gcloud composer environments fetch-database-properties \ example-environment \ --location us-central1
Inicia la prueba de conmutación por error de la base de datos:
gcloud composer environments database-failover \ ENVIRONMENT_NAME \ --location LOCATION
Haz los cambios siguientes:
ENVIRONMENT_NAME
: el nombre de tu entorno de Cloud Composer.LOCATION
: la región en la que se encuentra el entorno.
Ejemplo:
gcloud composer environments database-failover \ example-environment \ --location us-central1
Espera a que finalice la prueba de conmutación por error de la base de datos. El proceso puede tardar hasta 3 minutos.
Comprueba que la zona principal de la base de datos de tu entorno ha cambiado:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Consulta las métricas de salud de tu entorno para asegurarte de que está en buen estado.
La base de datos de tu entorno estará lista para otra conmutación por error cuando la métrica del entorno Base de datos disponible para conmutación por error (
composer.googleapis.com/environment/database/available_for_failover
) pase aTrue
. Para obtener más información sobre cómo ver las métricas de tu entorno en Cloud Monitoring, consulta el artículo Monitorizar entornos.
Realizar la prueba de conmutación por error del clúster de tu entorno
Puedes realizar una prueba de conmutación por error del clúster de tu entorno, que simula una interrupción zonal. Por ejemplo, puede que quieras hacerlo para medir el tiempo que tarda tu entorno en cambiar a otra zona.
Comprobar que el entorno es correcto
Antes de empezar la prueba, asegúrate de que tu entorno esté en buen estado.
Configurar las credenciales del clúster de tu entorno
Para obtener las credenciales del clúster, sigue estos pasos:
En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
Haz clic en Ver detalles del clúster.
Haz clic en Connect (Conectar).
Copia y ejecuta el comando de Google Cloud CLI que se muestra.
Por ejemplo:
gcloud container clusters get-credentials \ us-central1-exam-db23ee12-gke \ --region us-central1 \ --project example-project
Inspeccionar el clúster de tu entorno
Consulta las zonas y los nodos en los que se ejecutan las cargas de trabajo del clúster de tu entorno. Utiliza esta información para simular una interrupción zonal más adelante. También puedes volver a ejecutar estos comandos mientras realizas la prueba de conmutación por error para ver cómo lleva a cabo la conmutación por error el clúster de tu entorno.
Comprueba los nodos y las zonas:
kubectl get nodes \ -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
Comprueba los pods:
kubectl get pods --all-namespaces \ -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName \ --field-selector metadata.namespace!=kube-system
Para ver información más detallada sobre los pods, haz lo siguiente:
kubectl get pods --all-namespaces -o wide \ --field-selector metadata.namespace!=kube-system
Drenar nodos
Elige una zona en la que quieras simular un corte. Si realizas la prueba de conmutación por error del clúster junto con la prueba de conmutación por error de la base de datos,
puedes elegir la zona principal de la instancia de Cloud SQL de alta disponibilidad de tu entorno.
Por ejemplo, si la instancia principal de Cloud SQL se ejecuta en us-central1-a
, puedes simular una interrupción en toda la zona us-central1-a
. Para ello, primero realiza la prueba de conmutación por error de la base de datos y, después, la prueba de conmutación por error del clúster en us-central1-a
.
El siguiente comando simula que un conjunto de nodos deja de estar disponible en una zona específica. Fuerza la expulsión de los pods de los nodos de la zona especificada e impide que se vuelvan a programar en esos nodos. Como no se pueden programar nuevos pods, se añaden nuevos nodos al clúster.
Este comando no afecta a las cargas de trabajo que se ejecutan en el espacio de nombres composer-system
. Es posible que veas mensajes de error relacionados en el resultado del comando. Esto no afecta a la prueba de conmutación por error. Los nodos que existen en la zona seleccionada
siguen marcados como no programables.
Para simular un fallo de zona de clúster en la zona seleccionada, haz lo siguiente:
kubectl get nodes -o name -l "topology.gke.io/zone=ZONE" | \
xargs kubectl drain \
--ignore-daemonsets --delete-emptydir-data --force --disable-eviction
Haz los cambios siguientes:
ZONE
: la zona en la que quieres simular un fallo de zona de clúster.
Consultar las métricas del entorno

En la Google Cloud consola, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.
Vaya a la pestaña Monitorización.
Comprueba que las siguientes métricas tengan el estado "verde" durante la operación de conmutación por error o que mantengan el estado "rojo" durante varios minutos como máximo.
- Estado del entorno
- Señal de latido del programador
- Estado del servidor web
- Estado de la base de datos
- Trabajadores activos
- Programadores activos
- Servidores web activos
- Activadores activos
Ten en cuenta que la interrupción simulada se marca como "Operación de mantenimiento del clúster".
No tienes que hacer nada más para que el clúster de tu entorno vuelva a estar preparado para la conmutación por error después de la prueba. Durante la prueba, el clúster del entorno añade automáticamente nodos nuevos que sustituyen a los afectados por la interrupción simulada.