Mise à niveau automatique des extensions pour les machines virtuelles et les groupes identiques dans Azure

La mise à niveau automatique des extensions est disponible pour Machines virtuelles Azure et Azure Virtual Machine Scale Sets. Lorsque la mise à niveau automatique des extensions est activée sur une machine virtuelle ou un groupe identique, l’extension est automatiquement mise à niveau chaque fois que l’éditeur de l’extension publie une nouvelle version pour cette extension.

La mise à niveau automatique des extensions présente les fonctionnalités suivantes :

  • Les machines virtuelles Azure et les groupes de machines virtuelles identiques sont pris en charge.
  • Les mises à niveau sont appliquées dans un modèle de déploiement selon le principe de première disponibilité.
  • Pour un groupe de machines virtuelles identiques, au maximum 20 % des machines virtuelles du groupe identique sont mises à niveau par lot. La taille de lot minimale est d’une machine virtuelle.
  • Toutes les tailles de machine virtuelle et les extensions tant Windows que Linux sont compatibles.
  • Les mises à niveau automatiques sont facultatives à tout moment.
  • Les groupes de machines virtuelles identiques de toute taille sont activés.
  • Chaque extension prise en charge est inscrite individuellement. Vous pouvez choisir les extensions à mettre à niveau automatiquement.
  • Toutes les régions du cloud public sont prises en charge.

Comment fonctionne la mise à niveau automatique des extensions ?

Le processus de mise à niveau d’extension remplace la version existante de l’extension sur une machine virtuelle chaque fois que l’éditeur de l’extension publie une nouvelle version de cette extension. L’intégrité de la machine virtuelle est analysée après l’installation de la nouvelle extension. Si la machine virtuelle n’est pas dans un état sain dans les cinq minutes suivant la fin de la mise à niveau, la version précédente de l’extension du navigateur est restaurée.

Une mise à niveau d’extension qui a échoué fait automatiquement l’objet d’une nouvelle tentative. Une nouvelle tentative est effectuée automatiquement à quelques jours d’intervalle, sans intervention de l’utilisateur.

Mises à jour selon la première disponibilité

Le modèle privilégiant la disponibilité pour les mises à niveau orchestrées de la plateforme garantit que les configurations de disponibilité dans Azure sont respectées sur plusieurs niveaux de disponibilité.

Pour un groupe de machines virtuelles en cours de mise à niveau, la plateforme Azure orchestre les mises à niveau entre les régions, au sein d’une région et au sein d’un groupe.

Entre les régions

  • Une mise à niveau est déployée sur Azure dans le monde entier de manière progressive, afin d’éviter les échecs de déploiement à l’échelle d’Azure.
  • Une phase peut englober une ou plusieurs régions, et une mise à niveau ne change pas de phase tant que les machines virtuelles éligibles de la phase précédente n’ont pas été correctement mises à niveau.
  • Les régions associées géographiquement ne sont pas mises à jour simultanément et ne peuvent pas se trouver dans la même phase régionale.
  • La réussite d’une mise à niveau est mesurée en suivant l’intégrité d’une machine virtuelle après sa mise à niveau. L’intégrité de la machine virtuelle est suivie via les indicateurs d’intégrité de la plateforme pour la machine virtuelle. Pour les groupes de machines virtuelles identiques, l’intégrité des machines virtuelles est suivie à l’aide de sondes d’intégrité d’application ou de l’extension Intégrité de l’application, si elle est appliquée au groupe identique.

Au sein d’une région

  • Les machines virtuelles situées dans des zones de disponibilité différentes ne sont pas mises à niveau simultanément par la même mise à niveau.
  • Les machines virtuelles uniques qui ne font pas partie d’un groupe de disponibilité sont traitées par lot dans la mesure du possible afin d’éviter des mises à niveau simultanées de toutes les machines virtuelles d’un abonnement.

Au sein d’un groupe

  • Toutes les machines virtuelles d’un groupe de disponibilité ou d’un groupe identique communs ne sont pas mises à niveau simultanément.
  • Les machines virtuelles d’un groupe à haute disponibilité commun sont mises à niveau dans les limites du domaine de mise à jour. Les machines virtuelles entre plusieurs domaines de mise à jour ne sont pas mises à niveau simultanément.
  • Les machines virtuelles d’un groupe de machines virtuelles identiques commun sont regroupées par lots et mises à niveau dans les limites du domaine de mise à niveau. Les Stratégies de mise à niveau définies sur le groupe identique sont respectées pendant la mise à niveau. Chaque groupe est mis à niveau en utilisant une stratégie de mise à niveau propagée.

