Os metadados da instância são úteis para definir propriedades e comunicar com as suas aplicações através do servidor de metadados. Por exemplo, pode usar metadados para configurar a identidade da instância da máquina virtual (VM), as variáveis de ambiente, as informações sobre a arquitetura do cluster ou o intervalo de dados de que uma VM é responsável.
Ao configurar metadados com estado num grupo de instâncias geridas (GIG), garante que os metadados específicos da instância são preservados em instâncias geridas eventos de autorreparação, atualização e recriação.
Configure metadados com estado individualmente para instâncias de VM num MIG definindo-os
em
configurações por instância
e aplicando a configuração. Pode definir uma configuração por instância na criação da instância ou em instâncias geridas existentes. Depois de a configuração por instância ser aplicada, o MIG armazena metadados com estado no campo preserved state from configuration (preservedStateFromConfig
) de uma instância gerida.
Antes de começar
- Reveja quando usar MIGs com estado e como funcionam os MIGs com estado.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Terraform
Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade 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 mais informações, consulte Set up authentication for a local development environment.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Limitações
Um MIG com metadados com estado tem as seguintes limitações:
Um MIG com uma configuração com estado, ou seja, um MIG com estado, tem as seguintes limitações:
- Não pode usar o dimensionamento automático se o MIG tiver uma configuração com estado.
- Se quiser usar atualizações contínuas automáticas, tem de definir o
método de substituição
como
RECREATE
. - Para os MIGs regionais com estado, tem de desativar a redistribuição proativa (defina o tipo de redistribuição como
NONE
) para impedir a eliminação de instâncias com estado pela redistribuição automática entre zonas. Se usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não pode especificar essas propriedades em nenhuma configuração por instância e, ao mesmo tempo, na configuração de todas as instâncias do grupo.
Quando elimina uma instância permanentemente (manualmente ou redimensionando), o MIG não preserva os metadados com estado da instância.
Definir metadados com estado na criação de instâncias
Defina metadados com estado quando criar manualmente instâncias num MIG. Isto é útil para migrar uma aplicação com estado em VMs autónomas para um MIG com estado e quando cria instâncias com estado.
Quando cria manualmente uma instância num MIG e fornece metadados com estado, o MIG realiza as seguintes tarefas:
- Cria uma instância gerida a partir do modelo de instância com o nome da instância fornecido.
- Cria uma configuração por instância com os metadados com estado fornecidos e define esses metadados na instância.
- Armazena os metadados com estado no estado preservado da configuração (
preservedStateFromConfig
) da instância gerida associada.
gcloud
Para criar uma instância gerida com um nome personalizado e definir metadados com estado nessa VM, use o comando
gcloud compute instance-groups managed create-instance
com a flag--stateful-metadata
.gcloud compute instance-groups managed create-instance NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...]
Substitua o seguinte:
NAME
: o nome do MIG no qual criar uma instânciaINSTANCE_NAME
: o nome da instância a criarKEY
eVALUE
: pares de chave-valor de metadados com estado para definir individualmente para as instâncias, além dos metadados definidos no modelo de instância- Os valores-chave que definir aqui têm prioridade sobre quaisquer valores-chave em conflito do modelo de instância
Exemplo
Tem de implementar um cluster de nós,
example-cluster
, que pode funcionar num de dois modos:active
oustandby
. Pode definir o modo individualmente para cada VM num cluster através de metadados, por exemplo:mode:active
. Também pode configurar o nível de detalhe do registo para cada nó através de uma chave de metadadoslogging
que pode ser definida comobasic
ouelaborate
. A aplicação no nó é configurada com valores dos metadados da instância.Para criar um nó ativo,
node-12
, com registo detalhado, executaria o seguinte comando:gcloud compute instance-groups managed create-instance example-cluster \ --instance node-12 \ --stateful-metadata mode=active,logging=elaborate
O comando cria uma VM,
node-12
, no MIGexample-cluster
e define dois pares de chave-valor de metadados,mode:active
elogging:elaborate
, para a nova instância.Terraform
Para criar uma instância gerida com um nome personalizado e definir metadados com estado nessa VM, use o recurso
google_compute_per_instance_config
.O exemplo seguinte usa um MIG zonal. Se ainda não tiver um MIG zonal, crie um MIG zonal com VMs confinadas a uma única zona.
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
REST
Para criar uma ou várias instâncias geridas num MIG com nomes de VMs personalizados e para definir metadados com estado individualmente nestas VMs, use o método
instanceGroupManagers.createInstances
. Para um MIG regional, use o 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", ... } } }, ... ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto do pedidoZONE
: a zona onde a GIG está localizada (aplica-se a uma GIG zonal)- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG
- Para um MIG regional, substitua
NAME
: o nome do MIG no qual criar uma instânciaINSTANCE_NAME
: o nome da instância a criarKEY
eVALUE
: pares de chave-valor de metadados com estado para definir individualmente para as instâncias, além dos metadados definidos no modelo de instância- Os valores-chave que definir aqui têm prioridade sobre quaisquer valores-chave em conflito do modelo de instância
Exemplo
Tem de implementar um cluster de nós,
example-cluster
, que pode funcionar num de dois modos:active
oustandby
. Pode definir o modo individualmente para cada VM num cluster através de metadados, por exemplo:mode:active
. Também pode configurar o nível de detalhe do registo para cada nó através de uma chave de metadadoslogging
que pode ser definida comobasic
ouelaborate
. A aplicação no nó é configurada com valores dos metadados da instância.Para criar um nó ativo,
node-12
, com registo detalhado, execute o seguinte 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" } } } ] }
O método cria uma VM,
node-12
, no MIGexample-cluster
e define dois pares de chave-valor de metadados,mode:active
elogging:elaborate
, para a nova instância.Definir, modificar e remover metadados com estado individualmente para instâncias de VM existentes
Defina, modifique ou remova metadados com estado para uma instância existente num MIG definindo-os numa configuração por instância associada e, em seguida, aplicando a configuração atualizando a instância.
gcloud
Para configurar metadados com estado individualmente para uma instância de VM num MIG, defina ou remova metadados com estado na configuração por instância associada. Se aplicar a configuração à instância ao mesmo tempo (
--update-instance
), pode optar por manter a instância em execução, reiniciá-la ou recriá-la. Se não aplicar a configuração (--no-update-instance
), as alterações não entram em vigor até recriar ou atualizar a instância.Se não existir uma configuração por instância para uma determinada instância, use o
gcloud compute instance-groups managed instance-configs create
comando com uma das seguintes flags: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]
Se já existir uma configuração por instância para uma determinada instância, use o comando
gcloud compute instance-groups managed instance-configs update
com:- A flag
--stateful-metadata
para definir ou modificar metadados, ou - O sinalizador
--remove-stateful-metadata
para remover metadados com estado específicos da instância.
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]
Substitua o seguinte:
NAME
: o nome do grupo de instâncias gerido.INSTANCE_NAME
: o nome da instância para a qual configurar metadados com estado.KEY=VALUE
: Pares de chave-valor de metadados com estado a definir individualmente para a instância, além dos metadados definidos no modelo de instância. Os valores-chave que definir aqui têm prioridade sobre quaisquer valores-chave em conflito do modelo de instância.KEY
: chaves de metadados com estado específicas da instância a remover da configuração por instância.- Se um valor para a chave não for definido pelo modelo de instância, o par de chave-valor é removido completamente da instância quando a alteração é aplicada.
- Se um valor para a chave for definido pelo modelo de instância, o valor do modelo de instância é definido na instância quando a alteração é aplicada.
MINIMAL_ACTION
: execute, pelo menos, a ação especificada quando aplicar a atualização da configuração por instância à instância. Só é possível definir umMINIMAL_ACTION
quando é usada a flag--update-instance
. O valor tem de ser um dos seguintes:none
: nenhuma ação.refresh
: aplique atualizações que sejam possíveis aplicar sem parar a instância.restart
: pare a instância e, em seguida, inicie-a novamente.replace
: recrie a instância.
Se for omitido, é usada a ação menos disruptiva exigida pela atualização.
Exemplo
Tem um cluster de nós,
example-cluster
, que pode funcionar num de dois modos:active
oustandby
. Define o modo individualmente para cada VM no cluster através de metadados, por exemplo:mode:active
. Também pode configurar o nível de detalhe do registo para cada nó através de uma chave de metadados que pode ser definida comobasic
ouelaborate
.logging
A aplicação em cada nó consome os valores dos metadados da instância.O modelo de instância define metadados
mode:active
elogging:basic
a usar como predefinição para todas as instâncias. Definiulogging:elaborate
numa configuração por instância para a VMnode-12
no cluster. Agora, quer mudar onode-12
para o modo de espera e mudar o registo parabasic
para esta VM.Para mudar a instância
node-12
para o modo de espera e o respetivo registo para o modo básico, execute o seguinte comando:gcloud compute instance-groups managed instance-configs update example-cluster \ --instance node-12 \ --stateful-metadata mode=standby \ --remove-stateful-metadata logging
O comando faz o seguinte:
- Define os metadados
mode:standby
na configuração por instância associada à VMnode-12
no MIGexample-cluster
. - Remove os metadados
logging:elaborate
da configuração por instância para a instâncianode-12
. - Aplica a alteração de configuração por instância à VM
node-12
:- Define os metadados
mode:standby
de acordo com a configuração. - Define os metadados
logging:basic
a partir do modelo de instância porque o valor da chavelogging
já não está definido pela configuração por instância.
- Define os metadados
- A alteração é aplicada à VM imediatamente por predefinição porque a flag
--no-update-instance
é omitida. - A VM continua a ser executada durante a atualização porque a flag
--instance-update-minimal-action
foi omitida e a ação menos disruptiva é escolhida para a atualização por predefinição, neste caso:refresh
.
REST
Para configurar metadados com estado individualmente para instâncias de VM existentes num MIG, defina ou remova os metadados nas configurações por instância associadas. Em seguida, atualize a instância para aplicar a configuração.
Se ainda não existirem configurações por instância para as instâncias fornecidas, use o
instanceGroupManagers.updatePerInstanceConfigs
method com metadados com 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" }, ... ] }
Se já existirem configurações por instância para as instâncias indicadas, use o 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" }, ... ] }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto para o pedido.ZONE
: A zona onde o GIG está localizado (aplica-se a um GIG zonal).- Para um MIG regional, substitua
zones/ZONE
porregions/REGION
e especifique a região do MIG.
- Para um MIG regional, substitua
NAME
: o nome do MIG.INSTANCE_NAME
: O nome da VM para a qual configurar metadados com estado.KEY
eVALUE
: pares de chave-valor de metadados com estado para definir individualmente para as instâncias, além de quaisquer metadados definidos no modelo de instância.- Os valores de metadados com estado definidos para as chaves que já existem no modelo de instância substituem os valores do modelo de instância.
- As outras entradas de metadados do modelo de instância permanecem inalteradas e disponíveis.
- Fornecer
null
como um valor remove a chave da configuração por instância.
FINGERPRINT
: (opcional). A impressão digital da configuração fornecida, se já existir. Usado para bloqueio otimista.
Os métodos
updatePerInstanceConfigs
epatchPerInstanceConfigs
atualizam as configurações especificadas por instância, mas não aplicam as atualizações de configuração às instâncias de VM associadas. As alterações são aplicadas a uma VM quando atualiza ou recria a instância. Para aplicar as alterações a uma VM, pode aplicar a atualização manualmente ou usar o atualizador no modo proativo ou oportunista.Exemplo
Tem um cluster de nós,
example-cluster
, que pode funcionar num de dois modos:active
oustandby
. Define o modo individualmente para cada VM no cluster através de metadados, por exemplo:mode:active
. Também pode configurar o nível de detalhe do registo para cada nó através de uma chave de metadados que pode ser definida comobasic
ouelaborate
.logging
A aplicação em cada nó consome os valores dos metadados da instância.O modelo de instância define metadados
mode:active
elogging:basic
a usar como predefinição para todas as instâncias. Definiulogging:elaborate
numa configuração por instância para a VMnode-12
no cluster. Agora, quer mudarnode-12
para o modo de espera e mudar o registo parabasic
para esta instância.Para mudar a VM
node-12
para o modo de espera e o respetivo registo para o modo básico, aplique uma patch à configuração por instância associada através do 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 } } } ] }
O método faz o seguinte:
- Define os metadados
mode:standby
na configuração por instância associada à VM,node-12
, no GIGexample-cluster
. - Remove os metadados
logging:elaborate
da configuração por instância, porque o valor fornecido énull
.
A atualização da configuração ainda não foi aplicada à instância de VM
node-12
. A atualização da configuração é aplicada quando recria ou atualiza a instância ou se usar a atualização automática proativa.Para aplicar a atualização de configuração por instância à instância de VM
node-12
, chame o métodoinstanceGroupManagers.applyUpdatesToInstances
para a instância: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" }
O método aplica a configuração atualizada por instância à VM:
node-12
- Define os metadados da
mode:standby
, de acordo com a configuração por instância. - Define os metadados
logging:basic
a partir do modelo de instância porque o valor da chavelogging
já não está definido pela configuração por instância. - A VM continua a ser executada durante a atualização porque
minimalAction
está definido comoNONE
, o que permite que o MIG use a ação menos disruptiva necessária para a atualização. Uma atualização de metadados de uma instância requer a açãoREFRESH
, que não interrompe uma instância em execução.
Feedback
Queremos saber mais sobre os seus exemplos de utilização, desafios e feedback acerca dos MIGs com estado. Partilhe o seu feedback com a nossa equipa através do endereço de email mig-discuss@google.com.
O que se segue?
- Saiba mais sobre como armazenar e obter metadados de instâncias.
- Configure discos persistentes com estado para VMs num MIG.
- Saiba como aplicar, ver e remover a configuração com estado.
- Saiba mais sobre os MIGs e como trabalhar com instâncias geridas.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-