Ao configurar endereços IP com estado num grupo de instâncias geridas (GIG), garante que os endereços IP são preservados quando as instâncias de VM no grupo são autorreparadas, atualizadas e recriadas.
Pode preservar endereços IPv4 internos e externos. Pode configurar os endereços IP para serem atribuídos automaticamente ou atribuir endereços IP específicos a cada instância de VM num MIG.
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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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 endereços IP com estado tem as seguintes limitações:
Os endereços IPv6 não são suportados.
Os endereços IP internos não são suportados em redes que não tenham sub-redes, por exemplo, redes antigas.
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.
Preços
A cobrança dos endereços IP externos é feita de acordo com os preços de rede.
Quando usar endereços IP com estado
A preservação dos endereços IP das instâncias é útil nos seguintes cenários:
- A sua aplicação requer que um endereço IP permaneça estático depois de ter sido atribuído, por exemplo, o Kafka.
- A configuração da sua aplicação depende de endereços IP específicos, por exemplo, um servidor DNS.
- Os utilizadores, incluindo outras aplicações, acedem ao seu servidor através de um endereço IP estático dedicado, por exemplo, um servidor de ficheiros.
- Tem de migrar cargas de trabalho existentes sem alterar a configuração de rede.
Configurar endereços IP com estado para todas as VMs num grupo
A configuração de endereços IP com estado para todas as VMs num MIG é útil nos seguintes cenários:
- A sua aplicação requer que um endereço IP permaneça estático depois de ter sido atribuído. No entanto, a sua aplicação não requer a atribuição de endereços IP específicos a instâncias específicas. Os endereços IP podem ser atribuídos automaticamente na criação da instância.
- Os seus utilizadores, incluindo outras aplicações, acedem aos seus servidores através de endereços IP estáticos que publica após implementar a sua aplicação.
- Quer beneficiar da autorreparação de instâncias e das atualizações automáticas, ao mesmo tempo que preserva o endereço IP estático atribuído automaticamente na criação da instância.
Para manter endereços IP internos ou externos estáticos para instâncias de VM existentes e futuras no grupo, configure-o na política com estado.
Quando adiciona a configuração de endereço IP com estado à política com estado do grupo, o MIG aplica a configuração da seguinte forma:
- Para novas instâncias, o MIG atribui e reserva automaticamente endereços IP estáticos.
- Para instâncias existentes, o MIG promove endereços IP internos ou externos efémeros em utilização para endereços estáticos, reservando os endereços IP estáticos correspondentes.
Para instâncias existentes sem endereços IP externos, o MIG atribui e reserva endereços IP estáticos, e adiciona a configuração de acesso à interface de rede correspondente com os seguintes valores predefinidos:
"accessConfigs": [ { "kind": "compute#accessConfig", "name": "External NAT", "natIP": "XX.XX.XX.XX", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ]
Para reservar um endereço IP estático, o MIG cria um recurso de endereço.
Configurar endereços IP com estado na criação de MIGs
Use a Google Cloud consola, a CLI gcloud, o Terraform ou REST.
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Selecione o projeto e clique em Continuar.
Clique em Criar grupo de instâncias.
Selecione Novo grupo de instâncias geridas (com estado).
Especifique um Nome para o grupo de instâncias.
Selecione um modelo de instância.
Em Número de instâncias, especifique o número de instâncias que quer incluir no grupo de instâncias gerido.
Em Configuração com estado, expanda as secções IP externo e IP interno para configurar esses tipos de endereços IP como com estado.
- Para Com estado, selecione Sim.
- Na lista Na eliminação permanente da instância, selecione a ação a realizar no endereço IP com estado quando a instância de VM for eliminada. As opções disponíveis são:
- Desassociar IP: (predefinição). Desatribuir a morada na eliminação da instância e manter a morada reservada.
- Eliminar IP: elimina a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
- Depois de concluir a configuração com estado, clique em Concluído.
Clique em Criar.
gcloud
Quando criar um MIG, para especificar que endereços IP nas interfaces de rede do modelo de instância devem ter estado, use um ou vários dos seguintes flags com o comando
gcloud compute instance-groups managed create
:--stateful-internal-ip
para marcar um endereço IP interno de uma determinada interface de rede como com estado.--stateful-external-ip
para marcar um endereço IP externo de uma determinada interface de rede como com estado.
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]
Substitua o seguinte:
- INSTANCE_GROUP_NAME: o nome do MIG a criar.
- INSTANCE_TEMPLATE: o nome do modelo de instância a usar quando criar novas instâncias.
- SIZE: o número inicial de instâncias de que precisa neste grupo.
- NI_NAME: (opcional.) Nome da interface de rede. Se não for fornecida,
a opção
enabled
é obrigatória e a interface de rede principal denominadanic0
é assumida por predefinição. Se tiver várias interfaces de rede, pode especificar esta flag para cada IP em cada interface de rede. DELETE_RULE: (opcional.) Prescreve o que deve acontecer ao recurso de endereço estático associado quando uma instância da VM é eliminada permanentemente. As opções disponíveis são as seguintes:
never
: (predefinição.) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.on-permanent-instance-deletion
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
Exemplo
Tem de criar um grupo regional de instâncias de VM com endereços IP internos estáticos para as redes predefinidas e personalizadas, e endereços IP externos estáticos apenas para a rede predefinida. Quer que os endereços sejam atribuídos automaticamente, mas precisa que sejam preservados através da autorreparação de instâncias, das atualizações e dos eventos de recriação. Armazena a configuração da instância num modelo de instância denominado
node-template
.Para criar o grupo, execute o seguinte comando:
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
Os IPs internos nas interfaces de rede
nic0
enic1
, e o IP externo na interface de redenic0
estão configurados como com estado para todas as instâncias no grupo. O grupo reserva automaticamente endereços IP estáticos internos e externos para cada instância. Uma vez que a flagauto-delete
está definida comoon-permanent-instance-deletion
, o grupo elimina automaticamente as reservas de endereços IP estáticos quando elimina as instâncias associadas ou todo o grupo.Para verificar se os IPs internos nas interfaces de rede
nic0
enic1
e o IP externo na interface de redenic0
estão configurados como com estado, execute o seguinte comando:gcloud compute instance-groups managed describe example-group \ --zone us-east1-c
O resultado é semelhante ao seguinte:
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 ...
Pode ver que a política com estado do grupo declara IPs internos nas interfaces de rede
nic0
enic1
e IPs externos na interface de redenic0
como com estado com a regra para eliminar reservas de IP estáticas na eliminação permanente de instâncias.Terraform
Se ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de arranque, a rede e outras propriedades da VM que quer para cada VM no MIG, crie um modelo de instância.
Quando cria um MIG, para especificar que endereços IP nas interfaces de rede do modelo de instância devem ter estado, use um ou vários dos seguintes blocos:
stateful_internal_ip
para marcar um endereço IP interno de uma determinada interface de rede como com estado.stateful_external_ip
para marcar um endereço IP externo de uma determinada interface de rede como com estado.
A amostra seguinte configura endereços IP com estado ao criar um MIG regional. Para mais informações sobre o recurso usado no exemplo, consulte o
google_compute_region_instance_group_manager
recurso.Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
REST
Quando cria um MIG, para especificar que endereços IP nas interfaces de rede do modelo de instância devem ser com estado, inclua-os no campo
statefulPolicy
no corpo do pedido do métodoinstanceGroupManagers.insert
ouregionInstanceGroupManagers.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" } }
Substitua o seguinte:
- PROJECT: o ID do projeto para o pedido.
- REGION: para GIGs regionais, a
região onde o grupo está
localizado. Para MIGs zonais, substitua
regions/REGION
porzones/ZONE
e especifique a zona onde o MIG está localizado. - NAME: o nome do MIG a criar.
- INSTANCE_TEMPLATE: O nome do modelo de instância a usar quando criar novas instâncias.
- SIZE: o número inicial de instâncias de que precisa neste grupo.
- NI_NAME: (opcional.) Nome da interface de rede. Se não for fornecida,
a opção
enabled
é obrigatória e a interface de rede principal denominadanic0
é assumida por predefinição. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES. DELETE_RULE: (Opcional) Prescreve o que deve acontecer a um recurso de Address estático associado quando uma instância de VM é eliminada permanentemente. As opções disponíveis são as seguintes:
NEVER
: (Predefinição) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.ON_PERMANENT_INSTANCE_DELETION
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
Exemplo
Tem de criar um grupo regional de instâncias de VM com endereços IP internos estáticos para as redes predefinidas e personalizadas, e endereços IP externos estáticos apenas para a rede predefinida. Quer que os endereços sejam atribuídos automaticamente, mas precisa que sejam preservados através da autorreparação de instâncias, das atualizações e dos eventos de recriação. Armazena a configuração da instância num modelo de instância denominado
node-template
.Para criar o grupo, use o método
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" } }
Os IPs internos nas interfaces de rede
nic0
enic1
, e os IPs externos na interface de redenic0
, estão configurados como com estado para todas as instâncias no grupo. O grupo reserva automaticamente endereços IP estáticos internos e externos para cada instância. Uma vez que o campoauto-delete
está definido comoON_PERMANENT_INSTANCE_DELETION
, o grupo elimina automaticamente as reservas de endereços IP estáticos quando elimina instâncias associadas ou todo o grupo.GET https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group
A resposta contém a política com estado configurada:
{ "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" } } } } ... }
Pode ver que a política com estado do grupo declara IPs internos nas interfaces de rede
nic0
enic1
e IPs externos na interface de redenic0
como com estado com a regra para eliminar as reservas de endereços IP estáticos associadas na eliminação permanente de instâncias.Definir e atualizar a configuração com estado para endereços IP no MIG existente
Se executar uma carga de trabalho num MIG sem estado (um MIG sem qualquer configuração com estado) e a carga de trabalho exigir endereços IP estáticos, pode configurar os endereços IP já atribuídos às instâncias de VMs geridas para que se tornem com estado. Isto garante que os endereços IP das suas VMs existentes são preservados em eventos de atualização, recriação e autocura de instâncias. Opcionalmente, pode manter as reservas de endereços IP estáticos depois de as instâncias terem sido eliminadas.
Ao configurar uma política com estado para endereços IP num MIG existente, pode fazer o seguinte:
- Configure os endereços IP como com estado para todas as instâncias existentes e futuras no grupo. Isto promove os endereços IP efémeros correspondentes de todas as instâncias existentes a endereços IP estáticos.
- Atualize a configuração com estado existente para endereços IP.
O MIG aplica a configuração atualizada na política com estado automaticamente e de forma assíncrona a todas as instâncias. As atualizações às configurações de endereços IP numa política com estado não interrompem as instâncias de VMs em execução. Para saber mais, leia acerca da aplicação de atualizações de políticas com estado.
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Clique no nome do grupo de instâncias para o qual quer especificar endereços IP com estado.
Clique em Editar para modificar o grupo de instâncias gerido.
Clique em Configuração com estado e por instância para expandir a secção.
Na secção Configuração do grupo, clique no IP externo e no IP interno que quer tornar com estado.
- Para Com estado, selecione Sim.
- Na lista Na eliminação permanente da instância, selecione a ação a realizar no endereço IP com estado quando a instância de VM for eliminada. As opções disponíveis são:
- Desassociar IP: (predefinição). Desatribuir a morada na eliminação da instância e manter a morada reservada.
- Eliminar IP: elimina a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
- Depois de atualizar a configuração com estado, clique em Concluído.
- Clique em Guardar para concluir a atualização.
gcloud
Para especificar que endereços IP devem ser com estado ou para atualizar a configuração de IP com estado para um MIG existente, use um ou vários flags
--stateful-internal-ip
ou--stateful-external-ip
com o comandogcloud 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]
Substitua o seguinte:
- INSTANCE_GROUP_NAME: o nome do MIG a atualizar.
- NI_NAME: (opcional.) Nome da interface de rede. Se não for fornecida,
a opção
enabled
é obrigatória e a interface de rede principal denominadanic0
é assumida por predefinição. Se tiver várias interfaces de rede, pode especificar esta flag para cada IP em cada interface de rede. DELETE_RULE: (opcional.) Prescreve o que deve acontecer a um recurso de endereço estático associado quando uma instância da VM é eliminada permanentemente. As opções disponíveis são as seguintes:
never
: (predefinição.) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.on-permanent-instance-deletion
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
Se um endereço IP especificado já estiver configurado na política com estado para uma determinada interface de rede, o comando atualiza a configuração.
Exemplo
Tem de expor um servidor de ficheiros, executado num MIG com estado denominado
example-fs-group
, a utilizadores externos através de endereços IP externos estáticos. As instâncias no grupo têm endereços IP externos efémeros. Tem de garantir que os endereços IP são preservados na autorreparação e nas atualizações das instâncias para que os utilizadores externos tenham acesso contínuo aos servidores através dos endereços IP publicados. Também tem de manter os endereços IP reservados para continuidade em caso de eliminação não intencional de grupos.Atualize o MIG para definir os endereços IP externos como com estado através do seguinte comando:
gcloud compute instance-groups managed update example-fs-group \ --stateful-external-ip enabled
Como resultado, o grupo promove endereços IP externos efémeros na interface de rede
nic0
para endereços IP estáticos para todas as instâncias geridas de forma assíncrona.Os endereços IP externos são agora preservados em eventos de autocura, atualização e recriação de instâncias. As reservas de endereços IP estáticos associadas são anuladas e preservadas na eliminação da instância porque a regra
auto-delete
não especificada está definida comonever
por predefinição.Pode verificar se o IP externo com estado está configurado na política com estado executando o comando
gcloud compute instance-groups managed describe example-fs-group
.REST
Para especificar que endereços IP devem ser com estado ou para atualizar a configuração de IP com estado para um MIG existente, use o método
instanceGroupManagers.patch
ouregionInstanceGroupManagers.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" } } } } }
Substitua o seguinte:
- PROJECT: o ID do projeto para o pedido.
- REGION: para GIGs regionais, a
região onde o grupo está
localizado. Para MIGs zonais, substitua
regions/REGION
porzones/ZONE
e especifique a zona onde o MIG está localizado. - NAME: o nome do MIG a criar.
- NI_NAME: (Obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES. DELETE_RULE: (Opcional) Prescreve o que deve acontecer a um recurso de Address estático associado quando uma instância de VM é eliminada permanentemente. As opções disponíveis são as seguintes:
NEVER
: (Predefinição) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.ON_PERMANENT_INSTANCE_DELETION
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
Se um endereço IP especificado já estiver configurado na política com estado, o método corrige a configuração.
Exemplo
Tem de expor um servidor de ficheiros, executado num MIG com estado denominado
example-fs-group
, a utilizadores externos através de endereços IP externos estáticos. As instâncias no grupo têm endereços IP externos efémeros. Tem de garantir que os endereços IP são preservados na autorreparação e nas atualizações das instâncias para que os utilizadores externos tenham acesso contínuo aos servidores através da interface de rede publicada. Também tem de manter os endereços IP reservados para continuidade em caso de eliminação não intencional de grupos.Aplique uma correção ao MIG para definir os endereços IP externos como com estado:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-fs-group { "statefulPolicy": { "preservedState": { "externalIPs": { "nic0": {"autoDelete": "NEVER" } } } } }
Como resultado, o grupo promove endereços IP externos efémeros na interface de rede
nic0
para endereços IP estáticos para todas as instâncias geridas de forma assíncrona.Os endereços IP externos são agora preservados em eventos de autocura, atualização e recriação de instâncias. As reservas de endereços IP estáticos associadas são anuladas e preservadas na eliminação da instância porque a regra
autoDelete
está definida comoNEVER
.Verifique se o endereço IP externo está configurado na política com estado, vendo o recurso
regionInstanceGroupManagers
devolvido pelo métodoregionInstanceGroupManagers.get
.Declarar endereços IP com estado anterior como sem estado
Pode ter de configurar um endereço IP com estado para se tornar efémero, por exemplo, pelos seguintes motivos:
- Reestruturar a sua app para deixar de depender de endereços IP estáticos.
- Configurou o IP como Stateful por engano e quer reverter essa configuração.
Pode remover a configuração de IP com estado da política com estado do grupo para declarar um endereço IP numa determinada interface de rede como efémero para todas as instâncias geridas.
Quando remove a configuração de IP com estado da política com estado, o GIG remove os endereços IP automaticamente e de forma assíncrona do estado preservado de todas as instâncias no grupo. Esta operação não interrompe as instâncias de VMs em execução. Os endereços IP permanecem ativos nas instâncias, mas deixam de ser com estado. Quando recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG desatribui os endereços IP estáticos associados e atribui automaticamente endereços efémeros. Se já não precisar de manter as reservas de endereços IP externos estáticos, pode agora libertá-las.
Para saber mais, leia os seguintes documentos:
- Como a remoção de um recurso da política com estado afeta o estado preservado.
- A aplicar atualizações de políticas com estado.
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Clique no nome do grupo de instâncias do qual quer remover a configuração com estado para endereços IP.
Clique em Editar para modificar o grupo de instâncias gerido.
Clique em Configuração com estado e por instância para expandir a secção.
Na secção Configuração do grupo, expanda o IP externo e o IP interno que quer tornar sem estado.
- Altere a opção Com estado para Não.
- Clique em Concluído.
Depois de fazer as alterações, clique em Guardar.
gcloud
Para especificar que endereços IP da política com estado de um MIG devem ser efémeros, use a flag
--remove-stateful-internal-ips
ou--remove-stateful-external-ips
com o comandogcloud 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,...]
Substitua o seguinte:
- INSTANCE_GROUP_NAME: o nome do MIG a atualizar.
- NI_NAME: (obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES.
Se precisar de transformar um endereço IP com estado da interface de rede principal predefinida denominada
nic0
num endereço IP efémero, também pode usar o seguinte comando:gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --stateful-internal-ip disabled \ --stateful-external-ip disabled
Exemplo
A sua aplicação foi exposta aos utilizadores através de endereços IP externos estáticos publicados das instâncias de VM num MIG denominado
example-group
. Reestruturou o seu serviço implementando um balanceador de carga à frente do MIG e encaminhando o tráfego para as VMs geridas através dele. Já não precisa de manter os endereços IP externos estáticos e quer tornar os endereços IP externos das VMs efémeros.Para tornar os endereços IP externos com estado das VMs num MIG efémeros, execute o seguinte comando:
gcloud compute instance-groups managed update example-group \ --remove-stateful-external-ips nic0
O MIG remove os endereços IP externos estáticos da interface de rede
nic0
de forma automática e assíncrona do estado preservado de todas as instâncias no grupo. Os endereços IP externos permanecem ativos nas instâncias, mas deixam de ter estado. Quando recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG desatribui os endereços IP estáticos associados e atribui automaticamente endereços efémeros. Se já não precisar de manter as reservas de endereços IP externos estáticos, pode libertá-las.REST
Para especificar que endereços IP da política com estado de um MIG devem ser efémeros, remova a configuração de cada IP da política com estado do MIG através do método
instanceGroupManagers.patch
ouregionInstanceGroupManagers.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 } } } }
Substitua o seguinte:
- PROJECT: o ID do projeto para o pedido.
- REGION: para GIGs regionais, a
região onde o grupo está
localizado. Para MIGs zonais, substitua
regions/REGION
porzones/ZONE
e especifique a zona onde o MIG está localizado. - INSTANCE_GROUP_NAME: o nome do MIG a criar.
- NI_NAME: (Obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES.
Exemplo
A sua aplicação foi exposta aos utilizadores através de endereços IP externos estáticos publicados das instâncias de VM num MIG denominado
example-group
. Reestruturou o seu serviço implementando um balanceador de carga à frente do MIG e encaminhando o tráfego para as VMs geridas através dele. Já não precisa de manter os endereços IP externos estáticos e quer tornar os endereços IP externos das VMs efémeros.Para tornar os endereços IP externos com estado das VMs num MIG efémeros, aplique uma patch ao MIG:
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group { "statefulPolicy": { "preservedState": { "externalIPs": { "nic0": null } } } }
O MIG remove os endereços IP externos estáticos da interface de rede
nic0
de forma automática e assíncrona do estado preservado de todas as instâncias no grupo. Os endereços IP externos permanecem ativos nas instâncias, mas deixam de ter estado. Quando recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG desatribui os endereços IP estáticos associados e atribui automaticamente endereços efémeros. Se já não precisar de manter as reservas de endereços IP externos estáticos, pode agora libertá-las.Configurar endereços IP com estado individualmente para VMs num MIG
Configurar endereços IP com estado individualmente para VMs num MIG é útil nos seguintes cenários:
- Migrar cargas de trabalho existentes (transferir endereços IP estáticos reservados existentes) de instâncias de VMs autónomas para GIGs com estado para beneficiar da autorreparação e das atualizações automáticas.
- Atribuir endereços IP estáticos reservados específicos exigidos pela arquitetura ou pela configuração da carga de trabalho.
Configurar endereços IP estáticos na criação de VMs num MIG
Pode reservar e atribuir endereços IP estáticos a instâncias específicas quando cria individualmente essas instâncias num MIG. Isto é útil para migrar uma aplicação com estado de VMs autónomas existentes para um MIG com estado numa situação em que a arquitetura, a configuração ou os utilizadores dependem de endereços IP estáticos específicos.
Quando cria manualmente uma instância num MIG e fornece um endereço IP estático, o MIG executa as seguintes ações:
- Cria uma reserva de endereço IP interno ou externo estático para os endereços IP fornecidos, se ainda não existirem.
- Cria uma instância a partir do modelo de instância com o nome da instância e os endereços IP fornecidos.
- Cria uma configuração por instância com a configuração com estado fornecida para os endereços IP.
gcloud
Para criar uma instância com um endereço IP estático predefinido, use o comando
gcloud compute instance-groups managed create-instance
com um ou vários dos seguintes flags:--stateful-internal-ip
para definir um endereço IP interno estático de uma interface de rede específica.--stateful-external-ip
para definir um endereço IP externo estático de uma interface de rede específica.
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]
Substitua o seguinte:
- INSTANCE_GROUP_NAME: o nome do MIG.
- INSTANCE_NAME: o nome da instância a criar.
- NI_NAME: (opcional.) Nome da interface de rede. Se não for fornecida,
a interface de rede principal denominada
nic0
é assumida por predefinição. Se tiver várias interfaces de rede, pode especificar esta flag para cada IP em cada interface de rede. ADDRESS: (obrigatório) Endereço IP estático a atribuir à instância num dos seguintes formatos:
- Morada. URL de uma reserva de endereço IP estático, por exemplo:
"projects/example-project/regions/us-east1/addresses/example-ip-name"
. - Literal, por exemplo:
"130.211.181.55"
.- Se o endereço IP fornecido ainda não estiver reservado, o MIG cria automaticamente uma reserva de endereço IP correspondente.
- Se o endereço IP fornecido estiver reservado, o MIG atribui a reserva à instância.
- Morada. URL de uma reserva de endereço IP estático, por exemplo:
DELETE_RULE: (opcional.) Prescreve o que deve acontecer a um recurso de endereço estático associado quando uma instância de VM é eliminada permanentemente. As opções disponíveis são as seguintes:
never
: (predefinição.) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.on-permanent-instance-deletion
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
Exemplo
Tem de adicionar mais uma instância de VM ao cluster do servidor proxy, em execução num GIG denominado
proxy-cluster
. Criou uma reserva de endereço IP interno estático denominadaproxy-node-03-ip
e tem de a atribuir ao novo nó. Quiser manter a reserva de endereço IP, mesmo que decida eliminar o nó no futuro.Execute o seguinte comando para criar o nó:
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
O comando cria uma instância denominada
proxy-node-03
, atribui o endereço IP interno estático fornecido denominadoproxy-node-03-ip
à instância e armazena a configuração com estado para o IP na configuração por instância correspondente. Uma vez que a flagauto-delete
está definida comonever
, o IP permanece reservado se eliminar a instância mais tarde.Terraform
Para criar uma VM com um endereço IP estático predefinido, use um ou vários dos seguintes blocos:
preserved_state.internal_ip
para marcar um endereço IP interno de uma determinada interface de rede como com estado.preserved_state.external_ip
para marcar um endereço IP externo de uma determinada interface de rede como com estado.
A configuração de exemplo seguinte configura endereços IP estáticos na criação de VMs num MIG regional. Para mais informações sobre o recurso usado no exemplo, consulte o
google_compute_region_per_instance_config
recurso. Para um MIG zonal, use o recursogoogle_compute_per_instance_config
.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 num MIG, definir nomes de instâncias personalizados e atribuir endereços IP estáticos predefinidos a estas instâncias, use o método
instanceGroupManagers.createInstances
ouregionInstanceGroupManagers.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" }, ... }, ... } }, ... ] }
Substitua o seguinte:
- PROJECT_ID: o ID do projeto para o pedido.
- NAME: o nome do MIG.
- REGION: para GIGs regionais, a
região onde o grupo está
localizado. Para MIGs zonais, substitua
regions/REGION
porzones/ZONE
e especifique a zona onde o MIG está localizado. - INSTANCE_NAME: o nome da instância a criar.
- NI_NAME: (obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES. - ADDRESS: (opcional.) Endereço IP estático a atribuir à instância no formato de um URL de uma reserva de endereço IP estático, por exemplo:
"projects/example-project/regions/us-east1/addresses/example-ip-name"
. Tem de definir e só pode definir um campo de cada vez,address
ouliteral
, quando atribui um endereço IP estático. - LITERAL: (opcional.) Endereço IP estático a atribuir à instância no formato literal, por exemplo:
"130.211.181.55"
. Tem de definir apenas um campo de cada vez,address
ouliteral
, quando atribui um endereço IP estático.- Se o endereço IP literal fornecido ainda não estiver reservado, o MIG cria automaticamente uma reserva de endereço IP correspondente.
- Se o endereço IP literal fornecido estiver reservado, o MIG atribui a reserva à instância.
DELETE_RULE: (opcional.) Prescreve o que deve acontecer a um recurso de endereço estático associado quando uma instância de VM é eliminada permanentemente. As opções disponíveis são as seguintes:
NEVER
: (predefinição.) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.ON_PERMANENT_INSTANCE_DELETION
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
Exemplo
Tem de adicionar mais uma instância de VM ao cluster do servidor proxy, em execução num GIG denominado
proxy-cluster
. Criou uma reserva de endereço IP interno estático denominadaproxy-node-03-ip
e tem de a atribuir ao novo nó. Quiser manter a reserva de endereço IP, mesmo que decida eliminar o nó no futuro.Chame o método
regionInstanceGroupManagers.createInstances
para criar uma instância adicional: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" } } } } ] }
O método cria uma instância com o nome
proxy-node-03
, atribui o endereço IP interno estático fornecido com o nomeproxy-node-03-ip
à instância e armazena a configuração com estado para o IP na configuração por instância correspondente. Uma vez que o campoautoDelete
está definido comoNEVER
, o IP permanece reservado se eliminar a instância posteriormente.Configurar endereços IP estáticos para uma VM existente num MIG
Pode definir um endereço IP estático predefinido ou atualizar a configuração de IP com estado para uma instância gerida individualmente, por exemplo:
- Atribua um endereço IP estático a uma instância existente num MIG. Para IPs externos estáticos, esta operação requer a atualização da instância e, para IPs internos estáticos, requer a recriação da instância.
- Atualize a regra de eliminação de um endereço IP estático já atribuído. Esta operação pode ser feita sem interromper a instância em execução.
Para uma instância existente sem um endereço IP externo, para a qual configura um IP externo com estado, o MIG adiciona configuração de acesso à interface de rede correspondente com os seguintes valores predefinidos:
"accessConfigs": [ { "kind": "compute#accessConfig", "name": "External Nat", "natIP": "XX.XX.XX.XX", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ]
gcloud
Para configurar um endereço IP com estado individualmente para uma instância de VM num MIG, adicione ou atualize a configuração de IP com estado na configuração por instância associada.
Se ainda não existir uma configuração por instância para a instância, use o comando
gcloud compute instance-groups managed instance-configs create
com um ou vários dos seguintes flags:--stateful-internal-ip
para definir um endereço IP interno estático de uma interface de rede específica.--stateful-external-ip
para definir um endereço IP externo estático de uma interface de rede específica.
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]
Se já existir uma configuração por instância para a instância, use o comando
gcloud compute instance-groups managed instance-configs update
com uma ou várias flags--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]
Substitua o seguinte:
- INSTANCE_GROUP_NAME: o nome do MIG.
- INSTANCE_NAME: O nome da instância para a qual configurar endereços IP com estado.
- NI_NAME: (opcional.) Nome da interface de rede. Se não for fornecida,
a interface de rede principal denominada
nic0
é assumida por predefinição. Se tiver várias interfaces de rede, pode especificar esta flag para cada IP em cada interface de rede. - ADDRESS: endereço IP estático a atribuir à instância num dos seguintes formatos:
- Morada. URL de uma reserva de endereço IP estático, por exemplo:
"projects/example-project/regions/us-east1/addresses/example-ip-name"
. - Literal. Por exemplo:
"130.211.181.55"
.- Se o endereço IP fornecido ainda não estiver reservado, o MIG cria automaticamente uma reserva de endereço IP correspondente.
- Se o endereço IP fornecido estiver reservado, o MIG atribui a reserva à instância.
- Esta subflag é opcional se o endereço já estiver definido na configuração por instância da instância. Caso contrário, é obrigatório.
- Se for omitido, o endereço configurado permanece inalterado.
- Morada. URL de uma reserva de endereço IP estático, por exemplo:
DELETE_RULE: (opcional.) Prescreve o que deve acontecer a um recurso de endereço estático associado quando uma instância de VM é eliminada permanentemente. As opções disponíveis são as seguintes:
never
: (predefinição.) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.on-permanent-instance-deletion
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.- Se for omitido, o valor predefinido é definido para uma nova configuração de IP com estado; o valor permanece inalterado numa configuração existente.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
--update-instance
: (opcional. Default.) Aplicar as alterações imediatamente à instância. Se usar a flag--no-update-instance
, as alterações permanecem não aplicadas e são aplicadas quando recria ou aplica a atualização à instância mais tarde.MINIMAL_ACTION: (opcional.) Realize, pelo menos, a ação especificada quando aplicar a atualização da configuração por instância à instância. Tem de ser usado em conjunto com 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 uma instância do servidor de ficheiros denominada
file-server
, que é uma única instância num MIG com estado denominadofs-group
. O grupo tem uma configuração por instância correspondente, em que é configurado um disco de dados com estado. O servidor de ficheiros só estava acessível internamente, mas agora tem utilizadores que precisam de aceder externamente através de um endereço IP estático. Reservou o IP externo estático criando uma reserva de endereçofile-server-ip
. Agora, tem de atribuir este IP à instância do servidor de ficheiros.Execute o seguinte comando para configurar o IP externo com estado para a instância do servidor de ficheiros:
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
O comando faz o seguinte:
- Atualiza a configuração por instância para a instância
file-server
:- Adiciona a configuração de IP externo com estado, apontando para a reserva de endereço
file-server-ip
. - Mantém a configuração do disco de dados com estado existente inalterada.
- Adiciona a configuração de IP externo com estado, apontando para a reserva de endereço
- Aplica a atualização de configuração por instância à instância
file-server
imediatamente porque a flag--update-instance
está incluída: atualiza a instância e atribui o endereço IP externo estático da reservafile-server-ip
.
REST
Para configurar IPs com estado individualmente para instâncias de VM num MIG, adicione ou atualize a configuração de IP com estado nas configurações por instância associadas.
Se ainda não existirem configurações por instância para as instâncias indicadas, use o método
instanceGroupManagers.updatePerInstanceConfigs
ou o métodoregionInstanceGroupManagers.updatePerInstanceConfigs
com configuração com estado para um ou vários endereços 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" }, ... ] }
Se já existirem configurações por instância para as instâncias indicadas, use o método
instanceGroupManagers.patchPerInstanceConfigs
ou o métodoregionInstanceGroupManagers.patchPerInstanceConfigs
com configuração com estado para um ou vários endereços 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" }, ... ] }
Substitua o seguinte:
- PROJECT_ID: o ID do projeto para o pedido.
- NAME: o nome do MIG.
- REGION: para GIGs regionais, a
região onde o grupo está
localizado. Para MIGs zonais, substitua
regions/REGION
porzones/ZONE
e especifique a zona onde o MIG está localizado. - INSTANCE_NAME: (obrigatório) O nome da instância para a qual configurar IPs com estado.
- NI_NAME: (obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES. - ADDRESS: (opcional.) Endereço IP estático a atribuir à instância no formato de um URL de uma reserva de endereço IP estático, por exemplo:
"projects/example-project/regions/us-east1/addresses/example-ip-name"
. Tem de definir e só pode definir um campo de cada vez, seja o endereço ou o literal, quando atribui um endereço IP estático. - LITERAL: (opcional.) Endereço IP estático a atribuir à instância no formato literal. Por exemplo:
"130.211.181.55"
. Tem de e só pode definir um campo de cada vez, seja o endereço ou o literal, quando atribui um endereço IP estático.- Se o endereço IP literal fornecido ainda não estiver reservado, o MIG cria automaticamente uma reserva de endereço IP correspondente.
- Se o endereço IP literal fornecido estiver reservado, o MIG atribui a reserva à instância.
DELETE_RULE: (opcional.) Prescreve o que deve acontecer a um recurso de endereço estático associado quando uma instância de VM é eliminada permanentemente. As opções disponíveis são as seguintes:
NEVER
: (predefinição.) Nunca elimine o endereço IP estático. Em alternativa, desassocie o endereço na eliminação da instância e mantenha o endereço reservado.ON_PERMANENT_INSTANCE_DELETION
: elimine a reserva de endereço IP estático quando uma instância é eliminada permanentemente do grupo de instâncias, por exemplo, quando elimina uma instância manualmente ou diminui o tamanho do grupo.- Se for omitido, o valor predefinido é definido para uma nova configuração de IP com estado; o valor permanece inalterado numa configuração existente.
Independentemente do valor da regra de eliminação, o grupo preserva sempre os endereços IP com estado nas operações de autocura, atualização e recriação de instâncias.
FINGERPRINT: (opcional.) A impressão digital da configuração fornecida, se já existir. Usado para bloqueio otimista. A operação falha se a impressão digital for diferente da fornecida, uma vez que indica que a configuração por instância foi alterada desde a última leitura. Para ver a impressão digital mais recente, consulte o resultado do método
listPerInstanceConfigs
para um MIG regional ou zonal. Sefingerprint
for omitido, a operação prossegue sem a comparação de impressões digitais.
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 geridas associadas. As alterações são aplicadas a uma instância quando o MIG recebe instruções para recriar ou atualizar a instância. Pode aplicar a atualização manualmente para aplicar as alterações a uma instância.Exemplo
Tem uma instância do servidor de ficheiros denominada
file-server
, que é uma única instância num MIG com estado denominadofs-group
. O grupo tem uma configuração por instância correspondente, em que é configurado um disco de dados com estado. O servidor de ficheiros só estava acessível internamente, mas agora tem utilizadores que precisam de aceder externamente através de um endereço IP estático. Reservou o IP externo estático criando uma reserva de endereçofile-server-ip
. Agora, tem de atribuir este IP à instância do servidor de ficheiros.Para atualizar a configuração por instância para
file-server
com o novo IP externo com estado, chame o métodopatchPerInstanceConfigs
: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" } } } } ] }
O método aplica patches à configuração por instância para
file-server
instance:- Adiciona a configuração de IP externo com estado, apontando para a reserva de endereço
file-server-ip
. - Mantém a configuração do disco de dados com estado existente inalterada.
A atualização da configuração ainda não foi aplicada à instância de VM
file-server
. O MIG aplica a atualização de configuração quando recria ou aplica a atualização à instância mais tarde.Para aplicar a atualização de configuração por instância à instância de VM
file-server
, chame o métodoregionInstanceGroupManagers.applyUpdatesToInstances
para a instância: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"] }
O método atribui o endereço IP externo estático configurado a partir da reserva
file-server-ip
à instância gerida. O método atualiza a instânciafile-server
para atribuir um endereço IP externo.Uma vez que
autoDelete
está definido comoNEVER
na configuração de IP com estado, o IP permanece reservado se eliminar a instância mais tarde.Desassociar endereços IP estáticos de uma VM existente num GIG
Pode ter de desassociar um endereço IP estático de uma VM existente, tornando a interface de rede efémera para a VM. Isto é útil nos seguintes cenários:
- Reestruturar a sua app para deixar de depender de endereços IP estáticos.
- Configurou o IP como Stateful por engano e quer reverter essa configuração.
Pode desassociar um endereço IP estático de uma VM existente no MIG e tornar o endereço IP efémero para uma VM individual removendo a configuração com estado do IP da configuração por instância associada ou eliminando toda a configuração por instância se não contiver outro estado. A aplicar a alteração tem os seguintes efeitos:
- O endereço IP permanece ativo na instância, mas deixa de ter estado.
- Quando recria ou atualiza a instância, ou quando a instância é reparada automaticamente, o MIG desatribui a reserva de endereço IP estático associada e atribui automaticamente um endereço efémero.
- Depois de ter sido anulado, o endereço IP estático permanece reservado.
A remoção de uma configuração de IP com estado de uma configuração por instância não interrompe as instâncias de VM em execução, a menos que opte explicitamente por fazê-lo.
Para saber mais, consulte os seguintes documentos:
- Como a remoção da configuração de IP com estado das configurações por instância afeta o estado preservado.
- Aplicar atualizações de configurações por instância.
gcloud
Para remover uma configuração de IP com estado da configuração por instância associada, use o comando
gcloud compute instance-groups managed instance-configs update
com as flags--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]
Substitua o seguinte:
- INSTANCE_GROUP_NAME: o nome do MIG.
- INSTANCE_NAME: (obrigatório) O nome da instância para a qual remover a configuração de IP com estado.
- NI_NAME: (obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES. --update-instance
: (opcional. Default.) Aplicar as alterações imediatamente à instância. Se usar a flag--no-update-instance
, as alterações permanecem não aplicadas e são aplicadas quando recria ou aplica a atualização à instância mais tarde.MINIMAL_ACTION: (opcional.) Realize, pelo menos, a ação especificada quando aplicar a atualização da configuração por instância à instância. Esta flag só pode ser usada em conjunto com 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
A sua aplicação foi exposta aos utilizadores através de endereços IP externos estáticos publicados específicos das instâncias de VM num MIG denominado
example-group
. Reestruturou o seu serviço implementando um balanceador de carga à frente do MIG e encaminhando o tráfego para as VMs geridas através dele. Já não precisa de manter os endereços IP externos estáticos e quer tornar os endereços IP externos das VMs efémeros.Para tornar os endereços IP externos com estado das VMs num MIG efémeros, execute o seguinte comando para cada instância, por exemplo, para
node-1
:gcloud compute instance-groups managed instance-configs update example-group \ --instance node-1 \ --remove-stateful-external-ips nic0 \ --update-instance
O comando faz o seguinte:
- Remove a configuração com estado do endereço IP externo na interface de rede
nic0
da configuração por instância paranode-1
. - Aplica a atualização de configuração por instância à instância de VM
node-1
imediatamente porque a flag--update-instance
está incluída. A instância de VM não é interrompida e continua a publicar a partir do mesmo IP, que já não tem estado. O MIG remove a referência à reserva de IP estático dapreservedStateFromConfig
da instância gerida e trata o endereço IP externo como temporário. O MIG atribui automaticamente um IP externo na recriação, atualização ou eventos de autorreparação de instâncias subsequentes. - Depois de ter sido desatribuído, o IP estático original permanece reservado. Pode libertar o IP se já não precisar dele.
REST
Para remover uma configuração de IP com estado da configuração por instância associada, use o método
instanceGroupManagers.patchPerInstanceConfigs
ou o métodoregionInstanceGroupManagers.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" }, ... ] }
Substitua o seguinte:
- PROJECT_ID: o ID do projeto para o pedido.
- NAME: o nome do MIG.
- REGION: para GIGs regionais, a
região onde o grupo está
localizado. Para MIGs zonais, substitua
regions/REGION
porzones/ZONE
e especifique a zona onde o MIG está localizado. - INSTANCE_NAME: (obrigatório) O nome da instância para a qual remover a configuração de IP com estado.
- NI_NAME: (obrigatório) Nome da interface de rede. A interface de rede
principal tem o nome
nic0
. Se tiver várias interfaces de rede, pode especificar vários NI_NAMES. - FINGERPRINT: (opcional.) A impressão digital da configuração fornecida, se já existir. Usado para bloqueio otimista. A operação falha se a impressão digital for diferente da fornecida, uma vez que indica que a configuração por instância foi alterada desde a última leitura. Para ver a impressão digital mais recente, consulte o resultado do método
listPerInstanceConfigs
para um MIG regional ou zonal. Sefingerprint
for omitido, a operação prossegue sem a comparação de impressões digitais.
O método
patchPerInstanceConfigs
atualiza as configurações especificadas por instância, mas não aplica as atualizações de configuração às instâncias geridas associadas. As alterações são aplicadas a uma instância quando o MIG recebe instruções para recriar ou atualizar a instância. Pode aplicar a atualização manualmente para aplicar as alterações a uma instância.Exemplo
A sua aplicação foi exposta aos utilizadores através de endereços IP externos estáticos publicados específicos das instâncias de VM num MIG denominado
example-group
. Reestruturou o seu serviço implementando um balanceador de carga à frente do MIG e encaminhando o tráfego para as VMs geridas através dele. Já não precisa de manter os endereços IP externos estáticos e quer tornar os endereços IP externos das VMs efémeros.Para tornar os endereços IP externos com estado das VMs num MIG efémeros, execute o seguinte método para cada instância, por exemplo, para
node-1
, e indique o valornull
à configuração com estado da interface de rede: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 } } } ] }
O método remove a configuração do endereço IP com estado na interface de rede da configuração por instância para
node-1
.nic0
A atualização da configuração ainda não foi aplicada à instância de VMnode-1
. O MIG aplica a atualização de configuração na próxima recriação ou atualização da instância.Para aplicar a atualização de configuração por instância à instância de VM
node-1
, execute o métodoregionInstanceGroupManagers.applyUpdatesToInstances
para a instância: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"] }
O MIG remove a referência à reserva de IP estático do campo
preservedStateFromConfig
para a instâncianode-1
e trata o endereço IP como efémero. O MIG atribui automaticamente um IP externo em eventos de recriação, atualização ou autocura de instâncias subsequentes.Depois de ter sido desatribuído, o IP estático original permanece reservado. Pode libertar o IP se já não precisar dele.
Remover configuração com estado
Para remover a configuração de uma política com estado para todas as VMs num MIG, consulte os seguintes documentos:
- Para remover apenas endereços IP com estado, consulte o artigo Declarar endereços IP com estado anteriores como sem estado.
- Para remover toda a configuração com estado de uma política com estado, consulte o artigo Remover uma política com estado.
Para remover a configuração de uma configuração por instância para uma VM específica num MIG, consulte os seguintes documentos:
- Para remover apenas endereços IP com estado, consulte o artigo Desassociar um endereço IP estático de uma VM existente num MIG.
- Para remover toda a configuração com estado de uma configuração por instância, consulte o artigo Remover a configuração com estado de uma VM específica.
Limpar endereços IP estáticos não usados
Quando configura um endereço IP com estado para instâncias geridas num grupo, pode escolher se quer libertar as reservas de endereços IP estáticos associadas manual ou automaticamente quando uma instância é eliminada permanentemente:
- Para libertar automaticamente as reservas de endereços IP estáticos na eliminação permanente de instâncias, defina o parâmetro
autoDelete
comoON_PERMANENT_INSTANCE_DELETION
. - Para libertar manualmente as reservas de endereços IP estáticos, defina o parâmetro
autoDelete
comoNEVER
. Para limpar as reservas de endereços IP estáticos não usados, por exemplo, para evitar cobranças desnecessárias, consulte os seguintes documentos:
Se tiver dado instruções ao MIG para nunca eliminar as reservas de IP associadas, os endereços IP estáticos permanecem reservados depois de as instâncias correspondentes ou o MIG deixarem de existir.
Feedback
Queremos saber mais sobre os seus exemplos de utilização, desafios e feedback acerca dos MIGs com estado. Pode partilhar o seu feedback com a nossa equipa através do endereço de email mig-discuss@google.com.
O que se segue?
- Saiba como aplicar, ver e remover a configuração com estado.
- Obtenha informações sobre um MIG específico e as respetivas instâncias geridas, incluindo o estado e as propriedades da VM.
- Saiba mais sobre 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-30 UTC.
-