Los metadatos de las instancias son útiles para definir propiedades y comunicarse con las aplicaciones a través del servidor de metadatos. Por ejemplo, puedes usar metadatos para configurar la identidad de la instancia de máquina virtual (VM), las variables de entorno, la información sobre la arquitectura del clúster o el intervalo de datos del que es responsable una VM.
Si configuras metadatos con reconocimiento del estado en un grupo de instancias gestionado (MIG), te aseguras de que los metadatos específicos de la instancia se conserven en los eventos de reparación automática, actualización y recreación de la instancia gestionada.
Configura los metadatos con reconocimiento del estado de forma individual para las instancias de VM de un MIG. Para ello, define los metadatos en las configuraciones por instancia y aplica la configuración. Puedes definir una configuración por instancia al crear una instancia o en instancias gestionadas que ya tengas. Una vez que se aplica la configuración por instancia, la MIG almacena los metadatos con reconocimiento del estado en el campo Estado conservado de la configuración (preservedStateFromConfig
) de una instancia gestionada.
Antes de empezar
- Consulta cuándo usar grupos de instancias gestionados con reconocimiento del estado y cómo funcionan.
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Limitaciones
Un MIG con metadatos con estado tiene las siguientes limitaciones:
Un MIG con configuración con reconocimiento del estado (un MIG con reconocimiento del estado) tiene las siguientes limitaciones:
- No puedes usar el autoescalado si tu MIG tiene una configuración con reconocimiento del estado.
- Si quieres usar actualizaciones continuas automatizadas, debes definir el método de sustitución en
RECREATE
. - En el caso de los MIGs regionales con reconocimiento del estado, debes inhabilitar la redistribución proactiva (establecer el tipo de redistribución en
NONE
) para evitar que se eliminen instancias con reconocimiento del estado mediante la redistribución automática entre zonas. Si usas una configuración de todas las instancias para anular las propiedades de la plantilla de instancia, no puedes especificar esas propiedades en ninguna configuración por instancia y, al mismo tiempo, en la configuración de todas las instancias del grupo.
Cuando eliminas de forma permanente una instancia (ya sea manualmente o cambiando su tamaño), el MIG no conserva los metadatos con estado de la instancia.
Definir metadatos con reconocimiento del estado al crear una instancia
Define metadatos con reconocimiento del estado al crear manualmente instancias en un MIG. Esto resulta útil para migrar una aplicación con reconocimiento del estado en VMs independientes a un MIG con reconocimiento del estado y para crear instancias con reconocimiento del estado.
Cuando creas manualmente una instancia en un MIG y proporcionas metadatos con reconocimiento del estado, el MIG realiza las siguientes tareas:
- Crea una instancia gestionada a partir de la plantilla de instancia con el nombre de instancia proporcionado.
- Crea una configuración por instancia con los metadatos con reconocimiento del estado proporcionados y establece esos metadatos en la instancia.
- Almacena los metadatos con reconocimiento del estado en el estado conservado de la configuración (
preservedStateFromConfig
) de la instancia gestionada asociada.
gcloud
Para crear una instancia gestionada con un nombre personalizado y definir metadatos con estado en esa VM, usa el comando
gcloud compute instance-groups managed create-instance
con la marca--stateful-metadata
.gcloud compute instance-groups managed create-instance NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...]
Haz los cambios siguientes:
NAME
: el nombre del MIG en el que se va a crear una instanciaINSTANCE_NAME
: el nombre de la instancia que se va a crearKEY
yVALUE
: pares clave-valor de metadatos con estado que se definen individualmente para las instancias, además de los metadatos definidos en la plantilla de instancia.- Los valores de clave que definas aquí tendrán prioridad sobre los valores de clave de la plantilla de instancia que entren en conflicto.
Ejemplo
Debes implementar un clúster de nodos,
example-cluster
, que pueda funcionar en uno de estos dos modos:active
ostandby
. Puedes definir el modo de cada VM de un clúster por separado mediante metadatos. Por ejemplo:mode:active
. También puedes configurar el nivel de detalle del registro de cada nodo mediante una clave de metadatoslogging
que puede tener el valorbasic
oelaborate
. La aplicación del nodo se configura con valores de los metadatos de la instancia.Para crear un nodo activo,
node-12
, con un registro detallado, debes ejecutar el siguiente comando:gcloud compute instance-groups managed create-instance example-cluster \ --instance node-12 \ --stateful-metadata mode=active,logging=elaborate
El comando crea una VM,
node-12
, en el MIGexample-cluster
y define dos pares clave-valor de metadatos,mode:active
ylogging:elaborate
, para la nueva instancia.Terraform
Para crear una instancia gestionada con un nombre personalizado y definir metadatos con estado en esa VM, usa el
google_compute_per_instance_config
recurso.En el siguiente ejemplo se usa un MIG zonal. Si aún no tienes un MIG zonal, crea uno con VMs confinadas en una sola zona.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
REST
Para crear una o varias instancias gestionadas en un MIG con nombres de VM personalizados y definir metadatos con estado de forma individual en estas VMs, usa el método
instanceGroupManagers.createInstances
. En el caso de los MIGs regionales, utiliza el métodoregionInstanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY" : "VALUE", ... } } }, ... ] }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto de la solicitudZONE
: la zona en la que se encuentra el MIG (se aplica a un MIG zonal)- En el caso de un MIG regional, sustituye
zones/ZONE
porregions/REGION
y especifica la región del MIG.
- En el caso de un MIG regional, sustituye
NAME
: el nombre del MIG en el que se va a crear una instancia.INSTANCE_NAME
: el nombre de la instancia que se va a crearKEY
yVALUE
: pares clave-valor de metadatos con estado que se definen individualmente para las instancias, además de los metadatos definidos en la plantilla de instancia.- Los valores de clave que definas aquí tendrán prioridad sobre los valores de clave de la plantilla de instancia que entren en conflicto.
Ejemplo
Debes implementar un clúster de nodos,
example-cluster
, que pueda funcionar en uno de estos dos modos:active
ostandby
. Puedes definir el modo de cada VM de un clúster por separado mediante metadatos. Por ejemplo:mode:active
. También puedes configurar el nivel de detalle del registro de cada nodo mediante una clave de metadatoslogging
que puede tener el valorbasic
oelaborate
. La aplicación del nodo se configura con valores de los metadatos de la instancia.Para crear un nodo activo,
node-12
, con un registro detallado, ejecuta el siguiente método:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/createInstances { "instance": [ { "name": "node-12", "preservedState" : { "metadata": { "mode":"active", "logging":"elaborate" } } } ] }
El método crea una VM,
node-12
, en el MIGexample-cluster
y define dos pares clave-valor de metadatos,mode:active
ylogging:elaborate
, para la nueva instancia.Definir, modificar y eliminar metadatos con estado de forma individual para instancias de VM ya creadas
Para definir, modificar o eliminar metadatos con reconocimiento del estado de una instancia de un MIG, defínelos en una configuración por instancia asociada y, a continuación, aplica la configuración actualizando la instancia.
gcloud
Para configurar metadatos con reconocimiento del estado de forma individual para una instancia de VM de un MIG, define o elimina los metadatos con reconocimiento del estado en la configuración por instancia asociada. Si aplicas la configuración a la instancia al mismo tiempo (
--update-instance
), puedes elegir si quieres que la instancia siga ejecutándose, reiniciarla o volver a crearla. Si no aplicas la configuración (--no-update-instance
), los cambios no se aplicarán hasta que vuelvas a crear o actualizar la instancia.Si no existe una configuración por instancia para una instancia determinada, usa el comando
gcloud compute instance-groups managed instance-configs create
con una de las siguientes marcas:gcloud compute instance-groups managed instance-configs create NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Si ya existe una configuración por instancia para una instancia determinada, usa el
gcloud compute instance-groups managed instance-configs update
comando con lo siguiente:- La marca
--stateful-metadata
para definir o modificar metadatos. - Marca
--remove-stateful-metadata
para quitar metadatos con estado específicos de la instancia.
gcloud compute instance-groups managed instance-configs update NAME \ --instance INSTANCE_NAME \ [--stateful-metadata KEY=VALUE[,KEY=VALUE,...]] \ [--remove-stateful-metadata KEY[,KEY,...]] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Haz los cambios siguientes:
NAME
: el nombre del grupo de instancias gestionado.INSTANCE_NAME
: nombre de la instancia para la que se va a configurar los metadatos con reconocimiento del estado.KEY=VALUE
: pares clave-valor de metadatos con reconocimiento del estado que se definen individualmente para la instancia, además de los metadatos definidos en la plantilla de instancia. Los valores de clave que defina aquí tendrán prioridad sobre los valores de clave de la plantilla de instancia que entren en conflicto.KEY
: claves de metadatos con reconocimiento del estado específicas de la instancia que se van a quitar de la configuración por instancia.- Si la plantilla de instancia no define un valor para la clave, el par clave-valor se eliminará por completo de la instancia cuando se aplique el cambio.
- Si la plantilla de instancia define un valor para la clave, se asignará a la instancia cuando se aplique el cambio.
MINIMAL_ACTION
: realiza al menos la acción especificada al aplicar la actualización de configuración por instancia a la instancia. UnMINIMAL_ACTION
solo se puede definir cuando se usa la marca--update-instance
. El valor debe ser uno de los siguientes:none
: no se realiza ninguna acción.refresh
: aplica las actualizaciones que se puedan aplicar sin detener la instancia.restart
: detén la instancia y, a continuación, vuelve a iniciarla.replace
: recrea la instancia.
Si se omite, se usará la acción menos disruptiva que requiera la actualización.
Ejemplo
Tienes un clúster de nodos,
example-cluster
, que puede funcionar en uno de los dos modos:active
ostandby
. Puedes definir el modo de cada máquina virtual del clúster individualmente mediante metadatos. Por ejemplo:mode:active
. También puedes configurar el nivel de detalle del registro de cada nodo mediante unalogging
clave de metadatos que puede tener el valorbasic
oelaborate
. La aplicación de cada nodo consume los valores de los metadatos de instancia.La plantilla de instancia define los metadatos
mode:active
ylogging:basic
que se usarán como valores predeterminados en todas las instancias. Has definidologging:elaborate
en una configuración por instancia para la VMnode-12
del clúster. Ahora, quieres cambiarnode-12
al modo de espera y cambiar el registro abasic
para esta máquina virtual.Para cambiar la instancia
node-12
a modo de espera y su registro a básico, ejecuta el siguiente comando:gcloud compute instance-groups managed instance-configs update example-cluster \ --instance node-12 \ --stateful-metadata mode=standby \ --remove-stateful-metadata logging
El comando realiza lo siguiente:
- Define los metadatos de
mode:standby
en la configuración por instancia asociada a la VMnode-12
en el MIGexample-cluster
. - Quita los metadatos de
logging:elaborate
de la configuración por instancia de la instancianode-12
. - Aplica el cambio de configuración por instancia a la VM
node-12
:- Define los metadatos de
mode:standby
según la configuración. - Define los metadatos de
logging:basic
de la plantilla de instancia porque el valor de la clavelogging
ya no se define en la configuración de cada instancia.
- Define los metadatos de
- El cambio se aplica a la VM inmediatamente de forma predeterminada porque se omite la marca
--no-update-instance
. - La VM sigue ejecutándose durante la actualización porque se omite la marca
--instance-update-minimal-action
y se elige la acción menos disruptiva para la actualización de forma predeterminada, en este caso:refresh
.
REST
Para configurar metadatos con reconocimiento del estado de forma individual para las instancias de VM de un MIG, define o elimina los metadatos en las configuraciones por instancia asociadas. A continuación, actualiza la instancia para aplicar la configuración.
Si aún no existen configuraciones por instancia para las instancias en cuestión, usa el
instanceGroupManagers.updatePerInstanceConfigs
método con metadatos con reconocimiento del estado:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY": "VALUE", ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Si ya existen configuraciones por instancia para las instancias indicadas, usa el método
instanceGroupManagers.patchPerInstanceConfigs
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY": "VALUE", ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto de la solicitud.ZONE
: la zona en la que se encuentra el MIG (se aplica a un MIG zonal).- En el caso de un MIG regional, sustituye
zones/ZONE
porregions/REGION
y especifica la región del MIG.
- En el caso de un MIG regional, sustituye
NAME
: el nombre del MIG.INSTANCE_NAME
: nombre de la VM para la que se van a configurar los metadatos con reconocimiento del estado.KEY
yVALUE
: pares clave-valor de metadatos con estado que se definen individualmente para las instancias, además de los metadatos definidos en la plantilla de instancia.- Los valores de metadatos con estado definidos para las claves que ya existen en la plantilla de instancia anulan los valores de la plantilla de instancia.
- El resto de las entradas de metadatos de la plantilla de instancia no se verán afectadas y seguirán estando disponibles.
- Si se proporciona
null
como valor, se elimina la clave de la configuración por instancia.
FINGERPRINT
: opcional. La huella digital de la configuración proporcionada, si ya existe. Se usa para el bloqueo optimista.
Los métodos
updatePerInstanceConfigs
ypatchPerInstanceConfigs
actualizan las configuraciones por instancia especificadas, pero no aplican las actualizaciones de configuración a las instancias de VM asociadas. Los cambios se aplican a una VM cuando actualizas o vuelves a crear la instancia. Para aplicar los cambios a una VM, puedes aplicar la actualización manualmente o usar Updater en modo proactivo u oportunista.Ejemplo
Tienes un clúster de nodos,
example-cluster
, que puede funcionar en uno de los dos modos:active
ostandby
. Puedes definir el modo de cada máquina virtual del clúster individualmente mediante metadatos. Por ejemplo:mode:active
. También puedes configurar el nivel de detalle del registro de cada nodo mediante unalogging
clave de metadatos que puede tener el valorbasic
oelaborate
. La aplicación de cada nodo consume los valores de los metadatos de instancia.La plantilla de instancia define los metadatos
mode:active
ylogging:basic
que se usarán como valores predeterminados en todas las instancias. Has definidologging:elaborate
en una configuración por instancia para la VMnode-12
del clúster. Ahora, quieres cambiarnode-12
al modo Inactivo y cambiar el registro abasic
en esta instancia.Para cambiar la VM
node-12
a espera y su registro a básico, aplica un parche a la configuración por instancia asociada mediante el métodopatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-12", "preservedState" : { "metadata": { "mode": "standby", "logging": null } } } ] }
El método hace lo siguiente:
- Define los metadatos de
mode:standby
en la configuración por instancia asociada a la VMnode-12
del MIGexample-cluster
. - Quita los metadatos
logging:elaborate
de la configuración por instancia porque el valor proporcionado esnull
.
La actualización de la configuración aún no se ha aplicado a la instancia de VM
node-12
. La actualización de la configuración se aplicará la próxima vez que recrees o actualices la instancia, o si usas la actualización automática proactiva.Para aplicar la actualización de la configuración por instancia a la instancia de VM
node-12
, llama al métodoinstanceGroupManagers.applyUpdatesToInstances
de la instancia:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-12"], "minimalAction": "NONE" }
El método aplica la configuración actualizada por instancia a la
node-12
VM:- Define los metadatos de
mode:standby
según la configuración por instancia. - Define los metadatos de
logging:basic
de la plantilla de instancia porque el valor de la clavelogging
ya no se define en la configuración de cada instancia. - La VM sigue ejecutándose durante la actualización porque
minimalAction
se ha definido comoNONE
, lo que permite que el MIG use la acción menos disruptiva necesaria para la actualización. Para actualizar los metadatos de una instancia, se necesita la acciónREFRESH
, que no interrumpe una instancia en ejecución.
Comentarios
Queremos conocer tus casos prácticos, tus retos y tus comentarios sobre los MIGs con estado. Envíanos tus comentarios a nuestro equipo a la dirección mig-discuss@google.com.
Siguientes pasos
- Consulta más información sobre cómo almacenar y obtener metadatos de instancias.
- Configura discos persistentes con reconocimiento del estado para las VMs de un MIG.
- Consulta información sobre cómo aplicar, ver y quitar la configuración con reconocimiento del estado.
- Consulta más información sobre los grupos de instancias gestionadas y sobre cómo trabajar con instancias gestionadas.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-19 (UTC).
-