Partager via


Mise à l’échelle automatique de HDInsight sur des clusters AKS

Important

Azure HDInsight sur AKS a été mis hors service le 31 janvier 2025. En savoir plus avec cette annonce.

Vous devez migrer vos charges de travail vers Microsoft Fabric ou un produit Azure équivalent pour éviter l’arrêt brusque de vos charges de travail.

Important

Cette fonctionnalité est actuellement en préversion. Les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure incluent des termes juridiques supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale. Pour plus d’informations sur cette préversion spécifique, consultez informations sur Azure HDInsight sur AKS en préversion. Pour des questions ou des suggestions de fonctionnalités, envoyez une demande sur AskHDInsight avec les détails et suivez-nous pour plus de mises à jour sur Communauté Azure HDInsight.

Le dimensionnement de n’importe quel cluster pour répondre aux performances des travaux et gérer les coûts à l’avance est toujours difficile et difficile à déterminer ! L’un des avantages lucratifs de la création de data lake house sur Cloud est son élasticité, ce qui signifie utiliser la fonctionnalité de mise à l’échelle automatique pour optimiser l’utilisation des ressources à la main. La mise à l’échelle automatique avec Kubernetes est une clé pour établir un écosystème optimisé pour les coûts. Avec des modèles d’utilisation variés dans n’importe quelle entreprise, il peut y avoir des variations dans les charges de cluster au fil du temps, ce qui peut entraîner la sous-approvisionnement des clusters (performances fastidieuses) ou surprovisionnés (coûts inutiles en raison de ressources inactives).

La fonctionnalité de mise à l’échelle automatique proposée dans HDInsight sur AKS peut augmenter ou diminuer automatiquement le nombre de nœuds Worker dans votre cluster. La mise à l’échelle automatique utilise les métriques de cluster et la stratégie de mise à l’échelle utilisées par les clients.

Cette fonctionnalité convient parfaitement aux charges de travail stratégiques, qui peuvent avoir

  • Modèles de trafic variables ou imprévisibles qui nécessitent des accords SLA pour une haute performance et une capacité d'extension ou
  • Horaire prédéterminé pour que les nœuds de travail requis soient disponibles pour exécuter avec succès les travaux sur le cluster.

La mise à l’échelle automatique avec HDInsight sur les clusters AKS rend les clusters rentables et élastiques sur Azure.

Avec la mise à l’échelle automatique, les clients peuvent effectuer un scale-down des clusters sans affecter les charges de travail. Elle est activée avec des fonctionnalités avancées telles que la désactivation en douceur et la période de refroidissement. Ces fonctionnalités permettent aux utilisateurs de faire des choix éclairés sur l’ajout et la suppression de nœuds en fonction de la charge actuelle du cluster.

Fonctionnement

Cette fonctionnalité fonctionne en mettant à l’échelle le nombre de nœuds dans des limites prédéfinies en fonction des métriques de cluster ou d’une planification définie des opérations de scale-up et de scale-down. Il existe deux types de conditions pour déclencher des événements de mise à l’échelle automatique : des déclencheurs basés sur des seuils pour différentes métriques de performances de cluster (appelées mise à l’échelle basée sur la charge) et des déclencheurs basés sur le temps (appelés mise à l’échelle basée sur la planification).

La mise à l’échelle basée sur la charge modifie le nombre de nœuds de votre cluster, dans une plage définie, pour garantir une utilisation optimale du processeur et réduire le coût d’exécution.

La mise à l’échelle basée sur la planification modifie le nombre de nœuds de votre cluster en fonction d’une planification d’opérations de scale-up et de scale-down.

Note

La mise à l’échelle automatique ne prend pas en charge la modification du type de référence SKU d’un cluster existant.

Compatibilité du cluster

Le tableau suivant décrit les types de cluster compatibles avec la fonctionnalité de mise à l’échelle automatique, ainsi que les éléments disponibles ou planifiés.

Charge de travail Basé sur la charge Basé sur la planification
Flink Planifié Oui
Trino Oui** Oui**
Spark Oui** Oui**

**La mise hors service en douceur est configurable.**

