Configurer des adresses IP avec état dans les groupes d'instances gérés


En configurant des adresses IP avec état dans un groupe d'instances géré (MIG), vous vous assurez que les adresses IP sont conservées lorsque les instances de VM du groupe sont autoréparées, mises à jour et recréées.

Vous pouvez conserver les adresses IPv4 internes et externes. Vous pouvez configurer l'attribution automatique d'adresses IP ou attribuer des adresses IP spécifiques à chaque instance de VM d'un MIG.

Avant de commencer

  • Revoyez les pages expliquant dans quels cas utiliser des MIG avec état et le fonctionnement des MIG avec état.
  • 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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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. Terraform

      Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Pour en savoir plus, consultez Set up authentication for a local development environment.

      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.

Limites

Un MIG avec des adresses IP avec état présente les limites suivantes :

  • Les adresses IPv6 ne sont pas compatibles.

  • Les adresses IP internes ne sont pas compatibles avec les réseaux qui n'ont pas de sous-réseau (par exemple, les anciens réseaux).

Un MIG doté d'une configuration avec état (un MIG avec état) présente les limites suivantes :

  • Vous ne pouvez pas utiliser l'autoscaling si votre MIG dispose d'une configuration avec état.
  • Si vous souhaitez utiliser des mises à jour progressives automatiques, vous devez définir la méthode de remplacement sur RECREATE.
  • Pour les MIG régionaux avec état, vous devez désactiver la redistribution proactive (définissez le type de redistribution sur NONE) pour empêcher la suppression d'instances avec état lors de redistributions interzones automatiques.
  • Si vous utilisez une configuration sur toutes les instances pour remplacer les propriétés d'un modèle d'instance, vous ne pouvez pas spécifier ces propriétés à la fois dans une configuration par instance et dans une configuration sur toutes les instances du groupe.

Tarifs

Les adresses IP externes vous sont facturées conformément aux tarifs du réseau.

Quand utiliser des adresses IP avec état

La conservation des adresses IP des instances est utile dans les scénarios suivants :

  • Votre application nécessite qu'une adresse IP reste statique après son attribution (par exemple, Kafka).
  • La configuration de votre application dépend d'adresses IP spécifiques, par exemple un serveur DNS.
  • Les utilisateurs, y compris d'autres applications, accèdent à votre serveur via une adresse IP statique dédiée, par exemple un serveur de fichiers.
  • Vous devez migrer des charges de travail existantes sans modifier la configuration du réseau.

Configurer des adresses IP avec état pour toutes les VM d'un groupe

La configuration d'adresses IP avec état pour toutes les VM d'un MIG est utile dans les scénarios suivants :

  • Votre application nécessite qu'une adresse IP reste statique après son attribution. Mais votre application ne nécessite pas l'attribution d'adresses IP spécifiques à des instances spécifiques. Les adresses IP peuvent être attribuées automatiquement lors de la création de l'instance.
  • Vos utilisateurs, y compris d'autres applications, accèdent à vos serveurs via des adresses IP statiques que vous publiez après le déploiement de votre application.
  • Vous souhaitez bénéficier de l'autoréparation des instances et des mises à jour automatiques tout en préservant l'adresse IP statique attribuée automatiquement lors de la création de l'instance.

Pour conserver les adresses IP internes ou externes statiques pour les instances de VM existantes et futures du groupe, configurez-les dans la règle avec état.

Lorsque vous ajoutez une configuration d'adresse IP avec état à la règle avec état du groupe, le MIG applique la configuration de la manière suivante :

  • Pour les nouvelles instances, le groupe d'instances géré attribue et réserve automatiquement les adresses IP statiques.
  • Pour les instances existantes, le groupe d'instances géré convertit les adresses IP internes ou externes éphémères utilisées en adresses statiques en réservant les adresses IP statiques correspondantes.
  • Pour les instances existantes sans adresse IP externe, le MIG attribue et réserve les adresses IP statiques, et ajoute une configuration d'accès à l'interface réseau correspondante avec les valeurs par défaut suivantes :

    "accessConfigs": [
      {
        "kind": "compute#accessConfig",
        "name": "External NAT",
        "natIP": "XX.XX.XX.XX",
        "networkTier": "PREMIUM",
        "type": "ONE_TO_ONE_NAT"
      }
    ]
    

Pour réserver une adresse IP statique, le groupe d'instances géré crée une ressource Adresse.

Configurer des adresses IP avec état lors de la création d'un groupe d'instances géré

Utilisez la console Google Cloud, la gcloud CLI, Terraform ou REST.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Cliquez sur Créer un groupe d'instances.

  4. Sélectionnez Nouveau groupe d'instances géré (avec état).

  5. Renseignez un Nom pour le groupe d'instances.

  6. Sélectionnez un modèle d'instance.

  7. Dans la section Nombre d'instances, spécifiez le nombre d'instances que vous souhaitez inclure au sein du groupe.

  8. Sous Configuration avec état, développez les adresses IP externes et internes que vous souhaitez définir avec état.

    1. Sous Avec état, sélectionnez Oui.
    2. Dans la liste déroulante Lors de la suppression permanente de l'instance, sélectionnez l'action à effectuer sur l'adresse IP avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :
      • Dissocier l'adresse IP : (par défaut) Supprimez l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
      • Supprimer l'adresse IP : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.
    3. Une fois que vous avez terminé la configuration avec état, cliquez sur Terminé.
  9. Cliquez sur Créer.

gcloud

Lorsque vous créez un MIG, pour spécifier les adresses IP des interfaces réseau du modèle d'instance qui doivent être avec état, utilisez une ou plusieurs des options suivantes avec la commande gcloud compute instance-groups managed create :

  • --stateful-internal-ip pour marquer une adresse IP interne d'une interface réseau donnée comme étant avec état.
  • --stateful-external-ip pour marquer une adresse IP externe d'une interface réseau donnée comme étant avec état.
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --instance-redistribution-type NONE \
    --stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG à créer.
  • INSTANCE_TEMPLATE : nom du modèle d'instance à utiliser lors de la création d'instances.
  • SIZE : nombre initial d'instances dont vous avez besoin dans ce groupe.
  • NI_NAME : (Facultatif) Nom de l'interface réseau. Si elle n'est pas spécifiée, l'option enabled est obligatoire et l'interface réseau principale nommée nic0 est utilisée par défaut. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier cette option pour chaque adresse IP dans chaque interface réseau.
  • DELETE_RULE : (Facultatif) Indique ce qu'il advient de la ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • never : (Par défaut) Ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • on-permanent-instance-deletion : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

Exemple

