Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se describe cómo realizar pruebas de conmutación por error de bases de datos y clústeres para entornos altamente resilientes.
Las pruebas de conmutación por error para su entorno simulan una interrupción completa de una zona en una centro de datos de la empresa. En este caso, una interrupción zonal de un clúster y una zona la interrupción de una base de datos puede ocurrir al mismo tiempo. Si realizas las dos de conmutación por error, puedes supervisar el rendimiento de tu entorno de alta resiliencia una conmutación por error y compruebe cómo esto afecta sus DAG y tareas.
Antes de comenzar
Para realizar pruebas de conmutación por error, tu cuenta debe tener las siguientes funciones y permisos:
composer.environments.update
permiso Consulta Control de acceso con IAM para obtener una lista de los roles con este permiso.El rol de Administrador de clústeres de Kubernetes Engine (
roles/container.clusterAdmin
) para ejecutar comandoskubectl
en el clúster del entorno Como alternativa, puedes aprovisionar roles de RBAC de Kubernetes directamente en GKE.
Si usas redes autorizadas, debes ejecutar los comandos
kubectl
desde una máquina que pueda acceder al extremo del plano de control del clúster de GKE. Según cómo configures el acceso al extremo del plano de control de tu entorno, puedes usar varias opciones. Para obtener más información, consulta Ejecuta comandos en un entorno de IP privada.
Verifica que tu entorno esté en buen estado
Asegúrate de realizar pruebas de conmutación por error de clústeres de la base de datos y del entorno solo en en entornos saludables.
Para verificar que tu entorno esté en buen estado, haz lo siguiente:
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.
Ve a la pestaña Monitoring.
Asegúrate de que todas las métricas de estado sean verdes.
Realiza 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, activando la prueba con un comando de Google Cloud CLI. Por ejemplo, es posible que quieras hazlo para medir cuánto tiempo tarda la base de datos de tu entorno cambiar a otra zona.
Sigue estos pasos para realizar una prueba de conmutación por error de la base de datos para tu entorno:
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
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno de Cloud Composer.LOCATION
: Es 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
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre de tu entorno de Cloud Composer.LOCATION
: Es 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 a 3 minutos.
Verifica que la zona principal de la base de datos de tu entorno esté modificada:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Verifica las métricas de estado de tu entorno para asegurarte de que de que tu entorno esté en buen estado.
La base de datos de tu entorno estará lista para otra conmutación por error cuando la base de datos disponible para la conmutación por error (
composer.googleapis.com/environment/database/available_for_failover
) de entorno se convierte enTrue
. Para obtener más información sobre cómo ver las métricas de tu entorno en Cloud Monitoring, consulta Supervisa entornos.
Realiza la prueba de conmutación por error del clúster de tu entorno
Puedes realizar una prueba de conmutación por error para el clúster de tu entorno, lo cual se simula una interrupción zonal. Por ejemplo, puedes hacerlo para medir el tiempo que tarda tu entorno en cambiar a otra zona.
Comprueba que tu entorno esté en buen estado
Antes de comenzar la prueba, asegúrate de lo siguiente: de que tu entorno esté en buen estado.
Configura las credenciales del clúster de tu entorno
Para obtener credenciales del clúster, haz lo siguiente:
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.
Ve a la pestaña Configuración del entorno.
Haz clic en Ver detalles del clúster.
Haz clic en 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
Inspecciona el clúster de tu entorno
Verifica las zonas y los nodos en los que se ejecutan las cargas de trabajo en el clúster de tu entorno. Usarás 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 el clúster de tu entorno realiza la conmutación por error.
Verifica los nodos y las zonas:
kubectl get nodes \ -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
Verifica 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
Consulta información más detallada sobre los pods:
kubectl get pods --all-namespaces -o wide \ --field-selector metadata.namespace!=kube-system
Desvía los nodos
Elige una zona en la que quieras simular una interrupción. 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, te recomendamos que elijas 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 de us-central1-a
. Para ello, primero realiza la prueba de conmutación por error de la base de datos y, luego, 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. Expulsa de forma forzosa los Pods de los nodos de la zona especificada y preventa la reprogramación de Pods en estos nodos. Debido a que los Pods nuevos no pueden programado, se agregan nodos nuevos 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. Esta
no afecta la prueba de conmutación por error. Los nodos que existen en la zona seleccionada aún se marcan como no programables.
Para simular una falla de la zona del 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
Reemplaza lo siguiente:
ZONE
: Es la zona en la que deseas simular una falla de zona del clúster.
Verifica las métricas del entorno
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.
Ve a la pestaña Monitoring.
Verifica que las siguientes métricas sean "verdes" durante la operación de resguardo o que permanezcan en el estado "rojo" durante, como máximo, varios minutos.
- Estado del entorno
- Señal de monitoreo de funcionamiento 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 una “operación de mantenimiento del clúster”.
No es necesario que realices ninguna acción adicional para mostrar del clúster a la preparación para la conmutación por error después de la prueba. Durante la prueba, el clúster del entorno agrega automáticamente nodos nuevos que reemplazan a los afectados por la interrupción simulada.