Os metadados da instância são úteis para definir propriedades e se comunicar com seus aplicativos por meio do servidor de metadados. Por exemplo, você pode usar metadados para configurar a identidade da instância da máquina virtual (VM), variáveis de ambiente, informações sobre a arquitetura do cluster ou intervalo de dados pelo qual uma VM é responsável.
Ao configurar metadados com estado em um grupo de instâncias gerenciadas (MIG) , você garante que os metadados específicos da instância sejam preservados em eventos de recuperação automática, atualização e recriação de instâncias gerenciadas .
Configure metadados com estado individualmente para instâncias de VM em um MIG definindo-os em configurações por instância e aplicando a configuração. Você pode definir uma configuração por instância na criação da instância ou em instâncias gerenciadas existentes. Depois que a configuração por instância é aplicada, o MIG armazena metadados com estado no campo estado preservado da configuração ( preservedStateFromConfig
) de uma instância gerenciada.
Antes de começar
- Revise quando usar MIGs com estado e como funcionam os MIGs com estado .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Você não poderá usar o escalonamento automático se o seu MIG tiver configuração com estado.
- Se quiser usar atualizações contínuas automatizadas, você deverá definir o método de substituição como
RECREATE
. - Para MIGs regionais com estado, você deve desabilitar a redistribuição proativa (definir o tipo de redistribuição como
NONE
) para evitar a exclusão de instâncias com estado por meio da redistribuição automática entre zonas. Se você usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não poderá 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 você exclui permanentemente uma instância (manualmente ou redimensionando), o MIG não preserva os metadados com estado da instância.
- Cria uma instância gerenciada a partir do modelo de instância usando o nome de 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 gerenciada associada. -
NAME
: o nome do MIG no qual criar uma instância -
INSTANCE_NAME
: o nome da instância a ser criada -
KEY
eVALUE
: pares de valores-chave de metadados com estado para definir individualmente para as instâncias, além dos metadados definidos no modelo de instância- Os valores-chave definidos aqui têm prioridade sobre quaisquer valores-chave conflitantes do modelo de instância
-
PROJECT_ID
: o ID do projeto para a solicitação -
ZONE
: a zona onde o MIG está localizado (aplica-se a um MIG 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ância -
INSTANCE_NAME
: o nome da instância a ser criada -
KEY
eVALUE
: pares de valores-chave de metadados com estado para definir individualmente para as instâncias, além dos metadados definidos no modelo de instância- Os valores-chave definidos aqui têm prioridade sobre quaisquer valores-chave conflitantes do modelo de instância
- O sinalizador
--stateful-metadata
para definir ou modificar metadados, ou - O sinalizador
--remove-stateful-metadata
para remover metadados com estado específicos da instância. -
NAME
: o nome do grupo de instâncias gerenciadas. -
INSTANCE_NAME
: o nome da instância para a qual configurar metadados com estado. -
KEY = VALUE
: pares de valores-chave de metadados com estado a serem definidos individualmente para a instância, além dos metadados definidos no modelo de instância. Os valores-chave definidos aqui têm prioridade sobre quaisquer valores-chave conflitantes do modelo de instância. -
KEY
: chaves de metadados com estado específicas da instância a serem removidas da configuração por instância.- Se um valor para a chave não for definido pelo modelo de instância, o par chave-valor será completamente removido da instância quando a alteração for aplicada.
- Se um valor para a chave for definido pelo modelo de instância, o valor do modelo de instância será definido na instância quando a alteração for aplicada.
MINIMAL_ACTION
: execute pelo menos a ação especificada ao aplicar a atualização de configuração por instância à instância. UmMINIMAL_ACTION
só pode ser definido quando o sinalizador--update-instance
é usado. O valor deve ser um dos seguintes:-
none
: Nenhuma ação. -
refresh
: aplica atualizações que podem ser aplicadas sem interromper a instância. -
restart
: interrompa a instância e reinicie-a. -
replace
: Recrie a instância.
Se omitido, será usada a ação menos perturbadora exigida pela atualização.
-
- Define metadados
mode:standby
na configuração por instância que está associada à VM,node-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 do
node-12
:- Define metadados
mode:standby
, de acordo com a configuração. - Define os metadados
logging:basic
do modelo de instância porque o valor da chavelogging
não é mais definido pela configuração por instância.
- Define metadados
- A alteração é aplicada à VM imediatamente por padrão porque o sinalizador
--no-update-instance
é omitido. - A VM continua em execução durante a atualização porque o sinalizador
--instance-update-minimal-action
é omitido e a ação menos perturbadora é escolhida para a atualização por padrão, neste caso:refresh
. -
PROJECT_ID
: o ID do projeto da solicitação. -
ZONE
: A zona onde o MIG está localizado (aplica-se a um MIG 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 valores-chave 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.
- Outras entradas de metadados do modelo de instância permanecem inalteradas e disponíveis.
- Fornecer
null
como 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. - Define metadados
mode:standby
na configuração por instância associada à VM,node-12
, no MIGexample-cluster
. - Remove os metadados
logging:elaborate
da configuração por instância porque o valor fornecido énull
. - Define os metadados
mode:standby
, de acordo com a configuração por instância. - Define os metadados
logging:basic
do modelo de instância porque o valor da chavelogging
não é mais definido pela configuração por instância. - A VM continua em execução durante a atualização porque
minimalAction
está definido comoNONE
, o que permite que o MIG use a ação menos perturbadora necessária para a atualização. Uma atualização de metadados de instância requer a açãoREFRESH
, que não interrompe uma instância em execução. - Saiba mais sobre como armazenar e recuperar metadados de instância .
- Configure discos permanentes com estado para VMs em um MIG.
- Saiba mais sobre como aplicar, visualizar e remover configurações com estado.
- Saiba mais sobre MIGs e como trabalhar com instâncias gerenciadas .
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Limitações
Um MIG com metadados com estado tem as seguintes limitações:
Um MIG com configuração com estado — um MIG com estado — tem as seguintes limitações:
Configurando metadados com estado na criação de instâncias
Defina metadados com estado ao criar instâncias manualmente em um MIG. Isso é útil para migrar um aplicativo com estado em VMs autônomas para um MIG com estado e ao criar instâncias com estado.
Ao criar manualmente uma instância em um MIG e fornecer metadados com estado, o MIG executa as seguintes tarefas:
gcloud
Para criar uma instância gerenciada com um nome personalizado e definir metadados com estado nessa VM, use o comando
gcloud compute instance-groups managed create-instance
com a sinalização--stateful-metadata
.gcloud compute instance-groups managed create-instance NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...]
Substitua o seguinte:
Exemplo
Você precisa implementar um cluster de nós,
example-cluster
, que possa operar em um dos dois modos:active
oustandby
. Você define o modo individualmente para cada VM em um cluster usando metadados, por exemplo:mode:active
. Você também configura o nível de elaboração do registro em log para cada nó, usando uma chave de metadados de registrologging
que pode ser definida comobasic
ouelaborate
. O aplicativo no nó é configurado usando valores de metadados da instância.Para criar um nó ativo,
node-12
, com registro elaborado, você 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 valores-chave de metadados,mode:active
elogging:elaborate
, para a nova instância.Terraforma
Para criar uma instância gerenciada com um nome personalizado e definir metadados com estado nessa VM, use o recurso
google_compute_per_instance_config
.O exemplo a seguir usa um MIG zonal. Se você 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 Comandos básicos do Terraform .
DESCANSAR
Para criar uma ou várias instâncias gerenciadas em um MIG com nomes de VM personalizados e definir metadados com estado individualmente nessas 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:
Exemplo
Você precisa implementar um cluster de nós,
example-cluster
, que possa operar em um dos dois modos:active
oustandby
. Você define o modo individualmente para cada VM em um cluster usando metadados, por exemplo:mode:active
. Você também configura o nível de elaboração do registro em log para cada nó, usando uma chave de metadados de registrologging
que pode ser definida comobasic
ouelaborate
. O aplicativo no nó é configurado usando valores de metadados da instância.Para criar um nó ativo,
node-12
, com registro elaborado, 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 valores-chave 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 em um MIG definindo-os em uma 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 em um MIG, defina ou remova metadados com estado na configuração por instância associada. Se você aplicar a configuração à instância ao mesmo tempo (
--update-instance
), poderá escolher se deseja manter a instância em execução, reiniciá-la ou recriá-la. Se você não aplicar a configuração (--no-update-instance
), suas alterações não entrarão em vigor até que você recrie ou atualize a instância.Se não existir uma configuração por instância para uma determinada instância, use o comando
gcloud compute instance-groups managed instance-configs create
com uma das seguintes sinalizações: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: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:
Exemplo
Você tem um cluster de nós,
example-cluster
, que pode operar em um dos dois modos:active
oustandby
. Você define o modo individualmente para cada VM no cluster usando metadados, por exemplo:mode:active
. Você também configura o nível de elaboração do registro em log para cada nó, usando uma chave de metadados de registrologging
que pode ser definida comobasic
ouelaborate
. O aplicativo em cada nó consome os valores dos metadados da instância.O modelo de instância define os metadados
mode:active
elogging:basic
a serem usados como padrão para todas as instâncias. Você definiulogging:elaborate
em uma configuração por instância para a VMnode-12
no cluster. Agora, você deseja mudarnode-12
para o modo de espera e mudar o log parabasic
para esta VM.Para mudar a instância
node-12
para standby e seu registro para 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:
DESCANSAR
Para configurar metadados com estado individualmente para instâncias de VM existentes em um MIG, defina ou remova os metadados nas configurações associadas por instância. 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 método
instanceGroupManagers.updatePerInstanceConfigs
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 fornecidas, 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:
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 você atualiza ou recria a instância. Para aplicar as alterações a uma VM, você pode aplicar a atualização manualmente ou usar o Atualizador no modo proativo ou oportunista.Exemplo
Você tem um cluster de nós,
example-cluster
, que pode operar em um dos dois modos:active
oustandby
. Você define o modo individualmente para cada VM no cluster usando metadados, por exemplo:mode:active
. Você também configura o nível de elaboração do registro em log para cada nó, usando uma chave de metadados de registrologging
que pode ser definida comobasic
ouelaborate
. O aplicativo em cada nó consome os valores dos metadados da instância.O modelo de instância define os metadados
mode:active
elogging:basic
a serem usados como padrão para todas as instâncias. Você definiulogging:elaborate
em uma configuração por instância para a VMnode-12
no cluster. Agora, você deseja mudarnode-12
para o modo de espera e mudar o log parabasic
para esta instância.Para mudar a VM
node-12
para espera e seu log para básico, corrija a configuração por instância associada usando o 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:
A atualização de configuração ainda não foi aplicada à instância de VM
node-12
. A atualização de configuração será aplicada na próxima recriação ou atualização da instância ou se você 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 do
node-12
:Opinião
Queremos saber mais sobre seus casos de uso, desafios e feedback sobre MIGs com estado. Compartilhe seus comentários com nossa equipe em mig-discuss@google.com .
O que vem a seguir
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-04-21 UTC.
-