Vous devez créer un groupe régional d'instances de VM avec des adresses IP internes statiques pour les réseaux par défaut et personnalisés, et des adresses IP externes statiques uniquement pour le réseau par défaut. Vous souhaitez que les adresses soient attribuées automatiquement, mais vous devez les conserver via l'autoréparation, les mises à jour et les événements de recréation de l'instance. Vous stockez la configuration d'instance dans un modèle d'instance nommé node-template.

Pour créer le groupe, exécutez la commande suivante :

gcloud compute instance-groups managed create example-group \
    --region us-east1 \
    --template node-template \
    --base-instance-name node \
    --instance-redistribution-type NONE \
    --size 3 \
    --stateful-internal-ip interface-name=nic0,auto-delete=on-permanent-instance-deletion
    --stateful-internal-ip interface-name=nic1,auto-delete=on-permanent-instance-deletion
    --stateful-external-ip enabled,auto-delete=on-permanent-instance-deletion

Les adresses IP internes dans les interfaces réseau nic0 et nic1 et l'adresse IP externe dans l'interface réseau nic0 sont configurées comme étant avec état pour toutes les instances du groupe. Le groupe réserve automatiquement des adresses IP internes et externes statiques pour chaque instance. L'option auto-delete étant définie sur on-permanent-instance-deletion, le groupe supprime automatiquement les réservations d'adresses IP statiques lorsque vous supprimez les instances associées ou le groupe entier.

Pour vérifier que les adresses IP internes dans les interfaces réseau nic0 et nic1 et l'adresse IP externe dans l'interface réseau nic0 sont configurées avec état, exécutez la commande suivante :

gcloud compute instance-groups managed describe example-group \
    --zone us-east1-c

Le résultat se présente comme suit :

baseInstanceName: node
...
name: example-group
...
statefulPolicy:
  preservedState:
    internalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
      nic1:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
    externalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
...

Vous pouvez constater que la règle avec état du groupe déclare les adresses IP internes dans les interfaces réseau nic0 et nic1 et les adresses IP externes de l'interface réseau nic0 comme étant avec état, avec une règle pour supprimer les réservations d'adresses IP statiques Réservations lors de la suppression permanente d'une instance.

Terraform

Si vous n'avez pas encore créé de modèle d'instance, qui spécifie le type de machine, l'image de disque de démarrage, le réseau et les autres propriétés de VM que vous souhaitez pour chaque VM de votre MIG, créez Un modèle d'instance.

Lors de la création d'un MIG, pour spécifier les adresses IP dans les interfaces réseau du modèle d'instance qui doivent être avec état, utilisez un ou plusieurs des blocs suivants :

  • stateful_internal_ip pour marquer une adresse IP interne d'une interface réseau donnée comme étant avec état.
  • stateful_external_ip pour marquer une adresse IP externe d'une interface réseau donnée comme étant avec état.

L'exemple suivant configure des adresses IP avec état lors de la création d'un MIG régional. Pour en savoir plus sur la ressource utilisée dans l'exemple, consultez la section consacrée à la ressource google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name               = "example-group"
  base_instance_name = "node"
  target_size        = 3
  region             = "us-east1"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  update_policy {
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  stateful_internal_ip {
    interface_name = "nic0"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
  stateful_internal_ip {
    interface_name = "nic1"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
  stateful_external_ip {
    interface_name = "nic0"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

REST

Lors de la création d'un groupe d'instances géré, pour spécifier les adresses IP dans les interfaces réseau du modèle d'instance qui doivent être avec état, incluez-les dans le champ statefulPolicy dans le corps de la requête de la méthode instanceGroupManagers.insert ou regionInstanceGroupManagers.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      },
      "externalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  }
}

Remplacez les éléments suivants :

  • PROJECT : ID du projet pour la requête.
  • REGION : pour les MIG régionaux, la région où se trouve le MIG. Pour les MIG zonaux, remplacez regions/REGION par zones/ZONE et spécifiez la zone où se trouve le MIG.
  • NAME : nom du MIG à créer.
  • INSTANCE_TEMPLATE : nom du modèle d'instance à utiliser lors de la création d'instances.
  • SIZE : nombre initial d'instances dont vous avez besoin dans ce groupe.
  • NI_NAME : (Facultatif) Nom de l'interface réseau. Si elle n'est pas spécifiée, l'option enabled est obligatoire et l'interface réseau principale nommée nic0 est utilisée par défaut. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.
  • DELETE_RULE : (facultatif) indique ce qui doit arriver à une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • NEVER : (par défaut) ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • ON_PERMANENT_INSTANCE_DELETION : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

Exemple

Vous devez créer un groupe régional d'instances de VM avec des adresses IP internes statiques pour les réseaux par défaut et personnalisés, et des adresses IP externes statiques uniquement pour le réseau par défaut. Vous souhaitez que les adresses soient attribuées automatiquement, mais vous devez les conserver via l'autoréparation, les mises à jour et les événements de recréation de l'instance. Vous stockez la configuration d'instance dans un modèle d'instance nommé node-template.

Pour créer le groupe, utilisez la méthode regionInstanceGroupManagers.insert :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers

{
  "name": "example-group",
  "baseInstanceName": "node",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/node-template"
    }
  ],
  "targetSize": 3,
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
        "nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
      "externalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
    }
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  }
}

Les adresses IP internes dans les interfaces réseau nic0 et nic1 et les adresse IP externes dans l'interface réseau nic0 sont configurées comme étant avec état pour toutes les instances du groupe. Le groupe réserve automatiquement des adresses IP internes et externes statiques pour chaque instance. Le champ auto-delete étant défini sur ON_PERMANENT_INSTANCE_DELETION, le groupe supprime automatiquement les réservations d'adresses IP statiques lorsque vous supprimez des instances associées ou le groupe entier.

Utilisez la méthode regionInstanceGroupManagers.get pour vérifier que les adresses IP internes dans les interfaces réseau nic0 et nic1 et les adresses IP externes dans l'interface réseau nic0 sont configurées dans la règle avec état de la nouvelle ressource regionInstanceGroupManagers :

GET https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group

La réponse contient la règle avec état configurée :

{
  "name": "example-group",
  "baseInstanceName": "node",
  ...
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
        "nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
      "externalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
    }
  }
  ...
}

Vous pouvez constater que la règle avec état du groupe déclare les adresses IP internes dans les interfaces réseau nic0 et nic1 et les adresses IP externes de l'interface réseau nic0 avec état avec une règle pour supprimer les réservations d'adresses IP statiques associées lors de la suppression permanente de l'instance.

Définir et mettre à jour la configuration avec état pour les adresses IP dans le groupe d'instances géré existant

Si vous exécutez une charge de travail sur un MIG sans état (MIG sans configuration avec état) et que la charge de travail nécessite des adresses IP statiques, vous pouvez configurer les adresses IP déjà attribuées aux instances de VM gérées pour les rendre avec état. Cela garantit que les adresses IP de vos VM existantes sont conservées lors des opérations d'autoréparation, de mise à jour et de recréation des instances. Vous pouvez éventuellement conserver les réservations d'adresses IP statiques après la suppression des instances.

