Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération héritée)
Cette page explique comment configurer des environnements Airflow gérés hautement résilients (à haute disponibilité).
À propos des environnements hautement résilients (à haute disponibilité)
Un environnement hautement résilient est multizonal et s'exécute sur au moins deux zones d'une région sélectionnée. Airflow géré distribue automatiquement les composants de votre environnement entre les zones.
Par exemple, une panne zonale interrompt les tâches Airflow qui s'exécutent dans une zone spécifique. Ensuite, un environnement hautement résilient récupère, redémarre ses composants concernés dans une autre zone et bascule sa base de données vers une zone secondaire. Ainsi, les tâches Airflow ayant échoué peuvent être reprogrammées et redémarrées par Airflow, tout en conservant l'historique des exécutions de DAG et d'autres paramètres.
À propos de la base de données à disponibilité élevée de votre environnement
Dans les environnements Airflow gérés disponibilité élevée, le composant Cloud SQL qui stocke la base de données de votre environnement s'exécute en mode haute disponibilité. Une instance principale et une instance de secours de Cloud SQL sont distribuées entre les zones.
En cas de panne, l'instance Cloud SQL de votre environnement effectue le basculement automatique de la base de données vers l'instance Cloud SQL de secours. Vous n'avez pas besoin d'effectuer d'actions supplémentaires dans votre environnement Airflow géré. Une fois que la zone principale est de nouveau opérationnelle, l'environnement revient à deux zones (principale et secondaire). Les zones principale et secondaire peuvent être permutées dans certains cas. L'instance Cloud SQL en mode haute disponibilité utilise la même adresse IP après un basculement.
À propos des composants Airflow disponibilité élevée
Un environnement hautement résilient est multizonal et s'exécute sur au moins deux zones d'une région sélectionnée. Les composants suivants s'exécutent dans des zones distinctes :
Exactement deux programmeurs Airflow
Au moins deux déclencheurs (si le nombre de déclencheurs n'est pas défini sur zéro)
Au moins deux processeurs DAG
Deux serveurs Web
Le nombre minimal de nœuds de calcul est défini sur deux, et le cluster de votre environnement distribue les instances de nœuds de calcul entre les zones. En cas de panne zonale, les instances de nœuds de calcul concernées sont reprogrammées dans une autre zone.
Pour en savoir plus sur l'architecture des environnements hautement résilients, consultez Architecture des environnements hautement résilients.
Avant de commencer
-
Dans Airflow géré (3e génération), la haute résilience est disponible pour les environnements d'adresses IP privées et publiques.
Dans Airflow géré (3e génération), les environnements hautement résilients sont disponibles à partir des builds Airflow composer-3-airflow-2.10.2-build.13 et composer-3-airflow-2.9.3-build.20.
Les environnements hautement résilients exécutent des composants d'environnement supplémentaires. Cela entraîne une augmentation des coûts par rapport aux environnements standards.
Si vous souhaitez mettre à niveau un environnement standard vers un environnement hautement résilient, assurez-vous qu'il répond aux exigences de configuration suivantes. Si votre environnement ne répond pas à ces exigences, vous pouvez modifier ses paramètres d'évolutivité et de performances.
- Le nombre minimal de nœuds de calcul Airflow est de deux ou plus.
Le nombre de programmeurs Airflow est exactement de deux.
Au moins deux processeurs DAG.
Si vous utilisez des opérateurs différables dans vos DAG, au moins deux déclencheurs.
Créer un environnement hautement résilient
Pour créer un environnement hautement résilient, activez le mode haute résilience lorsque vous créez un environnement.
Mettre à niveau un environnement standard vers le mode haute résilience
Console
Dans la Google Cloud console, 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.
Sélectionnez l'onglet Configuration de l'environnement.
Dans la section Mode de résilience, cliquez sur Modifier.
Sélectionnez Haute résilience , puis cliquez sur Enregistrer.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-high-resilience
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnementLOCATION: région où se trouve l'environnement
API
Rédigez une requête API
environments.patch.Dans cette requête :
Dans le paramètre
updateMask, spécifiez le masqueconfig.resilienceMode.Dans le corps de la requête, spécifiez
HIGH_RESILIENCEpour passer au mode haute résilience.
Exemple :
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "HIGH_RESILIENCE" }
}
}
Terraform
Le champ resilience_mode du bloc config spécifie le mode de résilience. Pour utiliser le mode haute résilience, définissez cette valeur sur HIGH_RESILIENCE.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
}
}
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnementLOCATION: région où se trouve l'environnement
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
}
Passer d'un environnement hautement résilient au mode de résilience standard
Vous pouvez passer à tout moment votre environnement au mode de résilience standard. Cette opération :
- réduit le nombre de serveurs Web dans votre environnement à un seul ;
- désactive le mode haute disponibilité de la base de données Airflow de votre environnement ;
ne modifie pas les paramètres du nombre minimal de nœuds de calcul, de programmeurs ou de déclencheurs Airflow.
Console
Dans la Google Cloud console, 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.
Sélectionnez l'onglet Configuration de l'environnement.
Dans la section Mode de résilience, cliquez sur Modifier.
Sélectionnez Résilience standard (par défaut) , puis cliquez sur Enregistrer.
gcloud
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-high-resilience
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnement Cloud ComposerLOCATION: région où se trouve l'environnement
API
Rédigez une requête API
environments.patch.Dans cette requête :
Dans le paramètre
updateMask, spécifiez le masqueconfig.resilienceMode.Dans le corps de la requête, spécifiez
RESILIENCE_MODE_UNSPECIFIEDpour passer au mode de résilience standard.
Exemple :
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode
{
"config": {
"resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
}
}
Terraform
Le champ resilience_mode du bloc config spécifie le mode de résilience. Pour utiliser le mode de résilience standard, définissez cette valeur sur STANDARD_RESILIENCE.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
}
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnementLOCATION: région où se trouve l'environnement
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "STANDARD_RESILIENCE"
}
Vérifier si votre environnement s'exécute en mode haute résilience
Console
Dans la Google Cloud console, 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.
Sélectionnez l'onglet Configuration de l'environnement.
Dans la section Mode de résilience, affichez le mode de résilience de votre environnement.
gcloud
Pour vérifier si le mode haute résilience est activé dans votre environnement, exécutez la commande Google Cloud CLI suivante. La valeur True signifie que le mode haute résilience est activé dans votre environnement.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.resilienceMode)"
Remplacez les éléments suivants :
ENVIRONMENT_NAME: nom de votre environnement Cloud ComposerLOCATION: région où se trouve l'environnement
Étape suivante
- Effectuez des tests de basculement pour votre environnement hautement résilient.
- Reprise après sinistre avec des instantanés d'environnement