Réparations automatiques d’instances pour les groupes de machines virtuelles identiques Azure

Important

Les actions de réparation de Réinitialiser et de Redémarrer sont actuellement en préversion. Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure. Certains aspects de cette fonctionnalité sont susceptibles d’être modifiés avant la mise à disposition générale.

L’activation des réparations automatiques d’instance pour les groupes de machines virtuelles identiques Azure permet d’obtenir une haute disponibilité pour les applications en conservant un ensemble d’instances saines. Si une instance non saine est trouvée par extension Intégrité de l’application ou sondes d’intégrité de l’équilibreur de charge, les réparations automatiques d’instance tenteront de récupérer l’instance en déclenchant des actions de réparation, telles que la suppression de l’instance non saine et la création d’une nouvelle instance pour la remplacer, en réinitialisant l’instance non saine (préversion), ou redémarrage de l’instance non saine (préversion).

Conditions requises pour l’utilisation de réparations automatiques d’instances

Activer l’analyse de l’intégrité des applications pour le groupe identique

Le groupe identique doit permettre l’analyse de l’intégrité des applications pour les instances activées. La surveillance de l’intégrité peut être effectuée à l’aide de l’extension Intégrité de l’application ou des sondes d’intégrité d’équilibrage de charge, où une seule option peut être activée à la fois. L’extension d’intégrité d’application ou les sondes de l’équilibreur de charge effectuent un test ping sur le point de terminaison d’application configuré sur les instances de machine virtuelle pour déterminer l’état d’intégrité de l’application. Cet état d’intégrité est utilisé par l’orchestrateur du groupe identique pour analyser l’intégrité de l’instance et effectuer des réparations quand cela est nécessaire.

Configurer un point de terminaison pour fournir l’état d’intégrité

Avant d’activer la stratégie de réparation automatique d’instances, vérifiez que le point de terminaison d’application est configuré pour vos instances du groupe identique afin d’émettre l’état d’intégrité de l’application. Pour configurer l’état d’intégrité sur l’extension Intégrité de l’application, vous pouvez utiliser Binary Health States ou Rich Health States. Pour configurer l’état d’intégrité à l’aide de sondes d’intégrité d’équilibreur de charge, consultez Comportement de sonde opérationnelle.

Pour les instances marquées comme « non saines » ou « inconnues » (l’état Inconnu est disponible uniquement avec l’extension Intégrité de l’application – Rich Health States), les réparations automatiques sont déclenchées par le groupe identique. Assurez-vous que le point de terminaison d’application est correctement configuré avant d’activer la stratégie de réparation automatique afin d’éviter les réparations d’instances involontaires pendant la configuration du point de terminaison.

Version d’API

La stratégie de réparation automatique est prise en charge pour l’API de calcul version 2018-10-01 ou ultérieure.

Le paramètre repairAction pour la réinitialisation (préversion) et le redémarrage (préversion) sont pris en charge pour les versions d’API de calcul 2021-11-01 ou ultérieures.

Restrictions relatives aux déplacements de ressources ou d’abonnements

Les déplacements de ressources ou d’abonnements ne sont actuellement pas pris en charge pour les groupes identiques lorsque la fonctionnalité de réparation automatique est activée.

Restriction pour les groupes identiques Service Fabric

Cette fonctionnalité n’est actuellement pas prise en charge pour les groupes identiques Service Fabric.

Restriction pour les machines virtuelles avec des erreurs d’approvisionnement

Les réparations automatiques ne prennent actuellement pas en charge les scénarios où une instance de machine virtuelle est marquée comme non saine en raison d’un échec de provisionnement. Les machines virtuelles doivent être initialisées avec succès pour activer les fonctionnalités de supervision de l’intégrité et de réparation automatique.

Comment fonctionnent les réparations automatiques d’instances ?