En configurant une règle avec état pour les adresses IP dans un MIG existant, vous pouvez effectuer les opérations suivantes :

  • Configurez les adresses IP avec état pour toutes les instances existantes et futures du groupe. Cette opération permet de convertir les adresses IP éphémères correspondantes de toutes les instances existantes en adresses IP statiques.
  • Mettez à jour la configuration avec état existante pour les adresses IP.

Le MIG applique automatiquement et de manière asynchrone la configuration mise à jour dans la règle avec état à toutes les instances. Les mises à jour des configurations d'adresse IP dans une règle avec état n'interrompent pas l'exécution des instances de VM. Pour en savoir plus, consultez la page Appliquer des mises à jour de règles avec état.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur le nom du groupe d'instances pour lequel vous souhaitez spécifier des adresses IP avec état.

  3. Cliquez sur Modifier pour modifier le groupe d'instances géré.

  4. Sous Configuration avec état, développez les adresses IP externes et internes que vous souhaitez définir avec état.

    1. Sous Avec état, sélectionnez Oui.
    2. Dans la liste déroulante Lors de la suppression permanente de l'instance, sélectionnez l'action à effectuer sur l'adresse IP avec état lorsque l'instance de VM est supprimée. Les options disponibles sont les suivantes :
      • Dissocier l'adresse IP : (par défaut) Supprimez l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
      • Supprimer l'adresse IP : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.
    3. Après avoir mis à jour la configuration avec état, cliquez sur Terminé.
    4. Cliquez sur Enregistrer pour terminer la mise à jour.

gcloud

Pour spécifier les adresses IP devant être avec état ou pour mettre à jour la configuration IP avec état d'un MIG existant, utilisez une ou plusieurs options --stateful-internal-ip ou --stateful-external-ip avec la commande gcloud compute instance-groups managed update.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG à mettre à jour.
  • NI_NAME : (Facultatif) Nom de l'interface réseau. Si elle n'est pas spécifiée, l'option enabled est obligatoire et l'interface réseau principale nommée nic0 est utilisée par défaut. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier cette option pour chaque adresse IP dans chaque interface réseau.
  • DELETE_RULE : (Facultatif) Indique ce qu'il advient d'une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • never : (Par défaut) Ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • on-permanent-instance-deletion : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

Si une adresse IP spécifiée est déjà configurée dans la règle avec état pour une interface réseau donnée, la commande met à jour la configuration.

Exemple

Vous devez exposer un serveur de fichiers s'exécutant sur un MIG avec état nommé example-fs-group aux utilisateurs externes via des adresses IP externes statiques. Les instances du groupe disposent d'adresses IP externes éphémères. Vous devez vous assurer que les adresses IP sont conservées lors de l'autoréparation et des mises à jour des instances afin que les utilisateurs externes aient un accès continu aux serveurs via les adresses IP publiées. Vous devez également conserver les adresses IP réservées pour la continuité en cas de suppression accidentelle du groupe.

Mettez à jour le MIG pour définir les adresses IP externes avec état à l'aide de la commande suivante :

gcloud compute instance-groups managed update example-fs-group \
    --stateful-external-ip enabled

Par conséquent, le groupe convertit les adresses IP externes éphémères de l'interface réseau nic0 en adresses IP statiques pour toutes les instances gérées de manière asynchrone.

Les adresses IP externes sont désormais conservées lors des événements d'autoréparation, de mise à jour et de recréation de l'instance. Les réservations d'adresses IP statiques associées ne sont pas attribuées et conservées lors de la suppression de l'instance, car la règle auto-delete non spécifiée est définie sur never par défaut.

Vous pouvez vérifier que l'adresse IP externe avec état est configurée dans la règle avec état en exécutant la commande gcloud compute instance-groups managed describe example-fs-group.

REST

Pour spécifier les adresses IP qui doivent être avec état ou mettre à jour la configuration IP avec état d'un MIG existant, utilisez la méthode instanceGroupManagers.patch ou regionInstanceGroupManagers.patch :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      },
      "externalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT : ID du projet pour la requête.
  • REGION : pour les MIG régionaux, la région où se trouve le MIG. Pour les MIG zonaux, remplacez regions/REGION par zones/ZONE et spécifiez la zone où se trouve le MIG.
  • NAME : nom du MIG à créer.
  • NI_NAME : (obligatoire) nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.
  • DELETE_RULE : (facultatif) indique ce qui doit arriver à une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • NEVER : (par défaut) ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • ON_PERMANENT_INSTANCE_DELETION : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

Si une adresse IP spécifiée est déjà configurée dans la règle avec état, la méthode corrige la configuration.

Exemple

Vous devez exposer un serveur de fichiers s'exécutant sur un MIG avec état nommé example-fs-group aux utilisateurs externes via des adresses IP externes statiques. Les instances du groupe disposent d'adresses IP externes éphémères. Vous devez vous assurer que les adresses IP sont conservées lors de l'autoréparation et des mises à jour des instances afin que les utilisateurs externes aient un accès continu aux serveurs via l'interface réseau publiée. Vous devez également conserver les adresses IP réservées pour la continuité en cas de suppression accidentelle du groupe.

Appliquez un correctif au MIG pour définir les adresses IP externes avec état :

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-fs-group

{
  "statefulPolicy": {
    "preservedState": {
      "externalIPs": {
        "nic0": {"autoDelete": "NEVER" }
      }
    }
  }
}

Par conséquent, le groupe convertit les adresses IP externes éphémères de l'interface réseau nic0 en adresses IP statiques pour toutes les instances gérées de manière asynchrone.

Les adresses IP externes sont désormais conservées lors des événements d'autoréparation, de mise à jour et de recréation de l'instance. Les réservations d'adresses IP statiques associées ne sont pas attribuées et sont conservées lors de la suppression de l'instance, car la règle autoDelete est définie sur NEVER.

Vérifiez que l'adresse IP externe est configurée dans la règle avec état en affichant la ressource regionInstanceGroupManagers, renvoyée par la méthode regionInstanceGroupManagers.get.

Déclarer des adresses IP avec état comme étant sans état

Vous devrez peut-être configurer une adresse IP avec état pour qu'elle devienne éphémère, par exemple pour les raisons suivantes :

  • Vous redéfinissez l'architecture de votre application pour ne plus utiliser d'adresses IP statiques.
  • Vous avez configuré l'adresse IP avec un état par erreur et vous souhaitez la rétablir.

Vous pouvez supprimer la configuration d'adresses IP avec état de la règle avec état du groupe pour déclarer une adresse IP dans une interface réseau donnée comme éphémère pour toutes les instances gérées.