Méthodes de mise à l’échelle

  • mise à l’échelle planifiée:

    • Lorsque vos travaux sont censés s’exécuter selon des planifications fixes et pendant une durée prévisible ou lorsque vous prévoyez une faible utilisation pendant des heures spécifiques de la journée, par exemple, des environnements de test et de développement dans les heures de travail postérieures au travail, les travaux de fin de journée.

      Capture d’écran montrant comment sélectionner la mise à l’échelle basée sur la planification.

  • Balance basée sur la charge:

    • Lorsque les modèles de charge varient considérablement et de façon imprévisible pendant la journée, par exemple, commandez le traitement des données avec des fluctuations aléatoires des modèles de charge en fonction de différents facteurs.

      Capture d’écran montrant comment sélectionner la mise à l’échelle basée sur la charge.

      Avec la nouvelle option configurer la règle d’échelle, vous pouvez désormais personnaliser les règles d’échelle.

      Capture d’écran montrant comment configurer la règle de mise à l’échelle en fonction de la charge.

      Capture d’écran montrant comment ajouter des règles dans configurer des règles de mise à l’échelle pour la mise à l’échelle basée sur la charge.

      Pourboire

      • Les règles de montée en puissance ont la priorité lorsque une ou plusieurs règles sont déclenchées. Même si une seule des règles de scale-up suggère le sous-provisionnement du cluster, le cluster tente de monter en puissance. Pour que le scale-down se produise, aucune règle de scale-up ne doit être déclenchée.

Conditions d’échelle basées sur la charge

Lorsque les conditions suivantes sont détectées, la mise à l’échelle automatique émet une demande de mise à l’échelle

