Realiza pruebas de conmutación por error para entornos de alta resiliencia

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Esta página describe cómo realizar pruebas de conmutación por error de base de datos y clúster para 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 la IAM para obtener una lista de los roles que tienen este permiso.

    • Administrador de clústeres de Kubernetes Engine (roles/container.clusterAdmin) para ejecutar comandos de kubectl en el clúster del entorno. Como alternativa, puedes aprovisionar Roles de RBAC de Kubernetes directamente en en GKE.

  • Si usas redes autorizadas, y tus ejecutar comandos kubectl desde una máquina que pueda acceder a la Extremo del plano de control del clúster de GKE. Según cómo configura el acceso al extremo del plano de control de tu entorno, puedes usan varias opciones. Para obtener más información, consulta Ejecuta comandos en un entorno de IP privada.

Comprueba 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:

  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 Monitoring.

  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, activarla con un comando de Google Cloud CLI. Por ejemplo, es posible que quieras hazlo para medir el tiempo que 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:

  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 a 3 minutos.

  5. 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
    
  6. Verifica las métricas de estado de tu entorno para asegurarte de que que su entorno esté en buen estado.

  7. 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 en True. Para obtener más información sobre cómo ver tu las métricas del 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, quizás quieras hacerlo para medir la de 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: que su entorno esté en buen estado.

Configura las credenciales para el clúster de tu entorno

Para obtener credenciales de clúster, sigue estos pasos:

  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 ejecutar estos comandos mientras realiza la prueba de conmutación por error para ver cómo de un entorno de Google Cloud realiza la conmutación por error.

  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
    

Desviar nodos

Elige una zona en la que deseas simular una interrupción. Si realizas el clúster junto con la prueba de conmutación por error de la base de datos. puedes elegir la zona principal de la red de tu entorno instancia de Cloud SQL con alta disponibilidad. Por ejemplo, si la instancia principal de Cloud SQL se ejecuta en us-central1-a Luego, puedes simular una interrupción en toda la zona us-central1-a realizar 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 un una zona específica. Expulsa de manera forzosa los Pods de los nodos en la zona especificada y impide 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 las cargas de trabajo que se ejecutan en composer-system. espacio de nombres. 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 siguen marcadas 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

Métricas del entorno durante una interrupción de zona simulada
Figura 1: Métricas del entorno durante una interrupción de 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 Monitoring.

  4. Verifica que las siguientes métricas estén "verdes" durante la conmutación por error operación o se mantendrá el color "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 “Mantenimiento del clúster”. de operaciones”.

  5. 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 el clúster del entorno agrega automáticamente nodos nuevos que reemplazan a los que afectadas por la interrupción simulada.

¿Qué sigue?