La fonctionnalité de réparation automatique d’instances s’appuie sur l’analyse de l’intégrité d’instances individuelles dans un groupe identique. Les instances de machine virtuelle dans un groupe identique peuvent être configurées de façon à émettre l’état d’intégrité de l’application à l’aide de l’extension d’intégrité d’application ou des sondes d’intégrité de l’équilibreur de charge. Si une instance est détectée comme non saine, le groupe identique effectue une action de réparation préconfigurée sur l’instance non saine. Les réparations automatiques d’instances peuvent être activées dans le modèle groupe de machines virtuelles identiques à l’aide de l’objet automaticRepairsPolicy.

Le processus de réparation automatique d’instances se déroule comme suit :

  1. L’extension d’intégrité d’application ou les sondes d’intégrité de l’équilibreur de charge effectuent un test ping sur le point de terminaison d’application à l’intérieur de chaque machine virtuelle du groupe identique pour obtenir l’état d’intégrité d’application de chaque instance.
  2. Si le point de terminaison répond avec l’état 200 (OK), l’instance est marquée comme « saine ». Dans tous les autres cas (y compris si le point de terminaison est inaccessible), l’instance est marquée comme « non saine ».
  3. Lorsqu’une instance est détectée comme non saine, le groupe identique applique l’action de réparation configurée (la valeur par défaut est Remplacer) à l’instance non saine.
  4. Les réparations d’instances sont effectuées par lots. À un moment donné, pas plus de 5 % du nombre total d’instances du groupe identique sont réparées. Si un groupe identique comporte moins de 20 instances, les réparations sont effectuées sur une instance non saine à la fois.
  5. Le processus ci-dessus se poursuit jusqu’à ce que toutes les instances non saines dans le groupe identique soient réparées.

Actions de réparation disponibles

Attention

Le paramètre repairAction est actuellement en PRÉVERSION et n’est pas adapté aux charges de travail de production. Pour afficher un aperçu des actions de réparation Redémarrer et Réinitialiser, vous devez inscrire votre abonnement Azure auprès de l’indicateur AFEC AutomaticRepairsWithConfigurableRepairActions et la version de votre API de calcul doit être 2021-11-01 ou ultérieure. Pour plus d’informations, consultez Configurer des fonctionnalités en préversion dans l’abonnement Azure.

Il existe trois actions de réparation disponibles pour les réparations automatiques d’instances : remplacer, réinitialiser (préversion) et redémarrer (préversion). L’action de réparation par défaut est Remplacer, mais vous pouvez basculer vers Reimage (préversion) ou Redémarrer (préversion) en vous inscrivant dans l’aperçu et en modifiant le repairAction paramètre sous automaticRepairsPolicy l’objet.

  • Remplace supprime l’instance non saine et crée une nouvelle instance pour la remplacer. Le dernier modèle de groupe de machines virtuelles identiques est utilisé pour créer la nouvelle instance. Cette action de réparation est la valeur par défaut.

  • Réinitialiser applique l’opération de réinitialisation à l’instance non saine.

  • Redémarrage applique l’opération de redémarrage à l’instance non saine.

Le tableau suivant compare les différences entre les trois actions de réparation :

Action de réparation ID d’instance de machine virtuelle conservé ? Adresse IP privée conservée ? Disque de données managé conservé ? Disque de système d’exploitation managé conservé ? Disque local (temporaire) conservé ?
Replace No Non Non Non No
Réinitialiser Oui Oui Oui No Oui
Redémarrer Oui Oui Oui Oui Oui

Pour plus d’informations sur la mise à jour de votre action de réparation sous la stratégie de réparation automatique, consultez la section Configurer une action de réparation sur la stratégie de réparation automatique.

Traitement par lot

Les opérations de réparation automatique d’instances sont effectuées par lots. À un moment donné, pas plus de 5 % des instances du groupe identique sont réparées par la stratégie de réparation automatique. Ce processus permet d’éviter la suppression et la recréation simultanées d’un grand nombre d’instances si elles sont détectées non saines en même temps.

Période de grâce