Lorsque vous supprimez la configuration IP avec état de la règle avec état, le MIG supprime automatiquement et de manière asynchrone les adresses de l'état préservé de toutes les instances du groupe. Cette opération n'interrompt pas l'exécution des instances de VM. Les adresses IP restent actives sur les instances, mais ne sont plus avec état. Lorsque vous recréez ou mettez à jour les instances, ou lorsque les instances sont autoréparées, le MIG annule l'attribution des adresses IP statiques associées et attribue automatiquement des adresses éphémères. Si vous n'avez plus besoin de conserver les réservations d'adresses IP externes statiques, vous pouvez maintenant les libérer.

Pour en savoir plus, consultez les documents suivants :

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Cliquez sur le nom du groupe d'instances duquel vous souhaitez supprimer la configuration avec état pour les adresses IP.

  3. Cliquez sur Modifier pour modifier le groupe d'instances géré.

  4. Sous Configuration avec état, développez les adresses IP externes et internes que vous souhaitez définir sans état.

    1. Définissez l'option Avec état sur Non.
    2. Cliquez sur OK.
  5. Une fois les modifications effectuées, cliquez sur Enregistrer.

gcloud

Pour spécifier les adresses IP de la règle avec état du MIG à rendre éphémère, utilisez l'option --remove-stateful-internal-ips ou --remove-stateful-external-ips avec la commande gcloud compute instance-groups managed update :

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
    --remove-stateful-external-ips NI_NAME[,NI_NAME,...]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG à mettre à jour.
  • NI_NAME : obligatoire. Nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.

Si vous devez transformer une adresse IP avec état de l'interface réseau principale par défaut nommée nic0 en adresse IP éphémère, vous pouvez également utiliser la commande suivante :

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --stateful-internal-ip disabled \
    --stateful-external-ip disabled

Exemple

Votre application a été exposée aux utilisateurs via les adresses IP externes statiques publiées des instances de VM dans un MIG nommé example-group. Vous avez modifié l'architecture de votre service en déployant un équilibreur de charge devant le MIG et en acheminant le trafic vers les VM gérées via celui-ci. Vous n'avez plus besoin de gérer les adresses IP externes statiques et vous souhaitez rendre éphémères les adresses IP externes des VM.

Pour rendre éphémères les adresses IP externes avec état des VM dans un MIG, exécutez la commande suivante :

gcloud compute instance-groups managed update example-group \
    --remove-stateful-external-ips nic0

Le MIG supprime automatiquement et de manière asynchrone les adresses IP externes statiques de l'interface réseau nic0 de l'état préservé de toutes les instances du groupe. Les adresses IP externes restent actives sur les instances, mais ne sont plus avec état. Lorsque vous recréez ou mettez à jour les instances, ou lorsque les instances sont autoréparées, le MIG annule l'attribution des adresses IP statiques associées et attribue automatiquement des adresses éphémères. Si vous n'avez plus besoin de conserver les réservations d'adresses IP externes statiques, vous pouvez maintenant les libérer.

REST

Pour spécifier les adresses IP de la règle avec état du MIG à rendre éphémère, supprimez la configuration de chaque adresse IP de la règle avec état du MIG à l'aide de la méthode instanceGroupManagers.patch ou regionInstanceGroupManagers.patch :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": null
      },
      "externalIPs": {
        "NI_NAME": null
      }
    }
  }
}

Remplacez les éléments suivants :

  • PROJECT : ID du projet pour la requête.
  • REGION : pour les MIG régionaux, la région où se trouve le MIG. Pour les MIG zonaux, remplacez regions/REGION par zones/ZONE et spécifiez la zone où se trouve le MIG.
  • INSTANCE_GROUP_NAME : nom du MIG à créer.
  • NI_NAME : (obligatoire) nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.

Exemple

Votre application a été exposée aux utilisateurs via des adresses IP externes statiques publiées des instances de VM dans un MIG nommé example-group. Vous avez redéfini l'architecture de votre service en déployant un équilibreur de charge devant le MIG et en acheminant le trafic vers les VM gérées. Vous n'avez plus besoin de gérer les adresses IP externes statiques et vous souhaitez rendre éphémères les adresses IP externes des VM.

Pour rendre éphémères les adresses IP externes avec état des VM dans un MIG, appliquez un correctif au MIG :

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group

{
  "statefulPolicy": {
    "preservedState": {
      "externalIPs": {
        "nic0": null
      }
    }
  }
}

Le MIG supprime automatiquement et de manière asynchrone les adresses IP externes statiques de l'interface réseau nic0 de l'état préservé de toutes les instances du groupe. Les adresses IP externes restent actives sur les instances, mais ne sont plus avec état. Lorsque vous recréez ou mettez à jour les instances, ou lorsque les instances sont autoréparées, le MIG annule l'attribution des adresses IP statiques associées et attribue automatiquement des adresses éphémères. Si vous n'avez plus besoin de conserver les réservations d'adresses IP externes statiques, vous pouvez maintenant les libérer.

Configurer individuellement des adresses IP avec état pour les VM d'un groupe d'instances géré

La configuration individuelle d'adresses IP avec état pour les VM d'un MIG est utile dans les scénarios suivants :

  • Migration de charges de travail existantes (apporter des adresses IP statiques réservées existantes) d'instances de VM autonomes vers des MIG avec état afin de bénéficier de l'autoréparation et des mises à jour automatisées.
  • Attribution d'adresses IP statiques réservées spécifiques requises par la configuration de l'architecture ou de la charge de travail.

Configurer des adresses IP statiques lors de la création de VM dans un MIG

Vous pouvez réserver et attribuer des adresses IP statiques à des instances spécifiques lorsque vous créez ces instances individuellement dans un MIG. Cela est utile pour migrer une application avec état des VM autonomes existantes vers un MIG avec état dans une situation où l'architecture, la configuration ou les utilisateurs reposent sur des adresses IP statiques spécifiques.

Lorsque vous créez manuellement une instance au sein d'un MIG et que vous fournissez une adresse IP statique, le MIG effectue les actions suivantes :

  1. Crée une réservation d'adresses IP statiques internes ou externes pour les adresses IP fournies si elles n'existent pas encore.
  2. Crée une instance à partir du modèle d'instance à l'aide du nom d'instance et des adresses IP fournis.
  3. Crée une configuration par instance avec la configuration avec état fournie pour les adresses IP.

gcloud

Pour créer une instance avec une adresse IP statique prédéfinie, exécutez la commande gcloud compute instance-groups managed create-instance avec une ou plusieurs des options suivantes :

  • --stateful-internal-ip pour définir une adresse IP interne statique d'une interface réseau donnée.
  • --stateful-external-ip pour définir une adresse IP externe statique d'une interface réseau donnée.
gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_NAME : nom de l'instance à créer.
  • NI_NAME : (Facultatif) Nom de l'interface réseau. S'il n'est pas spécifié, l'interface réseau principale nommée nic0 est utilisée par défaut. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier cette option pour chaque adresse IP dans chaque interface réseau.
  • ADDRESS : obligatoire. Adresse IP statique à attribuer à l'instance dans l'un des formats suivants :

    • Adresse. URL d'une réservation d'adresse IP statique, par exemple "projects/example-project/regions/us-east1/addresses/example-ip-name".
    • Littéral, par exemple "130.211.181.55".
      • Si l'adresse IP fournie n'est pas encore réservée, le MIG crée automatiquement une réservation d'adresse IP correspondante.
      • Si l'adresse IP fournie est réservée, le groupe d'instances géré attribue la réservation à l'instance.
  • DELETE_RULE : (Facultatif) Indique ce qu'il advient d'une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • never : (Par défaut) Ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • on-permanent-instance-deletion : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

Exemple

Vous devez ajouter une instance de VM supplémentaire à votre cluster de serveur proxy, s'exécutant sur un MIG nommé proxy-cluster. Vous avez créé une réservation d'adresse IP interne statique nommée proxy-node-03-ip et vous devez l'attribuer au nouveau nœud. Vous souhaitez conserver la réservation d'adresse IP, même si vous décidez de supprimer le nœud à l'avenir.

Exécutez la commande suivante pour créer le nœud :

gcloud compute instance-groups managed create-instance proxy-cluster \
    --instance proxy-node-03 \
    --stateful-internal-ip address="projects/example-project/regions/us-east1/addresses/proxy-node-03-ip",auto-delete=never

La commande crée une instance nommée proxy-node-03, attribue l'adresse IP interne statique fournie nommée proxy-node-03-ip à l'instance et stocke la configuration avec état de l'adresse IP dans la configuration par instance correspondante. Comme l'option auto-delete est définie sur never, l'adresse IP reste réservée si vous supprimez l'instance ultérieurement.

Terraform

Pour créer une VM avec une adresse IP statique prédéfinie, utilisez un ou plusieurs des blocs suivants :

  • preserved_state.internal_ip pour marquer une adresse IP interne d'une interface réseau donnée comme étant avec état.
  • preserved_state.external_ip pour marquer une adresse IP externe d'une interface réseau donnée comme étant avec état.

L'exemple suivant configure des adresses IP statiques lors de la création de la VM dans un MIG régional. Pour en savoir plus sur la ressource utilisée dans l'exemple, consultez la section consacrée à la ressource google_compute_region_per_instance_config. Pour un MIG zonal, utilisez la ressource google_compute_per_instance_config.

