À propos de la flexibilité des instances dans les MIG

La flexibilité des instances dans les groupes d'instances gérés (MIG) vous permet de spécifier plusieurs types de machines pour les instances de machines virtuelles (VM) du groupe, au lieu d'être limité à un seul type de machine. Si un type de machine n'est pas disponible, le MIG peut automatiquement sélectionner un autre type compatible dans votre liste en fonction de la disponibilité actuelle des ressources. Cette flexibilité permet d'améliorer la disponibilité des ressources, en particulier pour les applications pouvant fonctionner sur différents types de machines et nécessitant une capacité à grande échelle ou du matériel très demandé.

Ce document décrit le fonctionnement de la flexibilité des instances dans un MIG, ainsi que ses limites. Pour savoir comment configurer un MIG afin qu'il utilise la flexibilité des instances, consultez Ajouter la flexibilité des instances.

Flexibilité des instances

Un MIG crée toutes ses VM en fonction du modèle d'instance que vous sélectionnez. Le modèle d'instance spécifie le type de machine à utiliser pour chaque VM. Grâce à la flexibilité des instances, vous pouvez lister tous les types de machines compatibles avec votre application.

L'image suivante compare un MIG qui utilise un seul type de machine à un MIG qui utilise la flexibilité des instances. Comme illustré dans l'image, un MIG avec un seul type de machine crée des VM identiques basées sur un modèle d'instance, tandis qu'un MIG avec flexibilité d'instance peut créer des VM avec différents types et tailles de machines.

Comparaison d'un MIG qui utilise un seul type de machine avec un MIG qui utilise la flexibilité des instances

Fonctionnement de la flexibilité des instances

Par défaut, un MIG crée toutes les VM à l'aide d'un seul type de machine à partir du modèle d'instance. Vous pouvez définir plusieurs types de machines dans un MIG en configurant une sélection d'instances (instanceSelections) dans la règle de flexibilité des instances (instanceFlexibilityPolicy).

Vous pouvez également spécifier des types de machines qui s'exécutent sur différentes plates-formes de processeur et celles avec différentes architectures (architecture x86 et Arm). Pour utiliser des types de machines avec des exigences différentes concernant la plate-forme de processeur minimale ou les disques, utilisez la règle de flexibilité des instances pour remplacer les propriétés correspondantes du modèle d'instance. Pour en savoir plus, consultez Fonctionnement des remplacements minCpuPlatform et disks.

Exemple de remplacement de type de machine

Si votre charge de travail peut fonctionner sur plusieurs types de machines différents, vous pouvez configurer une liste de tous les types de machines compatibles avec votre application dans un seul instanceSelection comme suit :

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "instance-selection-1": {
        "machineTypes": ["c2-standard-8","c2d-standard-8","c3-standard-8", "c3d-standard-8"]
      }
    }
  }
  

Les types de machines d'une sélection d'instances ont la même préférence. Si vous souhaitez qu'un MIG choisisse les types de machines dans un ordre spécifique, vous pouvez configurer plusieurs sélections d'instances, chacune avec une liste de types de machines et un classement pour définir les préférences. Une valeur de classement plus faible signifie une préférence plus élevée. Le MIG tente de créer ses VM à l'aide de types de machines ayant une préférence plus élevée. Si ces types de machines préférés ne sont pas disponibles, le MIG utilise un type de machine avec une préférence inférieure.

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "rank": 1,
        "machineTypes": ["c3-standard-8","c2-standard-8"]
      },
      "least-preferred": {
        "rank": 2,
        "machineTypes": ["n2-standard-16","n1-standard-16"]
      }
    }
  }
  

Votre application doit être prête à s'exécuter sur l'un des types de machines listés, car la disponibilité du matériel change au fil du temps et un matériel spécifique n'est pas garanti, sauf si vous utilisez des réservations.

Les sélections d'instances peuvent également remplacer les propriétés d'instance telles que minCpuPlatform et disks. Pour en savoir plus, consultez la section suivante sur le fonctionnement des remplacements de la sélection d'instance.

Fonctionnement des remplacements minCpuPlatform et disks