Lorsqu’une instance passe par une opération de changement d’état en raison d’une action PUT, PATCH ou POST effectuée sur le groupe identique, toute action de réparation sur cette instance est exécutée uniquement après l’attente de la période de grâce. La période de grâce correspond à la durée nécessaire pour permettre à l’instance de retrouver son état d’intégrité. La période de grâce commence une fois la modification de l’état terminée, ce qui permet d’éviter toute opération de réparation prématurée ou accidentelle. La période de grâce est honorée pour toute instance nouvellement créée dans le groupe identique, y compris celle créée à la suite d’une opération de réparation. La période de grâce est spécifiée en minutes au format ISO 8601 et peut être définie à l’aide de la propriété automaticRepairsPolicy.gracePeriod. La période de grâce peut être comprise entre 10 minutes et 90 minutes, 10 minutes étant la valeur par défaut.

Interruption des réparations

Les groupes de machines virtuelles identiques permettent de suspendre temporairement des réparations automatiques d’instances si nécessaire. Le paramètre serviceState pour les réparations automatiques sous la propriété orchestrationServices de la vue d’instance du groupe de machines virtuelles identiques indique l’état actuel des réparations automatiques. Lorsqu’un groupe identique est paramétré pour des réparations automatiques, la valeur du paramètre serviceState est définie sur Running. Lorsque les réparations automatiques sont interrompues pour un groupe identique, le paramètre serviceState est défini sur Suspended. Si automaticRepairsPolicy est défini sur un groupe identique, mais que la fonctionnalité des réparations automatiques n’est pas activée, le paramètre serviceState est défini sur Not Running.

Si des instances nouvellement créées destinées à remplacer les instances non saines d’un groupe identique continuent d’être non saines, même après des opérations de réparation répétées, alors, par mesure de sécurité, la plateforme met à jour le serviceState pour les réparations automatiques sur Suspended. Vous pouvez reprendre à nouveau les réparations automatiques en définissant la valeur de serviceState pour les réparations automatiques sur Running. Des instructions détaillées sont fournies dans la section relative à l’affichage et à la mise à jour de l’état du service de la stratégie de réparation automatique pour votre groupe identique.

Vous pouvez également configurer des règles d’alerte Azure pour analyser les modifications de serviceState et être averti si les réparations automatiques sont suspendues sur votre groupe identique. Pour plus d’informations, consultez Utiliser les règles d’alerte Azure pour analyser les modifications apportées à l’état du service de réparation d’instance automatique.

Protection d’instance et réparations automatiques

Si l’instance d’un groupe identique est protégée par l’une des stratégies de protection, les réparations automatiques ne sont pas effectuées sur cette instance. Ce comportement s’applique à la fois aux stratégies de protection : Protéger contre la mise à l’échelle et Protéger contre les actions de mise à l’échelle.

Notification d’arrêt et réparations automatiques

Si la fonctionnalité de notification d’arrêt est activée sur un groupe identique, lors d’une opération Remplacer , la suppression d’une instance non saine suit la configuration de notification d’arrêt. Une notification d’arrêt est envoyée via le service de métadonnées Azure (événements planifiés), et la suppression d’instance est retardée pendant la durée du délai configuré. Toutefois, la création d’une nouvelle instance pour remplacer celle qui est non saine n’attend pas la fin du délai.

Activation de la stratégie de réparation automatique lors de la création d’un groupe identique

Important

À compter de novembre 2023, les groupes de machines virtuelles identiques créés à l'aide de PowerShell et d'Azure CLI utilisent par défaut le mode d'orchestration flexible si aucun mode d'orchestration n'est spécifié. Pour plus d’informations sur ce changement et les actions que vous devez entreprendre, consultez l’article Changement cassant pour les clients VMSS PowerShell/CLI – Hub Communauté Microsoft

Pour activer la stratégie de réparation automatique lors de la création d’un groupe identique, assurez-vous que toutes les conditions requises pour l’adhésion à cette fonctionnalité sont remplies. Le point de terminaison d’application doit être correctement configuré pour les instances de groupe identique afin d’éviter de déclencher des réparations involontaires pendant la configuration du point de terminaison. Pour les groupes identiques nouvellement créés, toute réparation d’instance est effectuée uniquement après l’expiration de la période de grâce. Pour activer la réparation automatique d’instances dans un groupe identique, utilisez l’objet automaticRepairsPolicy dans le modèle de groupe de machines virtuelles identiques.