resource "google_compute_region_per_instance_config" "default" {
  region_instance_group_manager = google_compute_region_instance_group_manager.default.name
  region                        = google_compute_region_instance_group_manager.default.region
  name                          = "proxy-node-03-ip"
  preserved_state {
    internal_ip {
      interface_name = "nic0"
      auto_delete    = "NEVER"
      ip_address {
        address = google_compute_address.default.id
      }
    }
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

REST

Pour créer une ou plusieurs instances dans un MIG, définir des noms d'instances personnalisés et attribuer des adresses IP statiques prédéfinies à ces instances, utilisez la méthode instanceGroupManagers.createInstances ou regionInstanceGroupManagers.createInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances

{
  "instances": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      }
    },
    ...
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour la requête.
  • NAME : nom du MIG.
  • REGION : pour les MIG régionaux, la région où se trouve le MIG. Pour les MIG zonaux, remplacez regions/REGION par zones/ZONE et spécifiez la zone où se trouve le MIG.
  • INSTANCE_NAME : nom de l'instance à créer.
  • NI_NAME : obligatoire. Nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.
  • ADDRESS : (Facultatif) Adresse IP statique à attribuer à l'instance au format d'une réservation d'adresse IP statique, par exemple "projects/example-project/regions/us-east1/addresses/example-ip-name". Vous devez et ne pouvez définir qu'un seul champ à la fois, address ou literal, lorsque vous attribuez une adresse IP statique.
  • LITERAL : (Facultatif) Adresse IP statique à attribuer à l'instance au format littéral, par exemple "130.211.181.55". Vous devez et ne pouvez définir qu'un seul champ à la fois, address ou literal, lorsque vous attribuez une adresse IP statique.
    • Si l'adresse IP littérale fournie n'est pas encore réservée, le MIG crée automatiquement une réservation d'adresse IP correspondante.
    • Si l'adresse IP littérale fournie est réservée, le MIG attribue la réservation à l'instance.
  • DELETE_RULE : (Facultatif) Indique ce qu'il advient d'une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • NEVER : (Par défaut) Ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • ON_PERMANENT_INSTANCE_DELETION : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

Exemple

Vous devez ajouter une instance de VM supplémentaire à votre cluster de serveur proxy, s'exécutant sur un MIG nommé proxy-cluster. Vous avez créé une réservation d'adresse IP interne statique nommée proxy-node-03-ip et vous devez l'attribuer au nouveau nœud. Vous souhaitez conserver la réservation d'adresse IP, même si vous décidez de supprimer le nœud à l'avenir.

Appelez la méthode regionInstanceGroupManagers.createInstances pour créer une instance supplémentaire :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/proxy-cluster/createInstances

{
  "instances": [
    {
      "name": "proxy-node-03",
      "preservedState" : {
        "internalIPs": {
          "nic0" : {
            "ipAddress": {
              "address": "projects/example-project/regions/us-east1/addresses/proxy-node-03-ip"
            },
            "autoDelete": "NEVER"
          }
        }
      }
    }
  ]
}

La méthode crée une instance nommée proxy-node-03, attribue l'adresse IP interne statique fournie nommée proxy-node-03-ip à l'instance et stocke la configuration avec état de l'adresse IP dans la configuration par instance correspondante. Comme l'option autoDelete est définie sur NEVER, l'adresse IP reste réservée si vous supprimez l'instance ultérieurement.

Configurer des adresses IP statiques pour une VM existante dans un groupe d'instances géré

Vous pouvez définir une adresse IP statique prédéfinie ou mettre à jour la configuration IP avec état individuellement pour une instance gérée, par exemple :

  • Attribuez une adresse IP statique à une instance existante d'un groupe d'instances géré. Cette opération nécessite une actualisation de l'instance pour les adresses IP externes statiques et une recréation de l'instance pour les adresses IP internes statiques.
  • Mettez à jour la règle de suppression pour une adresse IP statique déjà attribuée. Cette opération peut être effectuée sans perturber l'instance en cours d'exécution.

Pour une instance existante sans adresse IP externe pour laquelle vous configurez une adresse IP externe avec état, le MIG ajoute une configuration d'accès à l'interface réseau correspondante avec les valeurs par défaut suivantes :

"accessConfigs": [
  {
    "kind": "compute#accessConfig",
    "name": "External Nat",
    "natIP": "XX.XX.XX.XX",
    "networkTier": "PREMIUM",
    "type": "ONE_TO_ONE_NAT"
  }
]

gcloud

Pour configurer une adresse IP avec état individuellement pour une instance de VM au sein d'un MIG, ajoutez ou mettez à jour la configuration IP avec état dans la configuration par instance associée.

Si aucune configuration par instance n'existe pour l'instance, exécutez la commande gcloud compute instance-groups managed instance-configs create avec une ou plusieurs des options suivantes :

  • --stateful-internal-ip pour définir une adresse IP interne statique d'une interface réseau donnée.
  • --stateful-external-ip pour définir une adresse IP externe statique d'une interface réseau donnée.
gcloud compute instance-groups managed instance-configs create INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    [--no-update-instance | --update-instance]
    [--instance-update-minimal-action MINIMAL_ACTION]

Si une configuration par instance existe déjà pour l'instance, exécutez la commande gcloud compute instance-groups managed instance-configs update avec une ou plusieurs options --stateful-internal-ip ou --stateful-external-ip :

gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    [--no-update-instance | --update-instance]
    [--instance-update-minimal-action MINIMAL_ACTION]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_NAME : nom de l'instance pour laquelle configurer des adresses IP avec état.
  • NI_NAME : (Facultatif) Nom de l'interface réseau. S'il n'est pas spécifié, l'interface réseau principale nommée nic0 est utilisée par défaut. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier cette option pour chaque adresse IP dans chaque interface réseau.
  • ADDRESS : adresse IP statique à attribuer à l'instance dans l'un des formats suivants :
    • Adresse. URL d'une réservation d'adresse IP statique, par exemple "projects/example-project/regions/us-east1/addresses/example-ip-name".
    • Littéral. Exemple : "130.211.181.55".
      • Si l'adresse IP fournie n'est pas encore réservée, le MIG crée automatiquement une réservation d'adresse IP correspondante.
      • Si l'adresse IP fournie est réservée, le groupe d'instances géré attribue la réservation à l'instance.
    • Cette sous-option est facultative si l'adresse est déjà définie dans la configuration par instance de l'instance. Sinon, vous devez la renseigner.
    • Si elle n'est pas spécifiée, l'adresse configurée reste inchangée.
  • DELETE_RULE : (Facultatif) Indique ce qu'il advient d'une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • never : (Par défaut) Ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • on-permanent-instance-deletion : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.
    • Si cette valeur est omise, la valeur par défaut est définie pour une nouvelle configuration d'adresse IP avec état. La valeur reste inchangée dans une configuration existante.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

  • --update-instance : (facultatif, par défaut). Appliquez les modifications immédiatement à l'instance. Si vous utilisez l'option --no-update-instance, les modifications sont appliquées uniquement lorsque vous recréez l'instance ou appliquez la mise à jour.

  • MINIMAL_ACTION : (Facultatif) Effectue au minimum l'action spécifiée lorsque la mise à jour de la configuration par instance est effectivement appliquée à l'instance. Doit être utilisé avec l'option --update-instance. La valeur doit correspondre à l'un des éléments suivants :

    • none : aucune action.
    • refresh : appliquer les mises à jour qu'il est possible d'appliquer sans arrêter l'instance.
    • restart : arrêter l'instance, puis la redémarrer.
    • replace : recréer l'instance.

Si cet élément n'est pas spécifié, l'action la moins perturbatrice requise par la mise à jour est utilisée.

Exemple

Vous disposez d'une instance de serveur de fichiers appelée file-server, qui est une instance unique d'un MIG avec état appelé fs-group. Le groupe possède une configuration par instance correspondante, dans laquelle un disque de données avec état est configuré. Le serveur de fichiers n'était accessible qu'en interne, mais vous disposez désormais d'utilisateurs qui doivent y accéder en externe via une adresse IP statique. Vous avez réservé l'adresse IP externe statique en créant une réservation d'adresse file-server-ip. Vous devez maintenant attribuer cette adresse IP à l'instance de serveur de fichiers.

Exécutez la commande suivante pour configurer l'adresse IP externe avec état pour l'instance de serveur de fichiers :

gcloud compute instance-groups managed instance-configs update fs-group \
    --instance file-server \
    --stateful-external-ip interface-name=nic0,address="projects/example-project/regions/us-east1/addresses/file-server-ip",auto-delete=never \
    --update-instance

La commande :

  1. Met à jour la configuration par instance de l'instance file-server :
    1. Ajoute une configuration d'adresse IP externe avec état, pointant vers la réservation d'adresse file-server-ip.
    2. Conserve la configuration de disque de données avec état existante.
  2. Applique immédiatement la mise à jour de la configuration par instance à l'instance file-server, car l'option --update-instance est incluse : actualise l'instance et attribue l'adresse IP externe statique de la réservation file-server-ip.

REST

Pour configurer des adresses IP avec état individuellement pour les instances de VM d'un MIG, ajoutez ou mettez à jour la configuration IP avec état dans les configurations par instance associées.

Si les configurations par instance n'existent pas encore pour les instances données, utilisez la méthode instanceGroupManagers.updatePerInstanceConfigs ou regionInstanceGroupManagers.updatePerInstanceConfigs avec une configuration avec état pour une ou plusieurs adresses IP :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Si des configurations par instance existent déjà pour les instances données, utilisez la méthode instanceGroupManagers.patchPerInstanceConfigs ou regionInstanceGroupManagers.patchPerInstanceConfigs avec une configuration avec état pour une ou plusieurs adresses IP :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour la requête.
  • NAME : nom du MIG.
  • REGION : pour les MIG régionaux, la région où se trouve le MIG. Pour les MIG zonaux, remplacez regions/REGION par zones/ZONE et spécifiez la zone où se trouve le MIG.
  • INSTANCE_NAME : obligatoire. Nom de l'instance pour laquelle configurer des adresses IP avec état.
  • NI_NAME : obligatoire. Nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.
  • ADDRESS : (Facultatif) Adresse IP statique à attribuer à l'instance au format d'une réservation d'adresse IP statique, par exemple "projects/example-project/regions/us-east1/addresses/example-ip-name". Vous ne pouvez définir qu'un seul champ à la fois, adresse ou littéral, lorsque vous attribuez une adresse IP statique.
  • LITERAL : (Facultatif) Adresse IP statique à attribuer à l'instance au format littéral. Exemple : "130.211.181.55". Vous ne pouvez définir qu'un seul champ à la fois, adresse ou littéral, lorsque vous attribuez une adresse IP statique.
    • Si l'adresse IP littérale fournie n'est pas encore réservée, le MIG crée automatiquement une réservation d'adresse IP correspondante.
    • Si l'adresse IP littérale fournie est réservée, le MIG attribue la réservation à l'instance.
  • DELETE_RULE : (Facultatif) Indique ce qu'il advient d'une ressource Adresse statique associée lorsqu'une instance de VM est définitivement supprimée. Les options disponibles sont les suivantes :

    • NEVER : (Par défaut) Ne supprimez jamais l'adresse IP statique. Supprimez plutôt l'attribution d'adresse lors de la suppression d'instance et conservez l'adresse réservée.
    • ON_PERMANENT_INSTANCE_DELETION : supprimez la réservation d'adresse IP statique lorsqu'une instance est définitivement supprimée du groupe d'instances, par exemple lorsque vous supprimez manuellement une instance ou réduisez la taille du groupe.
    • Si cette valeur est omise, la valeur par défaut est définie pour une nouvelle configuration d'adresse IP avec état. La valeur reste inchangée dans une configuration existante.

    Quelle que soit la valeur de la règle de suppression, le groupe conserve toujours les adresses IP avec état lors des opérations d'autoréparation, de mise à jour et de recréation de l'instance.

  • FINGERPRINT : (Facultatif) Empreinte de la configuration donnée, si celle-ci existe déjà. Elle est utilisée pour le verrouillage optimiste. L'opération échoue si l'empreinte est différente de celle fournie, car elle indique que la configuration par instance a été modifiée depuis sa dernière lecture. Pour afficher la dernière empreinte, consultez le résultat de la méthode listPerInstanceConfigs pour un MIG régional ou zonal. Si fingerprint est omis, l'opération se poursuit sans comparaison d'empreinte.

Les méthodes updatePerInstanceConfigs et patchPerInstanceConfigs mettent à jour les configurations par instance spécifiées, mais n'appliquent pas les mises à jour de configuration aux instances gérées associées. Les modifications sont appliquées à une instance lorsque le MIG est invité à recréer ou à mettre à jour l'instance. Vous pouvez appliquer la mise à jour manuellement pour appliquer les modifications à une instance.

Exemple

Vous disposez d'une instance de serveur de fichiers appelée file-server, qui est une instance unique d'un MIG avec état appelé fs-group. Le groupe possède une configuration par instance correspondante, dans laquelle un disque de données avec état est configuré. Le serveur de fichiers n'était accessible qu'en interne, mais vous disposez désormais d'utilisateurs qui doivent y accéder en externe via une adresse IP statique. Vous avez réservé l'adresse IP externe statique en créant une réservation d'adresse file-server-ip. Vous devez maintenant attribuer cette adresse IP à l'instance de serveur de fichiers.

Pour mettre à jour la configuration par instance de file-server avec la nouvelle adresse IP externe avec état, appelez la méthode patchPerInstanceConfigs :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/fs-group/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "file-server",
      "preservedState" : {
        "externalIPs": {
          "nic0" : {
            "ipAddress": {
              "address": "projects/example-project/regions/us-east1/addresses/file-server-ip"
            },
            "autoDelete": "NEVER"
          }
        }
      }
    }
  ]
}

