À 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 en sélectionner un autre 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 et ses limites. Pour savoir comment configurer un MIG afin qu'il utilise la flexibilité des instances, consultez la section Ajouter de la flexibilité aux 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 la flexibilité des instances 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 ceux avec des architectures différentes (architecture x86 et Arm). Pour utiliser des types de machines avec des exigences différentes en termes de plate-forme de processeur ou de disques minimale, 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 la section 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 une seule 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 la préférence. Une valeur de classement inférieure signifie une préférence plus élevée. Le MIG tente de créer ses VM à l'aide de types de machines avec 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 le 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 sélection d'instances.

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 plate-forme de processeur minimale (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 à l'aide des 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 utilise 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'instances offre plus de contrôle et de flexibilité, en particulier lorsque vous utilisez différents matériels dans un MIG.

  • Remplacer la plate-forme de processeur minimale lors de la combinaison de types de machines qui s'exécutent sur différentes plates-formes de processeur. Vous pouvez spécifier une plate-forme de processeur minimale 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 de manière sélective des plates-formes de processeur minimales. Vous pouvez également configurer la sélection d'instances 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 de machines N1 et N2 dans une sélection, tout en vous assurant que les machines N1 s'exécutent sur Intel Skylake pour améliorer les performances.

  • Remplacer les disques lors de la combinaison de types de machines avec 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 stockage spécifique. Ce remplacement vous permet de combiner des types de machines avec des architectures différentes ou qui ne partagent pas les technologies de disque, et de spécifier les images de démarrage ou les disques appropriés requis pour chaque type de machine.

    Par exemple, vous pouvez combiner les 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 dans le modèle d'instance et dans la sélection d'instances par 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 lors de l'utilisation des remplacements de sélection d'instances, consultez la section Limites de ce document.

Exemple de remplacements de plate-forme de processeur et de disque minimales

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 d'une règle de flexibilité des instances remplace la configuration du modèle en spécifiant une plate-forme de processeur et une configuration de disque minimales.

  "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ée, 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 les 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.

Avec 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 peuvent équilibrer la distribution des VM entre les zones de manière aussi uniforme que possible. Dans une zone sélectionnée, le MIG donne la priorité aux 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 classements sont configurés, le MIG donne la priorité à la zone dans laquelle un type de machine basé sur les classements est disponible.

  • ANY_SINGLE_ZONE: le MIG sélectionne une zone qui comporte le plus de types de machines en fonction des classements, s'ils sont configurés, et où le MIG peut créer la plupart des VM à partir de réservations inutilisées.

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

Flexibilité des instances et réservations

Vous pouvez utiliser la flexibilité des instances avec des 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 votre préférence à l'aide de classements. Le MIG suit d'abord les classements, puis tient compte des réservations disponibles pour les types de machines d'un classement.

  • 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 vos sélections d'instances n'incluent pas le type de machine qui correspond 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 observé le plus faible afin de minimiser les interruptions 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 d'abord l'ordre de préférence, puis tient compte de la fiabilité des VM Spot dans une sélection d'instances.

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

Flexibilité des instances et réparations de 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. Lorsque les mises à jour lors de la réparation sont activées, le MIG utilise vos sélections d'instances spécifiées et la disponibilité actuelle pour choisir un autre type de machine pour la création de la VM. L'activation des mises à jour lors de la réparation 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 une 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 effectue un scaling horizontal d'un MIG, le MIG 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 la section Comment un MIG sélectionne les types de machines de ce document.

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

    1. Le MIG donne d'abord la priorité à la suppression des VM qui préservent le mieux la forme de distribution cible.
    2. Si vous avez configuré des classements, le MIG donne la priorité à la suppression des VM qui utilisent des types de machines de rang 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 horizontal ou vertical, 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 la page Effectuer l'autoscaling des groupes d'instances.

Cas d'utilisation

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

Améliorer la disponibilité

Vous pouvez configurer la flexibilité des instances MIG pour améliorer la disponibilité des ressources :

  • Types de machines : la configuration de base consiste à configurer plusieurs types de machines dans un seul classement. Ce classement unique leur donne la même préférence, ce qui permet au MIG de sélectionner l'un d'eux en fonction de la disponibilité des ressources. Toutefois, si vous avez des préférences, vous pouvez attribuer différents classements pour spécifier un ordre de préférence pour les types de machines.

  • Emplacement : vous pouvez augmenter vos chances d'obtenir les ressources en sélectionnant toutes les zones lors de la création de votre MIG et en utilisant la ANY forme de distribution cible. La forme ANY permet au MIG de rechercher la capacité dans toutes les zones.

  • VM Spot et préemption : lorsque vous utilisez des VM Spot, pour maximiser les chances d'obtenir les VM et minimiser leurs préemptions, Google vous recommande d'inclure autant de types de machines compatibles que possible dans le même classement. Cette configuration permet au MIG de choisir des types de machines avec les taux de préemption les plus faibles afin de minimiser les interruptions de votre charge de travail. Si vous configurez des types de machines avec des classements différents, le MIG donne la priorité aux types de machines en fonction du classement plutôt que des taux de préemption, ce qui peut entraîner la sélection d'un type de machine avec un taux de préemption plus élevé.

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 préféré pour votre charge de travail. Vous n'avez pas besoin de spécifier toutes les tailles disponibles de chaque type de machine. Spécifiez uniquement les tailles 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 : lors de la création du 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 de vos paramètres de flexibilité des 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 garantit le coût le plus bas possible à un moment donné.

Maximiser les performances

Vous pouvez configurer la flexibilité des instances MIG pour maximiser 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 bas, en utilisant la taille la plus préférée 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.

Étant donné que les générations de machines plus récentes offrent généralement des performances par cœur plus élevées, vous n'avez pas besoin de limiter la sélection de machines à la même taille (nombre de processeurs virtuels) dans différentes familles pour obtenir des performances équivalentes. Par exemple, lorsque vous sélectionnez des familles de machines, vous pouvez combiner différents nombres de processeurs, par exemple n1-standard-32 avec n2-standard-16.

De plus, la spécification d'une minCpuPlatform pour la sélection d'instances 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 MIG pour donner la priorité à l'adoption des types de machines de dernière génération tout en utilisant les types de machines de génération antérieure comme solution de repli 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-lui un classement 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'instances 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 génération antérieure pour servir de solution de repli. Attribuez un classement supérieur (préférence inférieure) à cette sélection d'instances.

Lors de la création du MIG, sélectionnez toutes les zones de la région et la forme de distribution cible ANY. 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 provisionne les machines de génération antérieure que s'il ne trouve pas suffisamment de capacité de dernière génération, ce qui garantit que la capacité totale demandée est toujours atteinte 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 compatible avec 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'instances existante, vous devez également inclure le champ machineTypes. Sans le champ machineTypes, l'opération échoue avec 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'instances.

    • 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 dans toutes les sélections d'instances. 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 garantir un équilibrage de charge efficace ou un autoscaling dans un MIG avec flexibilité des instances, utilisez des types de machines aux performances similaires, par exemple le même nombre de processeurs virtuels. Toutefois, les "performances similaires" ne se limitent pas à l'utilisation de la même taille dans différentes familles. Étant donné que les générations de machines plus récentes ont généralement des performances par processeur virtuel plus élevées, vous pouvez combiner différents nombres de processeurs virtuels (par exemple, combiner n1-standard-32 avec n2-standard-28).

    • 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