Remplacer, retirer ou supprimer des stratégies d'emplacement


Ce document explique comment remplacer, retirer ou supprimer des stratégies d'emplacement.

Remplacer, retirer ou supprimer des stratégies d'emplacement est utile dans les cas suivants :

  • Remplacer une stratégie d'emplacement dans une instance de machine virtuelle (VM) pour déplacer la VM à une position différente par rapport aux autres VM.

  • Retirer une stratégie d'emplacement d'une VM lorsque vous n'êtes plus intéressé par sa position par rapport aux autres VM.

  • Supprimer une stratégie d'emplacement lorsque vous n'en avez plus besoin.

Avant de commencer

  • Consultez les restrictions applicables aux stratégies d'emplacement.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Rôles requis

Pour obtenir les autorisations nécessaires pour remplacer, retirer ou supprimer des stratégies d'emplacement, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour remplacer, retirer ou supprimer des stratégies d'emplacement. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour remplacer, retirer ou supprimer des stratégies d'emplacement :

  • Pour remplacer ou retirer une stratégie d'emplacement d'une VM : compute.instances.update on the project
  • Pour supprimer une stratégie d'emplacement : compute.resourcePolicies.delete on the project

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Remplacer une stratégie d'emplacement dans une VM

Avant de remplacer une stratégie d'emplacement par répartition dans une VM par une stratégie d'emplacement compact, assurez-vous que la VM utilise un type de machine et une stratégie de maintenance de l'hôte compatibles. Si vous devez mettre à jour la VM avant de remplacer sa stratégie d'emplacement, effectuez l'une des opérations suivantes, ou les deux :

Après avoir remplacé la stratégie d'emplacement dans une VM, vous devez redémarrer la VM pour que la nouvelle stratégie d'emplacement appliquée soit effective.

Pour remplacer une stratégie d'emplacement dans une VM, sélectionnez l'une des options suivantes :

gcloud

  1. Créez un fichier YAML vide.

  2. Pour exporter les propriétés d'une VM dans le fichier YAML que vous venez de créer, utilisez la commande gcloud compute instances export.

    gcloud compute instances export VM_NAME \
        --destination=FILE_PATH \
        --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME : nom d'une VM existante qui spécifie une stratégie d'emplacement.

    • FILE_PATH: chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.

    • ZONE : zone où se trouve la VM.

  3. Dans le fichier de configuration YAML, modifiez la valeur du champ resourcePolicies pour spécifier une autre stratégie d'emplacement.

    resourcePolicies:
    - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement. Vous ne pouvez spécifier qu'une stratégie d'emplacement située dans le même projet que la VM.

    • REGION : région où se trouve la stratégie.

    • POLICY_NAME : nom de la stratégie d'emplacement.

  4. Pour mettre à jour la VM et la redémarrer, exécutez la commande gcloud compute instances update-from-file avec l'option --most-disruptive-allowed-action définie sur RESTART.

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME : Nom de la VM.

    • YAML_FILE: chemin d'accès au fichier YAML avec les données de configuration que vous avez modifiées à l'étape précédente.

    • ZONE : zone où se trouve la VM.

REST

  1. Créez un fichier JSON vide.

  2. Pour exporter les propriétés d'une VM existante, envoyez une requête GET à la méthode instances.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel se trouve la VM.

    • ZONE : zone où se trouve la VM.

    • VM_NAME : nom d'une VM existante qui spécifie une stratégie d'emplacement.

  3. Dans le fichier JSON vide que vous avez créé lors des étapes précédentes, procédez comme suit :

    1. Saisissez les propriétés de la VM à partir de la sortie de la requête GET.

    2. Recherchez le champ resourcePolicies, puis modifiez sa valeur pour spécifier une autre stratégie d'emplacement.

      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
      

      Remplacez les éléments suivants :

      • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement. Vous ne pouvez spécifier qu'une stratégie d'emplacement située dans le même projet que la VM.

      • REGION: région où se trouve la stratégie d'emplacement.

      • POLICY_NAME: nom de la stratégie d'emplacement.

  4. Pour mettre à jour la VM et la redémarrer, envoyez une requête PUT à la méthode instances.update. Dans la requête, procédez comme suit :

    • Dans l'URL de la requête, incluez le paramètre de requête most_disruptive_allowed_action défini sur RESTART.

    • Pour le corps de la requête, utilisez les informations de configuration de la VM du fichier JSON que vous avez créé et mis à jour aux étapes précédentes.

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART
    
    {
      ...
      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ],
      ...
    }
    