Processus de mise à niveau pour les groupes de machines virtuelles identiques

  • Avant de commencer le processus de mise à niveau, l’orchestrateur vérifie qu’il n’y a pas plus de 20 % des machines virtuelles dans tout le groupe identique qui présentent un état non sain (pour une raison ou une autre).
  • L’orchestrateur de mise à niveau identifie le lot d’instances de machine virtuelle à mettre à niveau. Un lot de mise à niveau peut avoir au maximum 20 % du nombre total de machines virtuelles, sous réserve d’une taille de lot minimale d’une machine virtuelle. L’orchestrateur prend en compte la définition de la stratégie de mise à niveau et des zones de disponibilité pendant l’identification du lot.
  • Après la mise à niveau, l’intégrité de la machine virtuelle est toujours surveillée avant de passer au lot suivant. Pour les groupes identiques avec des sondes d’intégrité d’application configurées ou l’extension Intégrité de l’application, l’intégrité de l’application est également surveillée. La mise à niveau attend jusqu’à cinq minutes (ou la durée définie dans la configuration de la sonde d’intégrité) que la machine virtuelle passe à l’état sain avant de mettre à niveau le lot suivant. Si une machine virtuelle ne récupère pas son intégrité après une mise à niveau, par défaut, la version précédente de l’extension sur la machine virtuelle est réinstallée.
  • L’orchestrateur de mise à niveau suit également le pourcentage de machines virtuelles qui deviennent non saines après une mise à niveau. La mise à niveau s’arrête si plus de 20 % des instances mises à niveau passent à l’état non sain pendant le processus de mise à niveau.

Ce processus se poursuit jusqu’à ce que toutes les instances du groupe identique soient mises à niveau.

L’orchestrateur de mise à niveau du groupe identique vérifie l’intégrité de tout le groupe identique avant de procéder à la mise à niveau de chaque lot. Durant la mise à niveau d’un lot, d’autres activités de maintenance planifiées ou non planifiées peuvent avoir un impact sur l’intégrité des machines virtuelles de votre groupe identique. Si c’est le cas et que plus de 20 % des instances du groupe identique passent à l’état non sain, la mise à niveau du groupe identique s’arrête à la fin du lot actuel.

Extensions prises en charge

La mise à niveau automatique des extensions prend en charge les extensions suivantes (et d’autres sont ajoutées régulièrement) :


Activer la mise à niveau automatique des extensions

Pour activer la mise à niveau automatique des extensions pour une extension, vous devez veiller à ce que la propriété enableAutomaticUpgrade soit définie sur true et ajoutée à chaque définition d’extension individuellement.

Utilisation du portail Azure

Dans le portail Azure, utilisez le volet Extension pour activer la mise à niveau automatique des extensions sur les machines virtuelles et les groupes de machines virtuelles identiques existants.

  1. Accédez au volet Machines virtuelles ou Groupes de machines virtuelles identiques et sélectionnez le nom de la ressource.

  2. Sous Paramètres, accédez au volet Extensions + applications pour afficher toutes les extensions installées sur la ressource. La colonne État de mise à niveau automatique indique si la mise à niveau automatique de l’extension est activée, désactivée ou non prise en charge.

  3. Sélectionnez le nom de l’extension pour ouvrir le volet d’informations Extensions.

    Capture d’écran montrant le volet Extensions dans le portail Azure.

  4. Sélectionner Activer la mise à niveau automatique pour activer la mise à niveau automatique de l’extension. Utilisez ce bouton pour désactiver une mise à niveau automatique, si nécessaire.

    Capture d’écran montrant Activer la mise à niveau automatique dans le portail Azure.

Pour les machines virtuelles