Dans une sélection d'instances, vous pouvez spécifier des propriétés d'instance supplémentaires, telles que la configuration minimale de la plate-forme de processeur (minCpuPlatform) et les disques (disks), pour remplacer celles définies dans le modèle d'instance. Lorsqu'un MIG sélectionne un type de machine à partir d'une sélection d'instances, il crée une VM en utilisant les propriétés d'instance spécifiées dans cette sélection d'instances. Si vous ne spécifiez aucune de ces propriétés pour une sélection d'instances, le MIG utilisera les propriétés correspondantes du modèle pour cette sélection.

Le remplacement de ces propriétés au niveau de la sélection d'instance offre plus de contrôle et de flexibilité, en particulier lorsque vous utilisez différents matériels dans un MIG.

  • Remplacer la configuration minimale de la plate-forme de processeur lorsque vous combinez des types de machines qui s'exécutent sur différentes plates-formes de processeur Vous pouvez spécifier une configuration minimale de plate-forme de processeur pour les instances créées à partir des types de machines d'une sélection. Ce remplacement vous permet de combiner différents types de machines, mais d'appliquer sélectivement des plates-formes de CPU minimales. Vous pouvez également configurer la sélection d'instance pour qu'elle sélectionne automatiquement une plate-forme de processeur en définissant le champ minCpuPlatform sur AUTOMATIC. Cette sélection automatique remplace le paramètre de plate-forme de processeur minimale du modèle d'instance et permet au MIG d'utiliser n'importe quelle plate-forme de processeur compatible pour les types de machines sélectionnés.

    Par exemple, vous pouvez combiner des types de machines des séries N1 et N2 dans une sélection, tout en veillant à ce que les machines N1 s'exécutent sur Intel Skylake pour améliorer les performances.

  • Remplacez les disques lorsque vous combinez des types de machines ayant des architectures différentes. Vous pouvez spécifier une configuration de disque personnalisée pour remplacer le disque de démarrage ou les disques supplémentaires spécifiés dans les propriétés de l'instance, ou pour associer un espace de stockage spécifique. Cette substitution vous permet de combiner des types de machines qui ont des architectures différentes ou qui ne partagent pas les mêmes technologies de disque, et de spécifier les images ou disques de démarrage appropriés requis pour chaque type de machine.

    Par exemple, vous pouvez combiner des types de machines C4 (architecture x86) et C4A (architecture Arm). Comme les machines x86 et Arm nécessitent des images de démarrage différentes, vous pouvez utiliser des sélections d'instances distinctes pour remplacer le disque de démarrage de chaque architecture.

    Lorsque vous spécifiez les disques pour une sélection d'instances, le MIG fusionne les disques du modèle d'instance et de la sélection d'instances en fonction de leurs clés deviceName. Le schéma suivant en est un exemple.

    Fusion des disques à partir de la sélection du modèle d'instance et de l'instance

Pour en savoir plus sur les limites liées à l'utilisation des remplacements de la sélection d'instance, consultez la section Limites de ce document.

Exemple de remplacement de la configuration minimale de plate-forme de processeur et du disque

Prenons l'exemple d'un modèle d'instance avec la configuration suivante :

  {
    ...
      "disks": [
        {
          "autoDelete": true,
          "deviceName": "boot",
          "boot": true,
          "diskEncryptionKey": {},
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
            "diskSizeGb": "10",
            "diskType": "pd-balanced"
          }
        }
      ],
      "machineType": "n2-standard-2",
      ...
    }
  

L'exemple suivant de stratégie de flexibilité des instances remplace la configuration du modèle en spécifiant une configuration minimale de plate-forme de processeur et de disque.

  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "first-preference": {
        "rank": 1,
        "machineTypes": ["n4-standard-4 "],
        "disks": [
          {
            "autoDelete": true,
            "deviceName": "boot",
            "boot": true,
            "diskEncryptionKey": {},
            "initializeParams": {
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
              "diskSizeGb": "10",
              "diskType": "hyperdisk-balanced"
            }
          }
        ]
      },
      "second-preference": {
        "rank": 2,
        "machineTypes": ["n2-standard-4"],
        "minCpuPlatform": "Intel Ice Lake",
        "disks": [
          {
            "autoDelete": true,
            "deviceName": "boot",
            "boot": true,
            "initializeParams": {
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12",
              "diskSizeGb": "10",
              "diskType": "pd-ssd"
            }
          }
        ]
      },
      "third-preference": {
        "rank": 3,
        "machineTypes": ["n1-standard-4"],
        "minCpuPlatform": "Intel Skylake",
      }
    }
  }
  