Vous pouvez aussi utiliser ce modèle de démarrage rapide pour déployer un groupe de machines virtuelles identiques. Le groupe identique a une sonde d’intégrité d’équilibrage de charge et les réparations automatiques d’instance activées avec une période de grâce de 30 minutes.

Les étapes suivantes permettent d’activer la stratégie de réparation automatique lors de la création d’un groupe identique.

  1. Accédez à Groupes identiques de machines virtuelles.
  2. Sélectionnez + Ajouter pour créer un groupe identique.
  3. Accédez à l’onglet Intégrité.
  4. Recherchez la section Intégrité.
  5. Activez l’option Superviser l’intégrité de l’application.
  6. Recherchez la section Stratégie de réparation automatique.
  7. Activez l’option Réparations automatiques.
  8. Dans Période de grâce (min), spécifiez la période de grâce en minutes ; les valeurs autorisées sont comprises entre 10 et 90 minutes.
  9. Lorsque vous avez fini de créer le groupe identique, sélectionnez le bouton Vérifier + créer.

Activation de la stratégie de réparation automatique lors de la mise à jour d’un groupe identique existant

Avant d’activer la stratégie de réparation automatique dans un groupe identique existant, assurez-vous que toutes les conditions requises pour l’adhésion à cette fonctionnalité sont remplies. Le point de terminaison d’application doit être correctement configuré pour les instances de groupe identique afin d’éviter de déclencher des réparations involontaires pendant la configuration du point de terminaison. Pour activer la réparation automatique d’instances dans un groupe identique, utilisez l’objet automaticRepairsPolicy dans le modèle de groupe de machines virtuelles identiques.

Après la mise à jour du modèle d’un groupe identique existant, vérifiez que le modèle le plus récent est appliqué à toutes les instances du groupe identique. Reportez-vous aux instructions relatives à la mise à jour les machines virtuelles avec le dernier modèle du groupe identique.

Vous pouvez modifier la stratégie de réparation automatique d’un groupe identique via le Portail Azure.

Notes

Activez l’extension Application Health ou sondes d’intégrité de Load Balancer sur votre Virtual Machine Scale Sets avant de commencer les étapes suivantes.

  1. Accédez à un groupe de machines virtuelles identiques existant.0
  2. Sous Paramètres dans le menu de gauche, sélectionnez Intégrité et réparation.
  3. Activez l’option Superviser l’intégrité de l’application.

Si vous surveillez votre groupe identique à l’aide de l’extension Application Health :

  1. Choisissez l’extension Application Health dans la liste déroulante Moniteur Application Health.

  2. Dans la liste déroulante Protocole, choisissez le protocole réseau que votre application utilise pour signaler l’intégrité. Sélectionnez le protocole approprié en fonction des exigences de votre application. Les options de protocole sont HTTP, HTTPS ou TCP.

  3. Dans la zone configuration Numéro de port, saisissez le port réseau utilisé pour surveiller l’intégrité de l’application.

  4. Pour Chemin d’accès, indiquez le chemin du point de terminaison d’application (par exemple, "/") utilisé pour signaler l’intégrité de l’application.

    Notes

    L’extension Application Health va effectuer un test ping sur ce chemin à l’intérieur de chaque machine virtuelle dans le groupe identique pour obtenir l’état d’intégrité de l’application pour chaque instance. Si vous utilisez les états d’intégrité binaires et que le point de terminaison répond avec un état 200 (OK), l’instance est marquée comme étant « saine ». Dans tous les autres cas (y compris si le point de terminaison est inaccessible), l’instance est marquée comme « non saine ». Pour connaître plus d’options d’état d’intégrité, explorez États d’intégrité enrichis.

Si vous surveillez votre groupe identique à l’aide de sondes d’intégrité SLB :

  • Choisissez la sonde d’équilibreur de charge dans la liste déroulante Moniteur d’intégrité de l’application. Pour la sonde d’intégrité Load Balancer, sélectionnez une sonde d’intégrité existante ou créez une sonde d’intégrité pour la surveillance.

