Configurer PodDisruptionBudget pour les déploiements Dynamic Engine
Last updated: 07/08/2026Activez, désactivez et affinez les paramètres PodDisruptionBudget dans les charts d'instance et d'environnement Helm.
Dans Kubernetes, un objet PodDisruptionBudget définit la manière dont de nombreux pods peuvent être volontairement perturbés en même temps. Pour des informations générales, consultez Perturbations de pods (en anglais).
PodDisruptionBudget permet de maintenir les services disponibles lors de perturbations volontaires telles que la maintenance des nœuds ou la mise à échelle de clusters. Appliquez cette procédure lors d'un déploiement initial ou lorsque vous mettez une version existante à niveau.
Le support de PodDisruptionBudget Kubernetes a été lancé dans Dynamic Engine v1.6.0.
Avant de commencer
-
Les définitions des ressources personnalisées dynamic-engine-crd doivent avoir été installées à l'aide du chart Helm oci://ghcr.io/talend/helm/dynamic-engine-crd. Si ce n'est pas le cas, exécutez les commandes suivantes pour l'installation :
- Trouvez la version du chart à utiliser :
- Exécutez la commande Helm suivante :
helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version> - Visualisez la version directement depuis Talend Management Console ou consultez le Dynamic Engine journal de modification de la version du chart dans votre version de Dynamic Engine.
- Utilisez un appel d'API pour l'endpoint de version de Dynamic Engine (en anglais).
- Exécutez la commande Helm suivante :
- Exécutez la commande suivante pour installer le chart Helm dans une version donnée :Remplacez <helm_chart_version> par la version du chart supportée par votre version du Dynamic Engine.
helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>Si vous ne spécifiez pas la version, vous installez la dernière version disponible du chart dynamic-engine-crd.
- Trouvez la version du chart à utiliser :
- Votre cluster Kubernetes supporte les ressources PodDisruptionBudget.
- Vous avez des connaissances de base de Kubernetes PodDisruptionBudget (en anglais).
Pourquoi et quand exécuter cette tâche
Si vous planifiez d'utiliser EKS Auto Mode ou GKE Autopilot, il est recommandé de commencer par configurer PodDisruptionBudget avant de passer au déploiement. Utilisez-le avec global.profile: minimal et configuration.persistence.enabled=false.
Les Jobs d'intégration de données utilisent le paramètre PodDisruptionBudget général par défaut et n'exposent pas un paramètre au niveau de la tâche séparé. La personnalisation au niveau de la tâche est disponible uniquement pour les tâches de services de données et de Routes.
Un Pod Disruption Budget (PDB) s'avère généralement utile pour :
- Protéger les services essentiels des risques d'éviction lors de la maintenance des clusters
- Garantir des quotas minimaux de disponibilité des pods (nombres de pods indisponibles minimal et maximal)
- Obtenir un équilibre entre disponibilité et flexibilité opérationnelle des clusters
- Éviter les échecs en cascade lors de perturbations de pods coordonnées
Procédure
Résultats
L'instance de Dynamic Engine et son environnement utilisent maintenant les paramètres PodDisruptionBudget sélectionnés. Utilisez les commandes suivantes pour confirmer les valeurs Helm actives :
helm get values dynamic-engine-$DYNAMIC_ENGINE_ID --output json | jq -r '.global.pdb'
helm get values dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID --output json | jq -r '.global.pdb'Si null est renvoyé, le chart utilise les valeurs par défaut et aucune ressource PodDisruptionBudget n'est créée.
Si des perturbations de pods sont rejetées ou si des erreurs PDB apparaissent, vérifiez les points suivants :
- Vérifiez que les ressources PDB ont correctement été créées via Recherchez les ressources PDB dans les espaces de noms qlik-dynamic-engine et qlik-processing-env-<env-id>.
kubectl get pdb -A -l 'app.kubernetes.io/part-of=qlik-dynamic-engine' - Consultez l'état d'une ressource PDB via Vérifiez les champs Disruptions Allowed (Perturbations autorisées), Current Healthy (Intégrité actuelle) et Desired Healthy (Intégrité souhaitée).
kubectl describe pdb <pdb-name> -n <namespace> - Vérifiez que le nombre de pods est suffisant pour satisfaire les contraintes PDB via Si vous avez défini minAvailable: 1 alors qu'il n'existe qu'un seul pod, le PDB n'autorise aucune perturbation. Pensez à ajuster les contraintes PDB ou à augmenter le nombre de répliques.
kubectl get pods -n <namespace> -l app=<service-name> - Examinez les événements associés aux rejets de perturbations via
kubectl get events -n <namespace> --sort-by=.lastTimestamp | grep -i disruption
Que faire ensuite
# for dynamic engine
helm upgrade dynamic-engine-$DYNAMIC_ENGINE_ID \
oci://ghcr.io/talend/helm/dynamic-engine --version $DYNAMIC_ENGINE_VERSION \
--reuse-values --set global.pdb.enabled=false
# for dynamic engine environment
helm upgrade dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
oci://ghcr.io/talend/helm/dynamic-engine-environment --version $DYNAMIC_ENGINE_VERSION \
--reuse-values --set global.pdb.enabled=false