Cette page explique comment résoudre les problèmes liés à la consommation de réservations de ressources zonales Compute Engine.
Difficultés à suivre la consommation des réservations
Problème : Bien que vous puissiez afficher les détails d'une réservation ou surveiller la consommation des réservations pour afficher le nombre de VM réservées utilisées et surveiller les modifications apportées à ce nombre au fil du temps, vous ne pouvez pas afficher directement les VM qui consomment une réservation.
Résolution : Si vous pouvez créer une VM qui cible une réservation spécifique, la VM utilise la réservation spécifiée dans la propriété d'affinité (reservationAffinity
) de la VM. Sinon, la création de la VM échoue, car les propriétés ne correspondent pas ou aucune ressource réservée n'est disponible.
Vous pouvez également créer une VM qui cible une réservation spécifique afin de vérifier qu'elle est correctement configurée pour consommer automatiquement une réservation correspondante, puis créer la VM pour consommer toute réservation correspondante.
Problèmes pour les VM qui ne consomment pas de réservations
Si une VM ne peut pas consommer de réservation, cela peut être dû à un ou plusieurs des problèmes suivants :
- Les propriétés de la VM ne correspondent pas aux propriétés de la réservation.
- L'affinité de réservation de la VM est incorrecte.
- La réservation est déjà entièrement utilisée par d'autres VM correspondantes.
- Le quota de la ressource est dépassé
Cette section explique comment identifier chacun de ces problèmes, comment les résoudre et comment vérifier la consommation des réservations.
Propriétés de VM non concordantes
Problème : une VM ne peut pas consommer une réservation avec différentes propriétés de VM.
Pour identifier ce problème, sélectionnez l'une des méthodes suivantes :
Affichez les détails de la réservation et de la VM, puis vérifiez manuellement que leurs propriétés de VM correspondent :
Affichez les détails de la réservation que vous souhaitez que la VM utilise à l'aide de la commande
gcloud compute reservations describe
:gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
Remplacez les éléments suivants :
- RESERVATION_NAME est le nom d'une réservation.
- ZONE est la zone où se trouve la réservation.
Conservez ce résultat.
Affichez les détails de la VM qui doit utiliser la commande
gcloud compute instances describe
de la réservation.gcloud compute instances describe VM_NAME
où VM_NAME est le nom de la VM.
Conservez ce résultat.
À l'aide des résultats de description de VM et de description de réservation, vérifiez que les propriétés suivantes correspondent :
project
- Si la réservation est partagée avec plusieurs projets (si la propriété
shareType
est définie surSPECIFIC_PROJECTS
), le projet de la VM peut correspondre au projet où se trouve la réservation ou à l'un des projets répertoriés dansshareSettings
.
- Si la réservation est partagée avec plusieurs projets (si la propriété
zone
machineType
guestAccelerators.acceleratorType
guestAccelerators.acceleratorCount
minCpuPlatform
- Votre VM et votre réservation doivent avoir exactement la même configuration
minCpuPlatform
. Si vous spécifiez la valeurminCpuPlatform
pour l'une d'entre elles, elles doivent toutes deux avoir la même valeur pour cette propriété. Sinon, la réservation et la VM doivent omettre la propriété. Par exemple, la définition deminCpuPlatform
sur"Intel Broadwell"
lors de la création d'une VM ne correspond pas à la valeurminCpuPlatform
de"Automatic"
dans une réservation.
- Votre VM et votre réservation doivent avoir exactement la même configuration
localSsds.interface
- La réservation et la VM doivent avoir le même nombre de disques SSD locaux, avec une propriété
localSsds.interface
correspondante pour chaque disque SSD local.
- La réservation et la VM doivent avoir le même nombre de disques SSD locaux, avec une propriété
resourcePolicies
*
* Uniquement si une réservation spécifie une stratégie d'emplacement compact.
Créez une VM qui cible une réservation spécifique, qui renvoie une erreur si les propriétés ne correspondent pas. Pour obtenir des instructions, consultez la section Vérifier la consommation des réservations.
Résolution : Mettez à jour les propriétés de VM non concordantes en effectuant l'une des opérations suivantes :
- Mettez à jour la VM pour qu'elle corresponde aux propriétés de la réservation.
- Supprimez la réservation, puis créez une réservation correspondant aux propriétés de la VM.
Pour vérifier si la VM consomme désormais la réservation, consultez la section Vérifier la consommation de la réservation.
Si les propriétés de la VM et de la réservation correspondent, mais que la VM ne consomme pas la réservation, passez à la section suivante.
Les VM ne respectent pas une stratégie d'emplacement
Problème: une VM tente de consommer une réservation sans spécifier la stratégie d'emplacement compact de la réservation.
Solution: Si une réservation à projet unique spécifie une stratégie d'emplacement compact, une VM doit spécifier exactement la même stratégie d'emplacement compact pour consommer la réservation. Sinon, la VM ne peut pas consommer la réservation.
Pour vous assurer qu'une VM consomme une réservation qui spécifie une stratégie d'emplacement compact, essayez l'une des solutions suivantes:
Si vous avez créé une réservation à projet unique en spécifiant directement les propriétés, appliquez la stratégie d'emplacement compact lors de la création de VM.
Si vous avez créé une réservation pour un projet unique en spécifiant un modèle d'instance, sélectionnez l'une des méthodes suivantes:
Recommandé: utilisez le modèle d'instance de la réservation pour créer des VM. Cette action applique automatiquement la même stratégie d'emplacement compact que celle spécifiée dans la réservation à chaque VM que vous créez.
Appliquez la stratégie d'emplacement compact lors de la création de VM. Cette méthode nécessite de vous assurer manuellement que les propriétés de vos VM et la stratégie d'emplacement compact correspondent exactement. Les propriétés non concordantes empêchent la consommation.
Les VM spécifient une stratégie d'emplacement compact différente
Problème Une VM tente de consommer une réservation, mais la stratégie d'emplacement compact spécifiée dans la VM et dans la réservation ne sont pas identiques.
Solution: Si une réservation à projet unique spécifie une stratégie d'emplacement compact, une VM doit spécifier exactement la même stratégie d'emplacement compact pour consommer la réservation. Sinon, la VM ne peut pas consommer la réservation.
Pour résoudre ce problème, essayez l'une des solutions suivantes :
Si vous avez créé une réservation à projet unique en spécifiant directement les propriétés, appliquez la stratégie d'emplacement compact de la réservation lors de la création de VM.
Si vous avez créé une réservation à projet unique en spécifiant un modèle d'instance, utilisez le même modèle pour créer des VM. Cette action applique automatiquement la même stratégie d'emplacement compact que celle spécifiée dans la réservation à chaque nouvelle VM que vous créez.
L'affinité de réservation de la VM est incorrecte
Problème : l'affinité de réservation de la VM est mal configurée. L'affinité de réservation d'une VM contrôle les réservations que cette VM peut consommer. Pour vérifier l'affinité de réservation de votre VM, procédez comme suit :
-
Affichez les détails de la réservation que vous souhaitez que la VM utilise à l'aide de la commande
gcloud compute reservations describe
.gcloud compute reservations describe RESERVATION_NAME --zone=ZONE
Remplacez les éléments suivants :
- RESERVATION_NAME est le nom d'une réservation.
- ZONE est la zone où se trouve la réservation.
Dans le résultat, recherchez la valeur du champ
specificReservationRequired
,true
oufalse
. -
Affichez les détails de la VM à l'aide de la commande
gcloud compute instances describe
.gcloud compute instances describe VM_NAME
où VM_NAME est le nom de la VM.
Dans le résultat, recherchez le champ
reservationAffinity
, qui ressemble à ceci :... reservationAffinity: consumeReservationType: RESERVATION_AFFINITY key: compute.googleapis.com/reservation-name values: - RESERVATION_NAME ...
Solution : mettez à jour la propriété reservationAffinity
de la VM afin qu'elle soit compatible avec le champ specificReservationRequired
de la réservation en utilisant l'une des configurations acceptées suivantes :
-
Si le champ
specificReservationRequired
de la réservation esttrue
, la propriétéreservationAffinity
de la VM doit correspondre aux éléments suivants :... reservationAffinity: consumeReservationType: SPECIFIC_RESERVATION key: compute.googleapis.com/reservation-name values: - RESERVATION_NAME ...
où RESERVATION_NAME est le nom de la réservation.
-
Si le champ
specificReservationRequired
de la réservation estfalse
, la propriétéreservationAffinity
de la VM doit correspondre aux éléments suivants :... reservationAffinity: consumeReservationType: ANY_RESERVATION ...
Vous devez redémarrer la VM pour effectuer la mise à jour. Après la mise à jour, pour vérifier si la VM consomme la réservation, consultez la section Vérifier la consommation de la réservation.
Si l'affinité de réservation de la VM est correctement configurée, mais que la VM ne consomme aucune réservation, passez à la section suivante.
La réservation est déjà entièrement utilisée
Problème : le nombre de VM actuellement utilisées pour cette réservation correspond au nombre total de VM réservées pour la réservation.
Pour identifier ce problème, affichez les détails de la réservation et vérifiez que le nombre de VM actuellement utilisées pour cette réservation est inférieur au nombre total de VM réservées pour la réservation.
Résolution : Vous pouvez augmenter le nombre de VM disponibles à consommer pour la réservation en effectuant l'une des opérations suivantes :
- Augmentez le nombre de VM dans la réservation en redimensionnant la réservation.
- Créez une réservation avec les mêmes propriétés si la réservation réserve déjà le nombre maximal de VM.
- Réduisez le nombre d'autres VM qui consomment la réservation. Pour en savoir plus, consultez la section VM consommant involontairement des réservations.
Pour vérifier si la VM consomme désormais la réservation, consultez la section Vérifier la consommation de la réservation.
Si la réservation n'est pas entièrement consommée, mais que la VM ne consomme pas la réservation, vous pouvez étudier le problème en créant une VM qui cible une réservation spécifique, qui renvoie une erreur si la consommation échoue. Pour en savoir plus, passez à la section suivante.
Le nombre de VM n'est pas restauré après l'arrêt ou la suppression d'une VM
Problème : Si vous arrêtez, suspendez ou supprimez une VM qui consomme une réservation, l'opération doit se terminer avant que la VM ne soit plus comptabilisée dans la réservation et que les ressources précédemment consommées soient à nouveau disponibles pour la consommation.
Résolution : Attendez quelques minutes que l'opération d'arrêt, de suspension ou de suppression des VM se termine. Ensuite, pour vérifier que les VM arrêtées, suspendues ou supprimées ne sont plus comptabilisées dans la réservation, vérifiez le nombre total de VM consommées dans la réservation en utilisant l'une des méthodes suivantes :
Recommandé : Surveillez la réservation et recherchez une modification dans les mesures de la réservation.
Affichez les détails de la réservation et vérifiez si la valeur du champ
inUseCount
a diminué. Si sa valeur n'a pas diminué, une ou plusieurs VM ont commencé à consommer la réservation pendant la durée de l'opération d'arrêt, de suspension ou de suppression.
VM qui consomment involontairement des réservations
Problème : Lorsque vous créez des réservations utilisées automatiquement (par défaut), les VM peuvent consommer involontairement ces réservations.
Résolution : Vous pouvez aider à contrôler quelles VM consomment des réservations en procédant comme suit :
- Utilisez des VM qui ne peuvent consommer aucune réservation, le cas échéant.
- Utilisez des réservations qui ne sont consommées que lorsqu'elles sont spécifiquement ciblées plutôt que les réservations consommées automatiquement.
Quota de ressources dépassé
Problème: une réservation partagée n'est pas utilisée, car un quota a été dépassé pour une ressource particulière.
Les réservations partagées présentent une exigence supplémentaire en ce qui concerne les quotas. Le projet propriétaire doit disposer d'un quota suffisant pour deux fois les ressources réservées aux projets clients afin d'utiliser les ressources réservées.
Solution: Demandez un quota supplémentaire pour la ressource à utiliser.