Accéder au contenu principal Passer au contenu complémentaire

Configurer la mise à l'échelle automatique (autoscaling) pour les services de données et les Routes

Configurez la mise à l'échelle horizontale du pod Horizontal Pod Autoscaling (HPA) pour les ressources allouées aux services de données et Routes dans un environnement Dynamic Engine, afin que les services de données et Routes soient capables de gérer un grand volume de trafic ou messages.

Note InformationsRemarque : Cette procédure s'applique aux déploiements et mises à niveau d'un environnement de Dynamic Engine. Vous pouvez modifier ces paramètres avec une nouvelle mise à niveau.

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 :
    1. 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 graphique dans votre version de Dynamic Engine.
      • Utilisez un appel d'API pour l'endpoint de version de Dynamic Engine (en anglais).
    2. Exécutez la commande suivante pour installer le chart Helm dans une version donnée :
      helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
      Remplacez <helm_chart_version> par la version du chart supportée par votre version du Dynamic Engine.

      Si vous ne spécifiez pas la version, vous installez la dernière version disponible du chart dynamic-engine-crd.

  • Votre Dynamic Engine doit avoir été déployé. Si ce n'est pas le cas, exécutez cette commande pour le déployer :
    helm install dynamic-engine -f <engine-id>-helm-values/<engine-id>-values.yaml oci://ghcr.io/talend/helm/dynamic-engine 
    Ce déploiement est celui par défaut, car la personnalisation courante est nécessaire uniquement côté environnement du Dynamic Engine. Ainsi, aucune personnalisation n'a été configurée pour l'instance du Dynamic Engine.
  • Le support de la mise à l'échelle automatique s'appuie sur un Metrics server.

    Pour vérifier si un Metrics server est installé, exécutez :

    kubectl top pod

    Si vous obtenez une erreur de type error: Metrics API not available, vous devez installer un Metrics server.

Pourquoi et quand exécuter cette tâche

Pour activer la mise à l'échelle automatique du pod pour les services de données et les Routes, configurez le chart dynamic-engine-environment. Cette configuration vous permet également de configurer le nombre maximal de réplicas (instances de pods) pour la mise à l'échelle automatique.

Procédure

  1. Sur la machine de Kubernetes, décompressez le fichier ZIP de déploiement Helm précédemment téléchargé.
  2. Créez un fichier de valeurs spécifiques de mise à l'échelle pour les services de données et les Routes.

    Exemple

    cat <<EOF > $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml
    configuration:
      dataServiceRouteDeployment:
        autoscaling:
          enabled: true
          maxReplicas: 5
    EOF

    Remplacez $DYNAMIC_ENGINE_ENVIRONMENT_ID par l'ID de votre environnement Dynamic Engine. Dans cet exemple, la limite maximale de mise à l'échelle automatique des pods est configurée à 5 instances de pods.

    Liste des paramètres pouvant être configurés au niveau de la mise à l'échelle automatique (autoscaling) :

    Paramètres de mise à l'échelle automatique (autoscaling) pour les services de données et les Routes
    Paramètre Description Défaut
    Activé Spécifie si une mise à l'échelle horizontale du pod est automatiquement déployée avec l'environnement. false
    minReplicas Configure le nombre minimal de réplicas de pods pour la mise à l'échelle automatique. 1
    maxReplicas Configure le nombre maximal de réplicas de pods pour la mise à l'échelle automatique. 10
    cpuAverageUtilization Configure l'utilisation moyenne du processeur (en pourcentage) à travers les pods. Utilisez une valeur négative pour désactiver ce paramètre. Configurez à zéro pour utiliser la valeur par défaut (70). 0
    memoryAverageUtilization Configure l'utilisation moyenne de la mémoire (en pourcentage) à travers les pods. Utilisez une valeur négative pour désactiver ce paramètre. Configurez à zéro pour utiliser la valeur par défaut (-1). 0
    scaleUpStabilizationWindowSeconds Configure la fenêtre de stabilisation (en secondes) pour augmenter le nombre de pods. Au cours de cette fenêtre, les nombres de réplicas cibles précédemment calculés sont pris en compte. Configurez à zéro pour désactiver cette fonctionnalité. 120
    scaleDownStabilizationWindowSeconds Configure la fenêtre de stabilisation (en secondes) pour diminuer le nombre de pods. Au cours de cette fenêtre, les nombres de réplicas cibles précédemment calculés sont pris en compte. Configurez à zéro pour désactiver cette fonctionnalité. 0
  3. Déployez l'environnement de Dynamic Engine avec le fichier de valeurs spécifiques de mise à l'échelle automatique personnalisée.
    helm install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml \
       oci://ghcr.io/talend/helm/dynamic-engine-environment \
       --version $DYNAMIC_ENGINE_VERSION          

    Remplacez $DYNAMIC_ENGINE_ENVIRONMENT_ID et $DYNAMIC_ENGINE_VERSION par l'ID de l'environnement et la version du moteur.

  4. Vérifiez la configuration de la mise à l'échelle automatique dans la configuration ConfigMap de l'environnement.
    Chaque environnement de Dynamic Engine a sa propre configuration global-configuration ConfigMap dédiée. Les mises à jour d'une configuration ConfigMap affectent uniquement l'environnement auquel cette configuration appartient.
    kubectl get configmap -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
      global-configuration -ojsonpath="{.data['global-configuration\.json']}" \
      | jq -r '.dataServiceRouteDeployment'               
    Cette commande récupère la configuration de mise à l'échelle automatique des pods. La sortie doit confirmer le statut enabled (activé) et le nombre maximal de réplicas spécifié :
    {
      "autoscaling": {
        "enabled": "true",
        "minReplicas": "1",
        "maxReplicas": "5",
        "cpuAverageUtilization": "0",
        "memoryAverageUtilization": "0"
      }
    }         
    Note InformationsConseil : Lorsque des modifications sont nécessaires, mettez à jour le contenu du fichier $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml et exécutez helm upgrade pour appliquer les modifications :
    helm upgrade dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml \
       oci://ghcr.io/talend/helm/dynamic-engine-environment \
       --version $DYNAMIC_ENGINE_VERSION      

Résultats

Après le déploiement réussi, l'environnement de Dynamic Engine peut augmenter automatiquement le nombre d'instances de pods en fonction des variations de workload lors de l'exécution des services de données et des Routes, jusqu'au nombre maximal.

Dans Talend Management Console, le statut de cet environnement devient Ready (Prêt), confirmant qu'il est prêt à exécuter des tâches ou des plans.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.