La méthode corrige la configuration par instance pour l'instance file-server :

  1. Ajoute une configuration d'adresse IP externe avec état, pointant vers la réservation d'adresse file-server-ip.
  2. Conserve la configuration de disque de données avec état existante.

La mise à jour de la configuration n'est pas encore appliquée à l'instance de VM file-server. Le MIG applique la mise à jour de la configuration lorsque vous recréez ou appliquez la mise à jour à l'instance ultérieurement.

Pour appliquer la mise à jour de la configuration par instance à l'instance de VM file-server, appelez la méthode regionInstanceGroupManagers.applyUpdatesToInstances pour l'instance :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/gs-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-b/instances/file-server"]
}

La méthode attribue l'adresse IP externe statique configurée de la réservation file-server-ip à l'instance gérée. La méthode actualise l'instance file-server pour attribuer une adresse IP externe.

Étant donné que le paramètre autoDelete est défini sur NEVER dans la configuration d'adresses IP avec état, l'adresse IP restera réservée si vous supprimez l'instance ultérieurement.

Dissocier des adresses IP statiques d'une VM existante dans un MIG

Vous devrez peut-être dissocier une adresse IP statique d'une VM existante, ce qui rend l'interface réseau éphémère pour la VM. Cela est utile dans les scénarios suivants :

  • Vous redéfinissez l'architecture de votre application pour ne plus utiliser d'adresses IP statiques.
  • Vous avez configuré l'adresse IP avec un état par erreur et vous souhaitez la rétablir.

Vous pouvez dissocier une adresse IP statique d'une VM existante dans le MIG et la rendre éphémère pour une VM individuelle en supprimant la configuration avec état de l'adresse IP de la configuration par instance associée, ou en supprimant l'intégralité de la configuration par instance si elle ne contient aucun autre état. L'application de la modification a les effets suivants :

  • L'adresse IP reste active sur l'instance, mais n'est plus avec état.
  • Lorsque vous recréez ou mettez à jour l'instance, ou lorsque l'instance est autoréparée, le MIG annule l'attribution de l'adresse IP statique associée et attribue automatiquement une adresse éphémère.
  • Après l'annulation de l'attribution, l'adresse IP statique reste réservée.

La suppression d'une configuration d'adresse IP avec état d'une configuration par instance n'interrompt pas l'exécution des instances de VM, sauf si vous choisissez explicitement de le faire.

Pour en savoir plus, consultez les documents suivants :

gcloud

Pour supprimer une configuration d'adresses IP avec état de la configuration par instance associée, utilisez la commande gcloud compute instance-groups managed instance-configs update avec les options --remove-stateful-internal-ips ou --remove-stateful-external-ips :

gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
    --remove-stateful-external-ips NI_NAME[,NI_NAME,...]
    [--no-update-instance | --update-instance] \
    [--instance-update-minimal-action MINIMAL_ACTION]

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.
  • INSTANCE_NAME : obligatoire. Nom de l'instance pour laquelle supprimer la configuration d'adresses IP avec état.
  • NI_NAME : obligatoire. Nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.
  • --update-instance : (facultatif, par défaut). Appliquez les modifications immédiatement à l'instance. Si vous utilisez l'option --no-update-instance, les modifications sont appliquées uniquement lorsque vous recréez l'instance ou appliquez la mise à jour.
  • MINIMAL_ACTION : (Facultatif) Effectue au minimum l'action spécifiée lorsque la mise à jour de la configuration par instance est effectivement appliquée à l'instance. Cette option ne peut être utilisée qu'avec l'option --update-instance. La valeur doit correspondre à l'un des éléments suivants :

    • none : aucune action.
    • refresh : appliquer les mises à jour qu'il est possible d'appliquer sans arrêter l'instance.
    • restart : arrêter l'instance, puis la redémarrer.
    • replace : recréer l'instance.

    Si cet élément n'est pas spécifié, l'action la moins perturbatrice requise par la mise à jour est utilisée.

