Realiza pruebas de conmutación por error para entornos de Cloud Composer altamente resilientes

Cloud Composer 1 | Cloud Composer 2

En esta página, se describe cómo realizar pruebas de conmutación por error de bases de datos y clústeres para entornos de Cloud Composer altamente resilientes.

Las pruebas de conmutación por error para tu entorno simulan una interrupción completa de una zona en un centro de datos. En esa situación, una interrupción zonal de un clúster y una interrupción zonal de una base de datos pueden ocurrir al mismo tiempo. Cuando realizas las dos pruebas de conmutación por error, puedes supervisar cómo tu entorno de alta resiliencia realiza una conmutación por error y verificar cómo esto afecta a tus DAG y tareas.

Antes de comenzar

  • Para realizar pruebas de conmutación por error, tu cuenta debe tener los siguientes permisos y funciones:

    • composer.environments.update. Consulta Control de acceso con la IAM para obtener una lista de las funciones con este permiso.

    • La función de administrador de clústeres de Kubernetes Engine (roles/container.clusterAdmin) para ejecutar comandos kubectl en el clúster del entorno. Como alternativa, puedes aprovisionar funciones de RBAC de Kubernetes directamente en GKE.

  • Si usas redes autorizadas, debes ejecutar comandos de 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 la base de datos y del entorno solo en entornos en buen estado.

Para comprobar que tu entorno esté en buen estado, haz lo siguiente:

  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 Supervisión.

  4. Asegúrate de que todas las métricas de salud estén en verde.

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, aplicándola con un comando de Google Cloud CLI. Por ejemplo, es posible que desees hacerlo para medir la cantidad de tiempo que tarda la base de datos de tu entorno en cambiar a otra zona.

Si quieres realizar una prueba de conmutación por error para la base de datos en tu entorno, sigue estos pasos:

  1. Asegúrate de que tu entorno esté en buen estado.

  2. 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
    
  3. 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
    
  4. Espera hasta que finalice la prueba de conmutación por error de la base de datos. El proceso puede tardar hasta 3 minutos.

  5. Verifica que se haya cambiado la zona principal de la base de datos de tu entorno:

    gcloud composer environments fetch-database-properties \
        ENVIRONMENT_NAME \
        --location LOCATION
    
  6. Verifica las métricas de estado de tu entorno para asegurarte de que esté en buen estado.

  7. La base de datos del 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) cambie a True. 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, que simula una interrupción zonal. Por ejemplo, se recomienda que lo hagas para medir la cantidad de tiempo que tarda tu entorno en cambiar a otra zona.

Verifica que tu entorno esté en buen estado

Antes de comenzar la prueba, asegúrate de que tu entorno esté en buen estado.

Configura las credenciales para el clúster de tu entorno

Para obtener las credenciales del clúster, haz lo siguiente:

  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. Haz clic en Ver detalles del clúster.

  5. Haz clic en Conectar.

  6. 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 la realiza el clúster de tu entorno.

  1. Verifica los nodos y las zonas:

    kubectl get nodes \
      -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
    
  2. 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
    
  3. Consulta información más detallada sobre los Pods:

    kubectl get pods --all-namespaces -o wide \
    --field-selector metadata.namespace!=kube-system
    

Desvío de nodos

Elige una zona en la que desees 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 con 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, luego, la prueba de conmutación por error del clúster en us-central1-a.

El siguiente comando simula un conjunto de nodos que no están disponibles en una zona específica. Expulsa de manera forzosa los Pods de los nodos en la zona especificada y evita la reprogramación de Pods en estos nodos. Debido a que no se pueden programar Pods nuevos, se agregan nodos nuevos al clúster.

Este comando no afecta 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 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 zona del clúster en la zona seleccionada, ejecuta el siguiente comando:

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 la zona del clúster.

Verifica las métricas del entorno

Métricas del entorno durante una interrupción en una zona simulada
Figura 1. Métricas del entorno durante una interrupción en una zona simulada (haz clic para ampliar)
  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 Supervisión.

  4. Verifica que las siguientes métricas estén en “verde” durante la operación de conmutación por error o permanezcan en estado “rojo” durante varios minutos como máximo.

    • 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 “Operación de mantenimiento del clúster”.

  5. No necesitas realizar ninguna acción adicional para que el clúster de tu entorno esté listo para la conmutación por error después de la prueba. Durante la prueba, el clúster del entorno agrega de forma automática nodos nuevos que reemplazan a los afectados por la interrupción simulada.

¿Qué sigue?