Comment un MIG sélectionne les types de machines

Lorsque vous configurez plusieurs types de machines, le MIG en sélectionne un en fonction de la disponibilité actuelle des ressources et donne la priorité aux réservations inutilisées. Si vous avez configuré des classements, le MIG tient d'abord compte de votre ordre de préférence. Dans une sélection d'instances classées, le MIG vérifie ensuite la disponibilité des ressources, puis les réservations.

Les zones de la région du MIG peuvent également avoir un impact sur la sélection du type de machine, car la disponibilité des ressources varie d'une zone à l'autre. Pour en savoir plus, consultez la section suivante sur la façon dont un MIG sélectionne les zones.

Comment un MIG sélectionne-t-il des zones ?

Vous pouvez configurer la flexibilité des instances dans un MIG régional dont la forme de distribution cible est BALANCED, ANY ou ANY_SINGLE_ZONE. La flexibilité des instances n'est pas compatible avec la forme de distribution cible EVEN.

Grâce à la flexibilité des instances, lorsqu'un MIG régional crée une VM, il sélectionne une zone en fonction de la forme de distribution cible sélectionnée, comme suit :

  • BALANCED : le MIG sélectionne une zone avec des ressources disponibles qui peut équilibrer la répartition des VM dans les zones de la manière la plus équitable possible. Dans une zone sélectionnée, le MIG hiérarchise les types de machines en fonction des classements, s'ils sont configurés, et des réservations disponibles.

  • ANY : le MIG sélectionne une zone avec des ressources et des réservations disponibles. Si des niveaux sont configurés, le MIG donne la priorité à la zone dans laquelle un type de machine basé sur les niveaux est disponible.

  • ANY_SINGLE_ZONE : le MIG sélectionne la zone qui comporte le plus de types de machines en fonction des rangs, le cas échéant, et dans laquelle le MIG peut créer le plus de VM à partir des réservations inutilisées.

Pour en savoir plus sur le fonctionnement d'une forme de distribution cible, consultez Forme de distribution cible du MIG régional.

Flexibilité des instances et réservations

Vous pouvez utiliser la flexibilité des instances avec les réservations. En fonction de la propriété d'affinité de réservation que vous définissez dans le modèle d'instance, un MIG utilise les réservations comme suit :

  • ANY_RESERVATION (recommandé pour la flexibilité des instances) : lorsque vous utilisez une réservation, le MIG sélectionne d'abord le type de machine avec une réservation inutilisée. Si vous souhaitez modifier l'ordre dans lequel le MIG sélectionne les types de machines, vous pouvez configurer plusieurs sélections d'instances et spécifier vos préférences à l'aide de classements. Le MIG suit d'abord les rangs, puis tient compte des réservations disponibles pour les types de machines d'un rang.

  • SPECIFIC : lorsque vous utilisez une réservation spécifique, le MIG sélectionne le type de machine qui correspond aux propriétés de la réservation. Si les instances que vous sélectionnez n'incluent pas le type de machine correspondant aux propriétés de la réservation spécifique, la création de l'instance échoue.

Pour en savoir plus sur les réservations, consultez À propos des réservations.

Flexibilité des instances et VM Spot

Si votre MIG avec flexibilité des instances utilise des VM Spot, il sélectionne automatiquement un type de machine avec le taux de préemption le plus faible observé pour minimiser les perturbations de votre charge de travail. Si vous souhaitez remplacer ce comportement, vous pouvez configurer plusieurs sélections d'instances et spécifier votre préférence à l'aide de classements. Le MIG suit ensuite l'ordre de préférence, puis tient compte de la fiabilité des VM Spot lors de la sélection d'une instance.

Pour en savoir plus sur les VM Spot, consultez VM Spot dans un groupe d'instances géré.

Flexibilité des instances et réparation des VM