Montée en puissance Réduction
Les cœurs alloués sont supérieurs à 80% pour l’intervalle de sondage de 5 minutes (période de vérification de 1 minute) Les cœurs CPU alloués sont inférieurs ou égaux à 20% pour un intervalle de sondage de 5 minutes (avec une période de contrôle d'une minute)
  • Pour l'augmentation de capacité, la mise à l'échelle automatique émet une demande pour ajouter le nombre requis de nœuds. La mise à l'échelle est basée sur le nombre de nouveaux nœuds de calcul nécessaires pour répondre aux exigences actuelles en processeur et mémoire. Cette valeur est limitée au nombre maximal de nœuds Worker définis.

  • Pour un scale-down, la mise à l’échelle automatique émet une demande de suppression de certains nœuds. Les considérations relatives à la mise à l’échelle incluent le nombre de pods par nœud, les exigences actuelles en matière de processeur et de mémoire et les nœuds Worker, qui sont des candidats à la suppression en fonction de l’exécution actuelle du travail. L’opération de scale-down désactive d’abord les nœuds, puis les supprime du cluster.

    Important

    Le moteur de règle de mise à l’échelle automatique vide de manière proactive les anciens événements toutes les 30 minutes pour optimiser la mémoire système. Par conséquent, il existe une limite supérieure de 30 minutes sur l’intervalle de règle de mise à l’échelle. Pour garantir le déclenchement cohérent et fiable des actions de mise à l’échelle, il est impératif de définir l’intervalle de règle de mise à l’échelle sur une valeur inférieure à la limite. En respectant cette directive, vous pouvez garantir un processus de mise à l’échelle fluide et efficace tout en gérant efficacement les ressources système.

Métriques de cluster

La mise à l’échelle automatique surveille en permanence le cluster et collecte les métriques suivantes pour la mise à l’échelle automatique basée sur le chargement :

Métriques de cluster disponibles à des fins de mise à l’échelle

Métrique Description
Pourcentage de cœurs disponibles Nombre total de cœurs disponibles dans le cluster par rapport au nombre total de cœurs du cluster.
Pourcentage de mémoire disponible Mémoire totale (en Mo) disponible dans le cluster par rapport à la quantité totale de mémoire dans le cluster.
Pourcentage de cœurs alloués Nombre total de cœurs alloués dans le cluster par rapport au nombre total de cœurs du cluster.
Pourcentage de mémoire alloué Quantité de mémoire allouée dans le cluster par rapport à la quantité totale de mémoire dans le cluster.

Par défaut, les métriques ci-dessus sont vérifiées toutes les 300 secondes, il est également configurable lorsque vous personnalisez l’intervalle de sondage avec l’option personnaliser la mise à l’échelle automatique. La mise à l'échelle automatique prend des décisions d'augmentation ou de diminution de l'échelle en fonction de ces métriques.

Note

Par défaut, la mise à l’échelle automatique utilise la calculatrice de ressources par défaut pour YARN pour Apache Spark. La mise à l’échelle basée sur la charge est disponible pour les clusters Apache Spark.

Désaffectation en douceur

Les entreprises ont besoin de moyens pour atteindre une échelle des pétaoctets avec mise à l’échelle automatique et pour désaffecter correctement les ressources lorsqu’elles ne sont plus nécessaires. Dans ce scénario, la fonctionnalité de désactivation en douceur s'avère pratique.

La désaffectation appropriée permet aux travaux de se terminer même après la mise à l’échelle automatique ayant déclenché la désaffectation des nœuds Worker. Cette fonctionnalité permet aux nœuds de continuer à être approvisionnés jusqu’à ce que les travaux soient terminés.

  • Trino : les travailleurs ont activé la désactivation avec grâce par défaut. Le coordinateur permet à un worker de terminer ses tâches pendant une durée configurée avant de supprimer le worker du cluster. Vous pouvez configurer le délai d’expiration à l’aide du paramètre Trino natif shutdown.grace-periodou sur la page de configuration du service du portail Azure.

  • Apache Spark : la réduction de l'échelle peut avoir un impact/arrêter les travaux en cours d’exécution dans le cluster. Si vous activez les paramètres de désaffectation progressive sur le portail Azure, il intègre la désactivation progressive des nœuds YARN et garantit que tout travail en cours sur un nœud de travail est terminé avant que le nœud soit supprimé d'HDInsight sur le cluster AKS.

Période de refroidissement

Pour éviter les opérations de montée en puissance continue, le moteur de mise à l’échelle automatique attend un intervalle configurable avant de lancer un autre ensemble d’opérations de scale-up. La valeur par défaut est définie sur 180 secondes

Note

  • Dans les règles d’échelle personnalisées, aucun déclencheur de règle ne peut avoir un intervalle de déclencheur supérieur à 30 minutes. Une fois qu’un événement de mise à l’échelle automatique se produit, la durée d’attente avant d’appliquer une autre stratégie de mise à l’échelle.
  • La période de refroidissement doit être supérieure à l’intervalle de stratégie, de sorte que les métriques de cluster peuvent être réinitialisées.

Démarrer

  1. Pour que la mise à l’échelle automatique fonctionne, vous devez affecter le propriétaire ou contributeur l’autorisation msi (utilisée lors de la création du cluster) au niveau du cluster, à l’aide d’IAM dans le volet gauche.

  2. Reportez-vous à l’illustration et aux étapes suivantes répertoriées sur la façon d’ajouter une attribution de rôle

    Capture d’écran montrant comment ajouter une attribution de rôle.

  3. Sélectionnez ajouter une attribution de rôle,

    1. Type d’affectation : rôles d’administrateur privilégiés
    2. Rôle : propriétaire ou contributeur
    3. Membres : choisissez l’identité managée et sélectionnez l’identité managée affectée par l’utilisateur , qui a été donnée pendant la phase de création du cluster.
    4. Attribuez le rôle.

Créer un cluster avec la mise à l’échelle automatique basée sur la planification

  1. Une fois votre pool de clusters créé, créez un nouveau cluster avec votre charge de travail souhaitée (sur le type de cluster) et effectuez les autres étapes dans le cadre du processus de création de cluster normal.

  2. Sous l’onglet Configuration, activez bascule mise à l’échelle automatique.

  3. Sélectionnez l'automatisation de mise à l'échelle basée sur calendrier

  4. Sélectionnez votre fuseau horaire, puis cliquez sur + Ajouter une règle

  5. Sélectionnez les jours de la semaine auxquels la nouvelle condition doit s’appliquer.

  6. Modifiez l’heure à laquelle la condition doit prendre effet et le nombre de nœuds auxquels le cluster doit être mis à l’échelle.

    Capture d’écran montrant comment prendre en main la mise à l’échelle automatique basée sur la planification.

    Note

    • L’utilisateur doit avoir le rôle « propriétaire » ou « contributeur » sur le msi du cluster pour que la mise à l’échelle automatique fonctionne.
    • La valeur par défaut définit la taille initiale du cluster lors de sa création.
    • La différence entre deux planifications est définie par défaut d’environ 30 minutes.
    • La valeur de temps suit le format de 24 heures
    • Dans le cas d’une fenêtre continue de plus de 24 heures sur plusieurs jours, vous devez définir la planification de mise à l’échelle automatique sur plusieurs jours, et la mise à l’échelle automatique suppose que 23:59 est comprise entre 00:00 (avec le même nombre de nœuds) couvrant deux jours de 22:00 à 23:59, 00:00 à 02:00 comme 22:00 à 02:00.
    • Les planifications sont définies en temps universel coordonné (UTC), par défaut. Vous pouvez toujours mettre à jour le fuseau horaire correspondant à votre fuseau horaire local dans la liste déroulante disponible. Lorsque vous êtes sur un fuseau horaire qui observe les économies d’été, la planification ne s’ajuste pas automatiquement, vous devez gérer les mises à jour de planification en conséquence.

Créer un cluster avec mise à l’échelle automatique basée sur le chargement

  1. Une fois votre pool de clusters créé, créez un nouveau cluster avec votre charge de travail souhaitée (sur le type de cluster) et effectuez les autres étapes dans le cadre du processus de création de cluster normal.

  2. Sous l’onglet Configuration, activez bascule mise à l’échelle automatique.

  3. Sélectionnez la mise à l’échelle automatique basée sur la charge

  4. En fonction du type de charge de travail, vous avez des options permettant d’ajouter délai d’expiration de mise hors service gracieux, période de refroidissement

  5. Sélectionnez le nombre minimum et maximum de nœuds, et, le cas échéant, configurez les règles d’échelle pour personnaliser la mise à l’échelle automatique selon vos besoins.

    Capture d’écran montrant comment démarrer avec la mise à l’échelle automatique basée sur le chargement.

    Pourboire

    • Votre abonnement dispose d’un quota de capacité pour chaque région. Le nombre total de cœurs de vos nœuds principaux et le nombre maximal de nœuds worker ne peuvent pas dépasser le quota de capacité. Toutefois, ce quota est une limite souple ; vous pouvez toujours créer un ticket d'assistance pour l'augmenter facilement.
    • Si vous dépassez la limite totale de quota de cœurs, Vous recevrez un message d’erreur indiquant « The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores)».
    • Les règles d'augmentation d'échelle sont prioritaires lorsqu'une ou plusieurs règles sont déclenchées. Même si une seule des règles de scale-up suggère le sous-provisionnement du cluster, le cluster tente de monter en puissance. Pour que le scale-down se produise, aucune règle de scale-up ne doit être déclenchée.
    • En préversion publique, HDInsight sur AKS prend en charge jusqu’à 500 nœuds dans un cluster.