Pour activer la mise à niveau automatique des extensions pour une extension (dans cet exemple, l’extension Dependency Agent) sur une machine virtuelle Azure, utilisez l’appel suivant :

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/extensions/<extensionName>?api-version=2019-12-01`
{    
    "name": "extensionName",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "<location>",
    "properties": {
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true, 
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5"
        }
}

Pour les groupes de machines virtuelles identiques

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>?api-version=2019-12-01`
{
   "location": "<location>",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [
            	{
                "name": "<extensionName>",
            	  "properties": {
             		    "autoUpgradeMinorVersion": true,
             		    "enableAutomaticUpgrade": true,
              	    "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
              	    "type": "DependencyAgentWindows",
              	    "typeHandlerVersion": "9.5"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Remarque

Ces opérations affectent la valeur true à la propriété enableAutomaticUpgrade sur la ressource du groupe de machines virtuelles identiques, mais pas sur les machines virtuelles sous-jacentes.

Si le groupe de machines virtuelles identiques définit le mode de mise à niveau automatique ou propagé dans l’upgradeProfile, il propage automatiquement la modification sur chaque machine virtuelle sous-jacente.

Si le groupe de machines virtuelles identiques définit le mode manuel dans l’upgradeProfile, vous devez également mettre à jour chaque instance manuellement et propager la modification sur chaque machine virtuelle sous-jacente.


Mises à niveau d’extension avec plusieurs extensions

Une machine virtuelle ou un groupe de machines virtuelles identiques peuvent avoir plusieurs extensions pour lesquelles la mise à niveau automatique des extension est activée. Les mêmes machine virtuelle ou groupe identique peuvent également avoir d’autres extensions sans que la mise à niveau automatique des extensions soit activée.

Si plusieurs mises à niveau d’extension sont disponibles pour une machine virtuelle, les mises à niveau peuvent être regroupées par lots, mais chaque mise à niveau d’extension est appliquée individuellement sur une machine virtuelle. Un échec sur une extension n’affecte pas les autres extensions pouvant être mises à niveau. Par exemple, si deux extensions sont planifiées pour une mise à niveau et que la mise à niveau de la première extension échoue, la deuxième extension est quand même mise à niveau.

Vous pouvez également appliquer les mises à niveau automatiques des extensions lorsqu’une machine virtuelle ou un groupe de machines virtuelles identiques a plusieurs extensions configurées avec le séquencement d’extensions. Le séquencement d’extensions concerne le déploiement initial de la machine virtuelle. Toutes les mises à niveau d’extension ultérieures sur une extension sont appliquées indépendamment.

Différence entre EnableAutomaticUpgrade et AutoUpgradeMinorVersion

  • AutoUpgradeMinorVersion :

    • Cette propriété est utilisée pendant la création d’une machine virtuelle et lors de sa mise à niveau avec une nouvelle configuration.
    • Lorsqu’elle est définie sur true, elle garantit que la dernière version mineure de l’extension est automatiquement installée sur la machine virtuelle.
    • Elle remplace TypeHandlerVersion par la dernière version mineure stable disponible.
    • Lorsque vous mettez à niveau la configuration de la machine virtuelle, si une nouvelle version mineure est disponible, ceci est considéré comme une modification de configuration. L’extension est réinstallée avec la dernière version mineure.
    • Ainsi, les machines virtuelles récemment créées restent à jour avec la dernière version mineure stable de l’extension.
    • Si vous souhaitez définir manuellement l’extension sur une version spécifique, affectez la valeur false à cette propriété.
  • EnableAutomaticUpgrade :

    • Cette propriété affecte les machines virtuelles existantes.
    • Elle n’affecte pas la version installée pendant la création de la machine virtuelle.
    • Une fois la machine virtuelle créée, si elle n’exécute pas la dernière version mineure de l’extension, activez cette propriété pour déclencher une mise à niveau automatique.
    • Les mises à niveau ne provoquent pas le redémarrage de la machine virtuelle, et sont déployées de manière sécurisée. Les mises à niveau ayant échoué sont annulées immédiatement, afin de fournir une disponibilité et une fiabilité de service élevées.
    • Les machines virtuelles existantes restent sécurisées et à jour grâce à leur mise à jour automatique vers la dernière version mineure.

Nous vous recommandons d’activer les deux propriétés pour que toutes les machines virtuelles soient sécurisées et à jour.

Les mises à niveau vers des versions majeures de l’extension ne sont jamais effectuées automatiquement par ces propriétés, car les versions majeures peuvent inclure des changements cassants. Vous devez définir manuellement TypeHandlerVersion sur une version majeure, et mettre à niveau manuellement chaque machine virtuelle existante vers la version majeure la plus récente.

Étape suivante