Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Cette page explique comment effectuer des tests de basculement de base de données et de cluster pour les environnements à haute résilience.
Les tests de basculement pour votre environnement simulent une panne complète d'une zone dans un centre de données. Dans ce cas, une panne zonale d'un cluster et une panne zonale d'une base de données peuvent se produire en même temps. En effectuant les deux tests de basculement, vous pouvez surveiller la façon dont votre environnement à haute résilience effectue 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 Google doit disposer des rôles et autorisations suivants :
Autorisation
composer.environments.update
. Pour obtenir la liste des rôles disposant de cette autorisation, consultez Contrôle des accès avec IAM.Le rôle Administrateur de cluster Kubernetes Engine (
roles/container.clusterAdmin
) est nécessaire pour exécuter les commandeskubectl
sur le cluster de l'environnement. Vous pouvez également provisionner des rôles Kubernetes RBAC directement dans GKE.
Si vous utilisez des réseaux autorisés, vous devez 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 sur un environnement d'adresse IP privée.
Vérifier que votre environnement est sain
Veillez à n'effectuer des tests de basculement que sur des environnements opérationnels. Pour vérifier que votre environnement est opérationnel :
Dans la console Google Cloud , accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Surveillance.
Assurez-vous que toutes les métriques d'état sont vertes.
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 zonale, en le déclenchant avec une commande Google Cloud CLI. Par exemple, vous pouvez le faire pour mesurer le temps nécessaire à la base de données de votre environnement pour passer à une autre zone.
Pour effectuer un test de basculement de base de données pour votre environnement :
Assurez-vous que votre environnement est opérationnel.
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 où se trouve l'environnement.
Exemple :
gcloud composer environments fetch-database-properties \ example-environment \ --location us-central1
Démarrez le test de basculement de la 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 où se trouve l'environnement.
Exemple :
gcloud composer environments database-failover \ example-environment \ --location us-central1
Attendez la fin du test de basculement de la base de données. Cette opération peut prendre jusqu'à trois minutes.
Vérifiez que la zone principale de la base de données de votre environnement a été modifiée :
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Vérifiez les métriques d'état de votre environnement pour vous assurer qu'il est opérationnel.
La base de données de votre environnement est prête pour un autre basculement lorsque la métrique d'environnement Base de données disponible pour le basculement (
composer.googleapis.com/environment/database/available_for_failover
) devientTrue
. Pour savoir comment afficher les métriques de votre environnement dans Cloud Monitoring, consultez Surveiller les environnements.
Effectuer le test de basculement du cluster de votre environnement
Vous pouvez effectuer un test de basculement pour le cluster de votre environnement, qui simule une défaillance zonale. Par exemple, vous pouvez le faire pour mesurer le temps nécessaire à votre environnement pour passer à une autre zone.
Vérifier que votre environnement est sain
Avant de commencer le test, assurez-vous que votre environnement est sain.
Configurer les identifiants pour le cluster de votre environnement
Pour obtenir les identifiants du cluster :
Dans la console Google Cloud , accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Cliquez sur Afficher les détails du cluster.
Cliquez sur Se connecter.
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
Examiner le cluster de votre environnement
Vérifiez les zones et les nœuds sur lesquels les charges de travail s'exécutent dans le cluster de votre environnement. Vous utiliserez ces informations pour simuler une panne de zone ultérieurement. Vous pouvez également exécuter à nouveau ces commandes pendant le test de basculement pour voir comment le cluster de votre environnement effectue le basculement.
Vérifiez les nœuds et les zones :
kubectl get nodes \ -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
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
Pour afficher des informations plus détaillées sur les pods :
kubectl get pods --all-namespaces -o wide \ --field-selector metadata.namespace!=kube-system
Drainer les nœuds
Choisissez une zone dans laquelle vous souhaitez simuler une panne. Si vous effectuez le test de basculement du cluster en même temps que le test de basculement de la base de données, vous pouvez choisir la zone principale de l'instance Cloud SQL à haute disponibilité de votre environnement.
Par exemple, si l'instance Cloud SQL principale s'exécute dans us-central1-a
, vous pouvez simuler une panne dans toute la zone us-central1-a
en effectuant d'abord le test de basculement de la base de données, puis le test de basculement du cluster dans us-central1-a
.
La commande suivante simule l'indisponibilité d'un ensemble de nœuds dans une zone spécifique. Il évince de force les pods des nœuds de la zone spécifiée et empêche la replanification des pods sur ces nœuds. Comme de nouveaux pods ne peuvent pas être planifiés, de nouveaux nœuds sont ajoutés au cluster.
Cette commande n'affecte pas les charges de travail qui s'exécutent dans l'espace de noms composer-system
. Des messages d'erreur associés peuvent s'afficher dans le résultat de la commande. Cela n'affecte pas le test de basculement. Les nœuds qui existent dans la zone sélectionnée sont toujours marqués comme non planifiables.
Pour simuler une défaillance de 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

Dans la console Google Cloud , accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Surveillance.
Vérifiez que les métriques suivantes sont "vertes" pendant l'opération de basculement ou qu'elles restent "rouges" 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'indisponibilité simulée est marquée comme une "opération de maintenance du cluster".
Vous n'avez aucune action supplémentaire à effectuer pour que le cluster de votre environnement soit prêt pour le basculement après le test. Pendant le test, le cluster de l'environnement ajoute automatiquement de nouveaux nœuds qui remplacent ceux affectés par la panne simulée.
Étapes suivantes
- Créer des environnements
- Surveiller des environnements
- Reprise après sinistre avec des instantanés d'environnement