Créer un cluster avec un modèle Resource Manager

Mise à l’échelle automatique programmée

Vous pouvez créer un cluster HDInsight sur AKS avec mise à l’échelle automatique basée sur la planification à l’aide d’un modèle Azure Resource Manager, en ajoutant une mise à l’échelle automatique au clusterProfile -> section autoscaleProfile.

Le nœud de mise à l’échelle automatique contient une récurrence comprenant un fuseau horaire et une planification qui indique le moment où la modification a lieu. Pour obtenir un modèle Resource Manager complet, consultez l’exemple JSON

{
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "ScheduleBased",
    "gracefulDecommissionTimeout": 60,
    "scheduleBasedConfig": {
      "schedules": [
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday"
          ],
          "startTime": "09:00",
          "endTime": "10:00",
          "count": 2
        },
        {
          "days": [
            "Sunday",
            "Saturday"
          ],
          "startTime": "12:00",
          "endTime": "22:00",
          "count": 5
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "22:00",
          "endTime": "23:59",
          "count": 6
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "00:00",
          "endTime": "05:00",
          "count": 6
        }
      ],
      "timeZone": "UTC",
      "defaultCount": 110
    }
  }
}

Pourboire

  • Vous devez définir des planifications non conflictuelles à l’aide de déploiements ARM pour éviter les échecs des opérations de mise à l’échelle.

mise à l’échelle automatique basée sur la charge

Vous pouvez créer un cluster HDInsight sur AKS avec mise à l’échelle automatique basée sur la charge à l’aide d’un modèle Azure Resource Manager, en ajoutant une mise à l’échelle automatique au clusterProfile -> section autoscaleProfile.

