À propos de la flexibilité des instances pour les VM créées de manière groupée

Ce document décrit la flexibilité des instances lorsque vous créez des VM de manière groupée à l'aide de Compute Engine.

Lorsque vous créez des machines virtuelles (VM) de manière groupée dans une région, si votre application n'est pas limitée à un seul type de machine, vous pouvez augmenter le taux de réussite du provisionnement du nombre de VM requis en configurant la flexibilité des instances. La flexibilité des instances vous permet de spécifier un ou plusieurs types de machines adaptés à votre charge de travail. Compute Engine provisionne ensuite les VM à l'aide de l'un de ces types de machines, en fonction de la capacité et des quotas disponibles.

Utiliser la flexibilité des instances

Pour configurer la flexibilité des instances, vous devez lister les types de machines appropriés en définissant une ou plusieurs sélections d'instances dans votre requête d'insertion groupée régionale. Par exemple, dans une requête REST, vous incluez l'objet instanceFlexibilityPolicy, dans lequel vous définissez un ou plusieurs objets instanceSelections, chacun contenant une liste de types de machines.

Lorsque Compute Engine reçoit la requête, il valide d'abord les types de machines et leur compatibilité zonale, en excluant les entrées non valides. Si au moins une configuration valide existe, l'opération se poursuit.

Compute Engine tente ensuite de provisionner des VM en fonction du matériel, du quota et des réservations disponibles. Si vous configurez des niveaux pour vos sélections d'instances, les sélections avec un niveau inférieur sont prioritaires. Dans chaque niveau, Compute Engine tient compte des réservations inutilisées et des conseils concernant les VM Spot pour sélectionner les types de machines ayant une faible probabilité de préemption.

Sélection de zones lorsqu'une forme de distribution cible est définie

Lorsque vous utilisez la flexibilité des instances avec une requête bulkInsert régionale, vous pouvez spécifier une forme de distribution cible pour contrôler la façon dont les VM sont réparties entre les zones de la région. Compute Engine sélectionne des zones pour provisionner des VM en fonction de cette forme, comme suit :

  • ANY_SINGLE_ZONE : Compute Engine sélectionne une seule zone disposant de la plus grande capacité pour les types de machines ayant une préférence plus élevée.
  • BALANCED : Compute Engine distribue les VM de la manière la plus uniforme possible dans les zones disposant de ressources disponibles. Dans chaque zone, Compute Engine donne la priorité aux types de machines ayant une préférence plus élevée.
  • ANY : Compute Engine sélectionne les zones disposant de ressources disponibles. Si des niveaux sont configurés, Compute Engine donne la priorité aux zones pour provisionner des VM avec des types de machines ayant une préférence plus élevée.

Pour en savoir plus, consultez Créer des VM de manière groupée dans une région.

Provisionnement minimal de VM et flexibilité des instances

Si vous définissez une valeur pour le nombre minimal requis de VM (minCount) dans la requête bulkInsert, l'API tente de créer au moins ce nombre de VM. Si Compute Engine ne peut pas provisionner le nombre minimal de VM requis (minCount), l'opération entière échoue et Compute Engine ne crée aucune VM. Lorsque vous utilisez minCount avec la flexibilité des instances, Compute Engine donne la priorité au provisionnement des VM en fonction de leur disponibilité plutôt que de leur classement, comme suit :

  • Compute Engine donne la priorité au provisionnement du nombre maximal de VM (jusqu'à count), même si cela implique d'utiliser des machines moins intéressantes. Par exemple, si votre requête spécifie un minimum d'une VM requise (minCount=1) et un maximum de 10 VM (count=10), et si Compute Engine a la capacité de provisionner une VM à priorité plus élevée ou six VM à priorité plus faible, il provisionne les six VM à priorité plus faible.
  • Si Compute Engine peut provisionner le même nombre maximal de VM (jusqu'à count) en utilisant différentes sélections d'instances, il donne la priorité à la sélection avec la préférence la plus élevée. Par exemple, si votre requête spécifie un minimum d'une VM requise (minCount=1) et un maximum de 10 VM (count=10), et si Compute Engine peut provisionner six VM en utilisant une sélection d'instances de préférence supérieure ou inférieure, Compute Engine provisionne les six VM à partir de la sélection de préférence supérieure.

Pour en savoir plus, consultez la propriété minCount dans bulkInsert.

Scénarios de validation et d'erreur d'insertion groupée

Compute Engine effectue une validation initiale des types de machines et de leur compatibilité zonale, en excluant toute entrée non valide. S'il reste au moins une configuration valide après cette vérification initiale, Compute Engine procède à la création de la VM.

Toutefois, certaines validations de votre configuration ne peuvent avoir lieu qu'une fois que Compute Engine a sélectionné les zones et les types de machines à utiliser pour le provisionnement, en fonction de votre stratégie de flexibilité des instances et de la capacité disponible. Si, lors de cette étape de validation ultérieure, la combinaison spécifique de type de machine et de zone choisie pour le provisionnement s'avère non valide, l'ensemble de la requête d'insertion groupée échoue et des erreurs de validation sont générées. Cet échec peut se produire même si d'autres configurations dans instanceFlexibilityPolicy étaient initialement valides.

Limites

Les limites suivantes s'appliquent lorsque vous utilisez la flexibilité des instances pour la création groupée de VM :

  • Vous ne pouvez spécifier la flexibilité des instances que pour les requêtes bulkInsert régionales. Vous ne pouvez pas l'utiliser avec des requêtes zonales.
  • La flexibilité des instances n'est pas compatible avec les fonctionnalités AI Hypercomputer, y compris les réservations futures, le modèle de provisionnement de démarrage flexible et les GPU A3 Ultra, A4 et plus récents.
  • Vous ne pouvez pas spécifier de types de machines personnalisés avec la flexibilité des instances.
  • Vous pouvez spécifier jusqu'à 10 types de machines différents pour un maximum de 10 sélections d'instances différentes.

Étapes suivantes