Par défaut, si une VM d'un MIG échoue, le MIG la répare en la recréant avec la même configuration, y compris le type de machine. Si vous configurez la flexibilité des instances et activez les mises à jour lors de la réparation, vous pouvez augmenter vos chances d'obtenir des ressources en cas de rupture de stock. Lorsqu'un MIG tente de recréer une VM, si le type de machine d'origine de la VM n'est pas disponible, une erreur de rupture de stock s'affiche. Si les mises à jour lors de la réparation sont activées, le MIG utilise les sélections d'instances et la disponibilité actuelle que vous avez spécifiées pour choisir un autre type de machine pour la création de la VM. L'activation des mises à jour lors des réparations permet également de s'assurer que la VM recréée utilise la dernière configuration de flexibilité des instances.

Pour en savoir plus sur les réparations, consultez À propos de la réparation des VM pour la haute disponibilité.

Flexibilité des instances et autoscaling

Lorsque vous configurez l'autoscaling dans un MIG comportant plusieurs types de machines, les événements suivants se produisent :

  • Lorsqu'un autoscaler augmente la taille d'un MIG, celui-ci crée des VM en sélectionnant des types de machines de la même manière que dans un MIG sans autoscaling. Pour en savoir plus, consultez Comment un MIG sélectionne les types de machines dans ce document.

  • Lorsqu'un autoscaler effectue un scaling vertical dans un MIG, le MIG sélectionne les VM à supprimer comme suit :

    1. Le MIG supprime en priorité les VM qui préservent le mieux la forme de distribution cible.
    2. Si vous avez configuré des niveaux, le MIG donne la priorité à la suppression des VM qui utilisent des types de machines de niveau inférieur parmi les VM prioritaires.
    3. Enfin, le MIG vérifie la recommandation de l'autoscaler pour sélectionner les VM à supprimer.

L'autoscaling fonctionne efficacement lorsque votre MIG comporte des types de machines aux performances similaires (par exemple, des machines avec le même nombre de processeurs virtuels). Sinon, lorsque le MIG effectue un scaling à la hausse ou à la baisse, l'autoscaler peut tenter d'ajouter ou de supprimer plus fréquemment le type de machine le plus performant. Ce comportement peut se produire quel que soit le classement que vous avez configuré pour ce type de machine.

Pour en savoir plus sur l'autoscaling, consultez Procéder à l'autoscaling de groupes d'instances.

Cas d'utilisation

Les sections suivantes décrivent certains cas d'utilisation de la flexibilité des instances dans les MIG.

Optimisation des coûts

Un MIG peut provisionner automatiquement les instances les plus rentables pour votre infrastructure lorsque vous configurez les paramètres de flexibilité des instances de votre MIG comme suit :

  • Types de machines : sélectionnez les types de machines qui offrent le rapport coût/performances idéal pour votre charge de travail. Vous n'avez pas besoin de spécifier toutes les tailles disponibles pour chaque type de machine. Indiquez uniquement celles qui sont les plus rentables pour vos besoins.

  • Classement : attribuez des classements aux sélections d'instances en fonction de vos préférences de coût, le type de machine le moins cher étant le plus préféré. Cela permet de s'assurer que vous obtenez le type de machine le moins cher en fonction de la disponibilité.

  • Emplacement : lorsque vous créez le MIG, sélectionnez toutes les zones et la forme de distribution cible ANY. Cela augmente les chances d'obtenir les types de machines les moins chers dans les zones où ils sont disponibles.

En fonction des paramètres de flexibilité de vos instances, le MIG provisionne automatiquement la meilleure combinaison possible de types de machines disponibles pour répondre à vos critères de coût et à la capacité totale demandée. Cela permet de garantir le coût le plus bas possible à un moment donné.

Améliorer l'obtention

Vous pouvez configurer la flexibilité des instances de MIG pour améliorer l'accessibilité. Pour ce faire, sélectionnez autant de types de machines que possible qui sont compatibles avec votre application dans le même classement. Pour augmenter encore vos chances d'obtenir les ressources, vous pouvez choisir toutes les zones lorsque vous créez votre MIG et utiliser la forme de distribution cible ANY, qui donne la priorité aux zones où des ressources sont disponibles. En fonction des types de machines sélectionnés et de la forme ANY, le MIG trouve la capacité là où elle est la plus disponible.