Le nœud de mise à l’échelle automatique contient

  • un intervalle d’interrogation, une période de refroidissement,
  • désaffectation appropriée,
  • nœuds minimum et maximal,
  • règles de seuil standard,
  • métriques de mise à l’échelle qui décrivent le moment où la modification a lieu.

Pour obtenir un modèle Resource Manager complet, consultez l’exemple JSON comme suit :

  {
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "LoadBased",
    "gracefulDecommissionTimeout": 60,
    "loadBasedConfig": {
      "minNodes": 2,
      "maxNodes": 157,
      "pollInterval": 300,
      "cooldownPeriod": 180,
      "scalingRules": [
        {
          "actionType": "scaleup",
          "comparisonRule": {
            "threshold": 80,
            "operator": " greaterThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        },
        {
          "actionType": "scaledown",
          "comparisonRule": {
            "threshold": 20,
            "operator": " lessThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        }
      ]
    }
  }
}

Utilisation de l’API REST

Pour activer ou désactiver la mise à l’échelle automatique sur un cluster en cours d’exécution à l’aide de l’API REST, effectuez une requête PATCH à votre point de terminaison de mise à l’échelle automatique : https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}

  • Utilisez les paramètres appropriés dans la charge utile de la requête. La donnée JSON peut être utilisée pour activer la mise à l'échelle automatique.
  • Utilisez la charge utile (autoscaleProfile: null) ou utilisez l’indicateur (activé, false) pour désactiver la mise à l’échelle automatique.
  • Reportez-vous aux exemples JSON mentionnés à l’étape ci-dessus pour référence.

Suspendre la mise à l’échelle automatique pour un cluster en cours d’exécution

Nous avons introduit la fonctionnalité de pause dans la mise à l’échelle automatique. À présent, à l’aide du portail Azure, vous pouvez suspendre la mise à l’échelle automatique sur un cluster en cours d’exécution. Le diagramme ci-dessous illustre comment sélectionner la pause et la reprise de la mise à l'échelle automatique.

Capture d’écran montrant comment suspendre la mise à l’échelle automatique.

Vous pouvez reprendre les opérations de mise à l'échelle automatique quand vous le souhaitez.

Capture d’écran montrant comment reprendre la mise à l’échelle automatique.

Pourboire

Lorsque vous configurez plusieurs planifications et que vous suspendez la mise à l’échelle automatique, elle ne déclenche pas la planification suivante. Le nombre de nœuds reste identique, même si les nœuds sont dans un état désactivé.

Copier des configurations de mise à l’échelle automatique

À l’aide du portail Azure, vous pouvez désormais copier les mêmes configurations de mise à l’échelle automatique pour une même forme de cluster sur votre pool de clusters, vous pouvez utiliser cette fonctionnalité et exporter ou importer les mêmes configurations.

Capture d’écran montrant comment exporter ou importer des configurations à partir de la mise à l’échelle automatique.

Surveillance des activités de mise à l’échelle automatique

État du cluster

L’état du cluster répertorié dans le portail Azure peut vous aider à surveiller les activités de mise à l’échelle automatique. Tous les messages d’état du cluster que vous pouvez voir sont expliqués dans la liste.

État du cluster Description
Réussi Le cluster fonctionne normalement. Toutes les activités de mise à l’échelle automatique précédentes ont été effectuées avec succès.
Accepté L’opération de cluster (par exemple : augmentation de la capacité) est acceptée, en attente de sa finalisation.
Raté Cela signifie qu’une opération actuelle a échoué en raison d’une raison quelconque, le cluster n’est peut-être pas fonctionnel.
Annulé L’opération actuelle est annulée.

Capture d’écran montrant l’état du cluster.

Pour afficher le nombre actuel de nœuds dans votre cluster, allez au graphique Taille du cluster sur la page Vue d’ensemble de votre cluster.

capture d’écran montrant la taille du cluster.

Historique des opérations

Vous pouvez afficher l'historique d'augmentation et de réduction du cluster dans le cadre des métriques du cluster. Vous pouvez également répertorier toutes les actions de mise à l’échelle au cours du dernier jour, de la semaine ou d’une autre période.

Capture d’écran montrant l’historique des opérations du cluster, sur les journaux d’activité.

ressources supplémentaires

mise à l’échelle manuelle - Azure HDInsight sur AKS