Effectuer des tests de basculement pour les environnements hautement résilients

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment effectuer des tests de basculement de base de données et de clusters pour environnements hautement résilients.

Les tests de basculement de votre environnement simulent l'indisponibilité complète d'une zone dans un dans un centre de données. Dans un tel scénario, une panne zonale d'un cluster et une défaillance de zone une panne d’une base de données peut se produire en même temps. En effectuant les deux de basculement, vous pouvez surveiller les performances de votre environnement un basculement et vérifier son impact sur vos DAG et vos tâches.

Avant de commencer

  • Pour effectuer des tests de basculement, votre compte doit disposer des rôles et autorisations suivants:

    • Autorisation composer.environments.update. Voir Contrôle des accès avec IAM pour obtenir la liste des rôles disposant de cette autorisation.

    • Administrateur de cluster Kubernetes Engine (roles/container.clusterAdmin) pour exécuter des commandes kubectl sur le cluster de l'environnement. En tant que vous pouvez provisionner Rôles Kubernetes RBAC directement dans dans GKE.

  • Si vous utilisez des réseaux autorisés et que vous doit exécuter les commandes kubectl à partir d'une machine pouvant accéder au point de terminaison du plan de contrôle du cluster GKE. Selon la façon dont vous configurez l'accès au point de terminaison du plan de contrôle de votre environnement, vous pouvez utiliser plusieurs options. Pour en savoir plus, consultez Exécuter des commandes dans un environnement IP privé

Vérifier que votre environnement est opérationnel

Assurez-vous d'effectuer les tests de basculement de la base de données et du cluster de l'environnement uniquement sur dans des environnements sains.

Pour vérifier que votre environnement est opérationnel:

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Surveillance.

  4. Vérifiez que tous les indicateurs de santé sont en vert.

Effectuer un test de basculement de base de données

Vous pouvez effectuer un test de basculement de base de données, qui simule une panne de zone, en à l'aide d'une commande Google Cloud CLI. Par exemple, vous pouvez pour mesurer le temps nécessaire à la base de données de votre environnement pour changer de zone.

Pour effectuer un test de basculement de base de données pour votre environnement:

  1. Assurez-vous que votre environnement est sain.

  2. Obtenez la zone principale de la base de données de votre environnement:

    gcloud composer environments fetch-database-properties \
        ENVIRONMENT_NAME \
        --location LOCATION
    

    Remplacez les éléments suivants :

    • ENVIRONMENT_NAME: nom de votre environnement Cloud Composer.
    • LOCATION: région dans laquelle se trouve l'environnement.

    Exemple :

    gcloud composer environments fetch-database-properties \
        example-environment \
        --location us-central1
    
  3. Démarrez le test de basculement de base de données:

    gcloud composer environments database-failover \
        ENVIRONMENT_NAME \
        --location LOCATION
    

    Remplacez les éléments suivants :

    • ENVIRONMENT_NAME: nom de votre environnement Cloud Composer.
    • LOCATION: région dans laquelle se trouve l'environnement.

    Exemple :

    gcloud composer environments database-failover \
        example-environment \
        --location us-central1
    
  4. Attendez la fin du test de basculement de base de données. Le processus peut prendre à trois minutes.

  5. Vérifiez que la zone principale de la base de données de votre environnement a bien été modifiée:

    gcloud composer environments fetch-database-properties \
        ENVIRONMENT_NAME \
        --location LOCATION
    
  6. Vérifiez les métriques d'état de votre environnement que votre environnement est sain.

  7. La base de données de votre environnement est prête pour un autre basculement lorsque la section Base de données disponible pour le basculement. (composer.googleapis.com/environment/database/available_for_failover) devient True. Pour en savoir plus sur l'affichage de vos de votre environnement dans Cloud Monitoring, consultez Surveillez les environnements.

Effectuez le test de basculement du cluster de votre environnement