Pour en savoir plus sur la mise à jour des propriétés d'une VM, consultez la section Mettre à jour les propriétés d'une VM.

Supprimer une stratégie d'emplacement d'une VM

Si vous souhaitez retirer une stratégie d'emplacement par répartition d'une VM avec deux domaines de disponibilité ou plus, vous pouvez le faire sans arrêter la VM. Si vous souhaitez retirer une stratégie d'emplacement compact ou une stratégie d'emplacement par répartition avec un seul domaine de disponibilité, vous devez d'abord arrêter la VM avant de retirer la stratégie d'emplacement qui lui est associée.

Le fait de retirer une stratégie d'emplacement d'une VM n'a aucune incidence sur son emplacement physique. Toutefois, si la VM migre à chaud, Compute Engine peut la déplacer vers un autre emplacement physique.

Pour retirer une stratégie d'emplacement d'une VM, sélectionnez l'une des options suivantes :

gcloud

Pour supprimer une stratégie d'emplacement d'une VM, utilisez la commande gcloud compute instances remove-resource-policies.

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Remplacez les éléments suivants :

  • VM_NAME : nom d'une VM existante qui spécifie une stratégie d'emplacement.

  • POLICY_NAME : nom de la stratégie d'emplacement appliquée à la VM. Pour vérifier le nom de la stratégie d'emplacement, affichez les détails de la VM et vérifiez la valeur du champ resourcePolicies.

  • ZONE : zone où se trouve la VM.

REST

Pour supprimer une stratégie d'emplacement d'une VM, envoyez une requête POST à la méthode instances.removeResourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/removeResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la VM.

  • ZONE : zone où se trouve la VM.

  • VM_NAME : nom d'une VM existante qui spécifie une stratégie d'emplacement.

  • REGION : région où se trouve la stratégie d'emplacement.

  • POLICY_NAME : nom de la stratégie d'emplacement appliquée à la VM. Pour vérifier le nom de la stratégie d'emplacement, affichez les détails de la VM et vérifiez la valeur du champ resourcePolicies.

Supprimer une stratégie d'emplacement

Vous ne pouvez supprimer une stratégie d'emplacement que si elle n'est appliquée à aucune ressource Compute Engine. Sinon, la suppression de la stratégie d'emplacement échoue. Si vous souhaitez supprimer une stratégie d'emplacement appliquée à une ou plusieurs ressources Compute Engine, effectuez l'une des opérations suivantes :

  • Si la stratégie est appliquée uniquement à des VM et que vous souhaitez conserver les VM, procédez comme suit :

    1. Retirez la stratégie d'emplacement des VM, comme décrit dans ce document.

    2. Supprimez la stratégie d'emplacement comme décrit dans cette section.

  • Sinon, procédez comme suit :

    1. Facultatif : Retirez la stratégie d'emplacement de toute VM que vous souhaitez conserver, comme décrit dans ce document.

    2. Supprimez toutes les autres ressources Compute Engine auxquelles la stratégie d'emplacement est appliquée dans l'ordre suivant :

      1. VM

      2. Réservations

      3. Modèles d'instances

    3. Supprimez la stratégie d'emplacement comme décrit dans cette section.

Pour supprimer une stratégie d'emplacement, sélectionnez l'une des options suivantes :

gcloud

Pour supprimer une stratégie d'emplacement, utilisez la commande gcloud compute resource-policies delete.

gcloud compute resource-policies delete POLICY_NAME \
    --region=REGION

Remplacez les éléments suivants :

  • POLICY_NAME : nom d'une stratégie d'emplacement existante

  • REGION : région où se trouve la stratégie.

REST

Pour supprimer une stratégie d'emplacement, envoyez une requête DELETE à la méthode resourcePolicies.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve la stratégie d'emplacement.

  • REGION : région où se trouve la stratégie.

  • POLICY_NAME : nom d'une stratégie d'emplacement existante.

Étape suivante