Pour maximiser vos chances d'acquérir des VM Spot et réduire les risques de préemption, Google vous recommande d'inclure un large éventail de types de machines dans le même classement. Cela élargit la recherche de capacité disponible du MIG, ce qui permet d'obtenir les meilleurs résultats possible avec le modèle de provisionnement de spot.

Maximiser les performances

Vous pouvez configurer la flexibilité des instances de MIG pour optimiser les performances. Pour ce faire, sélectionnez les familles et les tailles de machines qui conviennent le mieux à votre charge de travail. Classez ensuite les types de machines en fonction de leurs performances, du plus élevé au plus faible, en utilisant la taille la plus recommandée au sein de chaque famille. En fonction du classement et des types de machines, le MIG sélectionne les machines les plus performantes parmi toutes les ressources disponibles.

De plus, spécifier un minCpuPlatform pour la sélection d'instance peut garantir que le MIG sélectionne une plate-forme de processeur performante.

Transition fluide vers les derniers types de machines

Vous pouvez configurer la flexibilité des instances de MIG pour donner la priorité à l'adoption des types de machines de dernière génération tout en utilisant les types de machines d'ancienne génération comme solution de secours pour la capacité. Pour ce faire, créez une sélection d'instances contenant les types de machines de dernière génération et attribuez-leur un rang inférieur (préférence plus élevée). Si ces types de machines nécessitent des configurations de disque différentes, utilisez les remplacements de disque dans cette sélection d'instance pour définir les propriétés de disque spécifiques. Créez une deuxième sélection d'instances contenant les types de machines de l'ancienne génération pour servir de solution de repli. Attribuez un rang plus élevé (préférence plus faible) à cette sélection d'instance.

Lors de la création du MIG, sélectionnez toutes les zones de la région et la forme de distribution cible "N'IMPORTE QUELLE ZONE". Cette configuration garantit que le MIG recherche d'abord les machines de dernière génération dans toutes les zones de la région. Le MIG ne provisionnera les machines de l'ancienne génération que s'il ne trouve pas suffisamment de capacité de dernière génération. Il s'assurera ainsi que la capacité totale demandée est toujours respectée tout en maximisant la part du matériel le plus récent.

Limites

La flexibilité des instances présente les limites suivantes :

  • La flexibilité des instances n'est pas disponible dans les MIG zonaux. Vous pouvez utiliser un MIG régional avec une seule zone à la place.

  • La flexibilité des instances n'est pas compatible avec les fonctionnalités de MIG suivantes :

  • Lorsque vous remplacez minCpuPlatform et disks, les limites suivantes s'appliquent également :

    • Vous devez activer les mises à jour lors des réparations.

    • Lorsque vous configurez minCpuPlatform ou disks pour une sélection d'instance existante, vous devez également inclure le champ machineTypes. Sans le champ machineTypes, l'opération échoue et renvoie une erreur.

    • Vous ne pouvez pas appliquer de règle avec état ni de configuration par instance aux disques remplacés par une sélection d'instance.

    • Vous ne pouvez remplacer les disques SSD locaux que pour les types de machines qui vous permettent de choisir un nombre de disques SSD locaux. Vous ne pouvez pas remplacer les disques SSD locaux pour les variantes -lssd des types de machines qui associent automatiquement des disques SSD locaux.

    • Vous devez spécifier un type de machine unique pour toutes les instances sélectionnées. Par exemple, vous ne pouvez pas spécifier n1-standard-2 dans une sélection avec un processeur Skylake et dans une autre sélection avec un processeur Broadwell.

  • Pour assurer un équilibrage de charge ou un autoscaling efficaces dans un MIG offrant une flexibilité d'instance, utilisez des types de machines aux performances similaires (par exemple, avec le même nombre de vCPU).

    • Dans Cloud Load Balancing, les types de machines aux performances similaires peuvent éviter la surutilisation du matériel plus petit et la sous-utilisation des machines plus rapides.

    • Dans l'autoscaling, les types de machines aux performances similaires peuvent empêcher l'ajout ou la suppression du type de machine le plus performant.

Étape suivante