Vous pouvez effectuer un test de basculement pour le cluster de votre environnement, ce qui simule une panne de zone. Par exemple, vous pouvez mesurer le temps qu'il faut à votre environnement pour changer de zone.

Vérifier que votre environnement est opérationnel

Avant de commencer le test, assurez-vous que que votre environnement est sain.

Configurer les identifiants pour le cluster de votre environnement

Pour obtenir les identifiants du cluster:

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Cliquez sur Afficher les détails du cluster.

  5. Cliquez sur Se connecter.

  6. Copiez et exécutez la commande Google Cloud CLI affichée.

    Exemple :

    gcloud container clusters get-credentials \
      us-central1-exam-db23ee12-gke \
      --region us-central1 \
      --project example-project
    

Inspecter le cluster de votre environnement

Vérifiez les zones et les nœuds où les charges de travail s'exécutent dans le cluster de votre environnement. Vous utiliserez ces informations ultérieurement pour simuler une panne de zone. Vous pouvez également exécuter ces commandes pendant que vous effectuez le test de basculement le cluster de l'environnement Google Cloud effectue le basculement.

  1. Vérifiez les nœuds et les zones:

    kubectl get nodes \
      -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
    
  2. Vérifiez les 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. Affichez des informations plus détaillées sur les pods:

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

Nœuds de drainage

Choisissez une zone dans laquelle vous souhaitez simuler une indisponibilité. Si vous exécutez le cluster et le test de basculement de base de données. vous pouvez choisir la zone principale du réseau instance Cloud SQL à disponibilité élevée. Par exemple, si l'instance Cloud SQL principale s'exécute dans us-central1-a vous pouvez simuler une panne dans l'ensemble de la zone us-central1-a en commençant en effectuant le test de basculement de base de données, puis le test de basculement du cluster us-central1-a

La commande suivante simule l'indisponibilité d'un ensemble de nœuds dans un une zone spécifique. Elle évince de force les pods des nœuds dans la zone spécifiée et empêche la replanification des pods sur ces nœuds. Comme les nouveaux pods ne peuvent pas programmés, de nouveaux nœuds sont ajoutés au cluster.

Cette commande n'affecte pas les charges de travail exécutées dans composer-system espace de noms. Des messages d'erreur associés peuvent s'afficher dans le résultat de la commande. Ce n'affecte pas le test de basculement. Les nœuds qui existent dans la zone sélectionnée sont toujours marqués comme non programmables.

Pour simuler une défaillance d'une zone de cluster dans la zone sélectionnée:

kubectl get nodes -o name -l "topology.gke.io/zone=ZONE" | \
xargs kubectl drain \
--ignore-daemonsets --delete-emptydir-data --force --disable-eviction

Remplacez les éléments suivants :

  • ZONE: zone dans laquelle vous souhaitez simuler une défaillance de zone de cluster.

Vérifier les métriques d'environnement

<ph type="x-smartling-placeholder"></ph> Métriques d&#39;environnement pendant une interruption de zone simulée .
Figure 1. Métriques d'environnement pendant une interruption de zone simulée (cliquez pour agrandir)
<ph type="x-smartling-placeholder">
    </ph>
  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Surveillance.

  4. Vérifiez que les métriques suivantes sont en vert. pendant le basculement ou rester en "rouge" état pendant quelques minutes au maximum.

    • État de l'environnement
    • Pulsation du programmeur
    • État du serveur Web
    • État de la base de données
    • Nœuds de calcul actifs
    • Programmeurs actifs
    • Serveurs Web actifs
    • Déclencheurs actifs

    Notez que l'interruption simulée est marquée comme opération".

  5. Aucune autre action n'est requise de votre part pour renvoyer l'état l'état de préparation du cluster au basculement après le test. Pendant le test, le cluster de l'environnement ajoute automatiquement de nouveaux nœuds qui remplacent ceux affectées par la panne simulée.

Étape suivante