Pour réactiver les réparations automatiques :

  1. Recherchez la section Stratégie de réparation automatique.
  2. Activez l’option Réparations automatiques.
  3. Dans Période de grâce (min), précisez la période de grâce en minutes. Les valeurs autorisées sont comprises entre 10 et 90 minutes.
  4. Quand vous avez terminé, sélectionnez Enregistrer.

Configurer une action de réparation sur la stratégie de réparation automatique

Attention

Le paramètre repairAction est actuellement en PRÉVERSION et n’est pas adapté aux charges de travail de production. Pour afficher un aperçu des actions de réparation Redémarrer et Réinitialiser, vous devez inscrire votre abonnement Azure auprès de l’indicateur AFEC AutomaticRepairsWithConfigurableRepairActions et la version de votre API de calcul doit être 2021-11-01 ou ultérieure. Pour plus d’informations, consultez Configurer des fonctionnalités en préversion dans l’abonnement Azure.

Le paramètre repairAction sous automaticRepairsPolicy vous permet de spécifier l’action de réparation souhaitée effectuée en réponse à une instance non saine. Si vous mettez à jour l’action de réparation sur une stratégie de réparation automatique existante, vous devez d’abord désactiver les réparations automatiques sur le groupe identique et réactiver l’action de réparation mise à jour. Ce processus est illustré dans les exemples ci-dessous.

Cet exemple montre comment mettre à jour l’action de réparation sur un groupe identique avec une stratégie de réparation automatique existante. Utilisez l’API version 2021-11-01 ou ultérieure.

Désactiver la stratégie de réparation automatique existante sur votre groupe identique

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "false"
        }
    }
}

Réactiver la stratégie de réparation automatique avec l’action de réparation souhaitée

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT40M",
            "repairAction": "Reimage"
        }
    }
}

Affichage et mise à jour de l’état du service de la stratégie de réparation automatique d’instances

Utilisez Get Instance View avec l’API version 2019-12-01 ou supérieure pour que le groupe de machines virtuelles identiques affiche le paramètre serviceState pour les réparations automatiques sous la propriété orchestrationServices.

GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
  "orchestrationServices": [
    {
      "serviceName": "AutomaticRepairs",
      "serviceState": "Running"
    }
  ]
}

Utilisez Définir l’état du service d’orchestration pour suspendre ou reprendre le serviceState pour les réparations automatiques.

POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'

{
  "serviceName": "AutomaticRepairs",
  "action": "Suspend"
}

Dépanner

Échec de l’activation de la stratégie de réparation automatique

Si vous obtenez une erreur « BadRequest » avec un message indiquant que le membre « automaticRepairsPolicy » est introuvable sur l’objet de type « properties », vérifiez la version de l’API utilisée pour le groupe de machines virtuelles identiques. La version d’API 2018-10-01 ou ultérieure est requise pour cette fonctionnalité.

L’instance n’est pas réparée même lorsque la stratégie est activée

L’instance peut être en période de grâce. Cette période est le délai d’attente après toute modification d’état sur l’instance avant d’effectuer des réparations, ce qui permet d’éviter toute réparation prématurée ou accidentelle. L’action de réparation doit se produire une fois que la période de grâce est terminée pour l’instance.

Affichage de l’état d’intégrité d’application pour les instances de groupe identique

Vous pouvez utiliser l’API Get Instance View pour les instances d’un groupe de machines virtuelles identiques pour afficher l’état d’intégrité de l’application. Avec Azure PowerShell, vous pouvez utiliser la cmdlet Get-AzVmssVM avec l’indicateur -InstanceView. L’état d’intégrité de l’application est fourni sous la propriété vmHealth.

Dans le Portail Azure, vous pouvez également voir l’état d’intégrité. Accédez à un groupe identique existant, sélectionnez Instances dans le menu de gauche, puis examinez la colonne État d’intégrité pour déterminer l’état d’intégrité de chaque instance de groupe identique.

Étapes suivantes

Découvrez comment configurer l’extension d’intégrité d’application ou les sondes d’intégrité de l’équilibreur de charge pour vos groupes identiques.