Exemple

Votre application a été exposée aux utilisateurs via des adresses IP statiques externes publiées sur les instances de VM d'un groupe d'instances géré nommé example-group. Vous avez redéfini l'architecture de votre service en déployant un équilibreur de charge devant le MIG et en acheminant le trafic vers les VM gérées. Vous n'avez plus besoin de gérer les adresses IP externes statiques et vous souhaitez rendre éphémères les adresses IP externes des VM.

Pour rendre éphémères les adresses IP externes avec état des VM dans un MIG, exécutez la commande suivante pour chaque instance, par exemple pour node-1 :

gcloud compute instance-groups managed instance-configs update example-group \
    --instance node-1 \
    --remove-stateful-external-ips nic0 \
    --update-instance

La commande :

  1. Supprime la configuration avec état de l'adresse IP externe dans l'interface réseau nic0 de la configuration par instance pour node-1.
  2. Applique immédiatement la mise à jour de la configuration par instance à l'instance de VM node-1, car l'option --update-instance est incluse. L'instance de VM n'est pas interrompue et continue de diffuser à partir de la même adresse IP, qui n'est plus avec état. Le MIG supprime la référence à la réservation d'adresse IP statique du fichier preservedStateFromConfig de l'instance gérée et traite l'adresse IP externe comme éphémère. Le MIG attribue automatiquement une adresse IP externe lors d'événements ultérieurs de recréation, de mise à jour ou d'autoréparation d'instances.
  3. Après avoir été non attribuée, l'adresse IP statique d'origine reste réservée. Vous pouvez libérer l'adresse IP si vous n'en avez plus besoin.

REST

Pour supprimer une configuration d'adresses IP avec état de la configuration par instance associée, utilisez la méthode instanceGroupManagers.patchPerInstanceConfigs ou regionInstanceGroupManagers.patchPerInstanceConfigs :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : null
        },
        "externalIPs": {
          "NI_NAME" : null
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour la requête.
  • NAME : nom du MIG.
  • REGION : pour les MIG régionaux, la région où se trouve le MIG. Pour les MIG zonaux, remplacez regions/REGION par zones/ZONE et spécifiez la zone où se trouve le MIG.
  • INSTANCE_NAME : obligatoire. Nom de l'instance pour laquelle supprimer la configuration d'adresses IP avec état.
  • NI_NAME : obligatoire. Nom de l'interface réseau. L'interface réseau principale est nommée nic0. Si vous disposez de plusieurs interfaces réseau, vous pouvez spécifier plusieurs NI_NAMES.
  • FINGERPRINT : (Facultatif) Empreinte de la configuration donnée, si celle-ci existe déjà. Elle est utilisée pour le verrouillage optimiste. L'opération échoue si l'empreinte est différente de celle fournie, car elle indique que la configuration par instance a été modifiée depuis sa dernière lecture. Pour afficher la dernière empreinte, consultez le résultat de la méthode listPerInstanceConfigs pour un MIG régional ou zonal. Si fingerprint est omis, l'opération se poursuit sans comparaison d'empreinte.

La méthode patchPerInstanceConfigs met à jour les configurations par instance spécifiées, mais n'applique pas les mises à jour de configuration aux instances gérées associées. Les modifications sont appliquées à une instance lorsque le MIG est invité à recréer ou à mettre à jour l'instance. Vous pouvez appliquer la mise à jour manuellement pour appliquer les modifications à une instance.

Exemple

Votre application a été exposée aux utilisateurs via des adresses IP statiques externes publiées sur les instances de VM d'un groupe d'instances géré nommé example-group. Vous avez redéfini l'architecture de votre service en déployant un équilibreur de charge devant le MIG et en acheminant le trafic vers les VM gérées. Vous n'avez plus besoin de gérer les adresses IP externes statiques et vous souhaitez rendre éphémères les adresses IP externes des VM.

Pour rendre éphémères les adresses IP externes avec état des VM dans un MIG, exécutez la méthode suivante pour chaque instance, par exemple pour node-1, et fournissez la valeur null à la configuration avec état de l'interface réseau :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "node-1",
      "preservedState" : {
        "externalIPs": {
          "nic0" : null
        }
      }
    }
  ]
}

La méthode supprime la configuration des adresses IP avec état dans l'interface réseau nic0 de la configuration par instance pour node-1. La mise à jour de la configuration n'est pas encore appliquée à l'instance de VM node-1. Le MIG applique la mise à jour de la configuration lors de la prochaine recréation ou mise à jour de l'instance.

Pour appliquer la mise à jour de la configuration par instance à l'instance de VM node-1, exécutez la méthode regionInstanceGroupManagers.applyUpdatesToInstances pour l'instance :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-c/instances/node-1"]
}

Le MIG supprime la référence à la réservation d'adresse IP statique du champ preservedStateFromConfig pour l'instance node-1 et traite l'adresse IP comme éphémère. Le groupe d'instances géré attribue automatiquement une adresse IP externe aux événements ultérieurs de recréation, de mise à jour ou d'autoréparation d'instances.

Après avoir été non attribuée, l'adresse IP statique d'origine reste réservée. Vous pouvez libérer l'adresse IP si vous n'en avez plus besoin.

Supprimer la configuration avec état

Pour supprimer la configuration d'une règle avec état pour toutes les VM dans un MIG, consultez les documents suivants :

Pour supprimer la configuration d'une configuration par instance pour une VM spécifique dans un MIG, consultez les documents suivants :

Nettoyer les adresses IP statiques inutilisées

Lorsque vous configurez une adresse IP avec état pour les instances gérées d'un groupe, vous pouvez choisir de libérer manuellement ou automatiquement la réservation d'adresses IP statiques associées lorsqu'une instance est supprimée définitivement :

  • Pour libérer automatiquement les réservations d'adresses IP statiques lors de la suppression permanente d'une instance, définissez le paramètre autoDelete sur ON_PERMANENT_INSTANCE_DELETION.
  • Pour libérer manuellement des réservations d'adresses IP statiques, définissez le paramètre autoDelete sur NEVER. Pour nettoyer les réservations d'adresses IP statiques non utilisées, par exemple, afin d'éviter des frais inutiles, consultez les documents suivants :

Si vous avez indiqué au MIG de ne jamais supprimer les réservations d'adresses IP associées, les adresses IP statiques restent réservées une fois que les instances correspondantes ou le MIG n'existent plus.

Votre avis

Nous souhaitons en savoir plus sur vos cas d'utilisation, les défis que vous rencontrez ou vos impressions sur les MIG avec état. Vous pouvez nous faire part de vos commentaires à l'adresse suivante : mig-discuss@google.com.

Étapes suivantes