Um conjunto de destino é um grupo de instâncias de back-end que recebem tráfego de entrada de balanceadores de carga de rede de passagem externos. Todas as instâncias de back-end de um conjunto de destino têm de residir na mesma Google Cloud região. Os balanceadores de carga de rede de encaminhamento externo podem usar um serviço de back-end ou um conjunto de destino para definir o grupo de instâncias de back-end. Se estiver a criar novos equilibradores de carga de encaminhamento externo, recomendamos que use serviços de back-end.
Esta página descreve as opções de configuração para back-ends do conjunto de destinos. Quando uma regra de encaminhamento de um Network Load Balancer de passagem externo direciona o tráfego para um conjunto de destino, o Load Balancer escolhe uma instância do conjunto de destino com base num hash do endereço IP de origem, da porta de origem, do endereço IP de destino e da porta de destino.
Se pretender que o conjunto de destino contenha uma única máquina virtual (VM), considere usar a funcionalidade de encaminhamento de protocolos em vez do equilíbrio de carga.
Propriedades do grupo de destino
Os conjuntos de destino funcionam com regras de encaminhamento que processam o tráfego TCP
e UDP
. Tem de criar um conjunto de destino antes de o poder usar com uma regra de encaminhamento.
Os conjuntos de destino usam verificações de funcionamento de HTTP antigas.
Um grupo de destino é composto pelas seguintes propriedades:
name
- O nome deste conjunto de alvos. O nome tem de ser exclusivo neste projeto, ter entre 1 e 63 carateres e corresponder à expressão regular:
[a-z]([-a-z0-9]*[a-z0-9])?
, o que significa que o primeiro caráter tem de ser uma letra minúscula e todos os carateres seguintes têm de ser um traço, uma letra minúscula ou um dígito, exceto o último caráter, que não pode ser um traço. description
- Opcional. Uma descrição definida pelo utilizador deste conjunto de alvos.
region
O URL totalmente qualificado da região do grupo de destino. A região deve ser a mesma onde residem as suas instâncias de back-end. Por exemplo:
"region" : "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION"
healthChecks[ ]
Opcional. Uma lista opcional de verificações de estado para este conjunto de destinos. Só é possível anexar uma verificação de estado a um determinado conjunto de destinos. Consulte a secção Verificação de saúde para mais informações.
instances[ ]
Uma lista de URLs de instâncias que devem processar o tráfego para este grupo de destino. Todas as instâncias têm de residir na mesma região que o conjunto de destino, mas as instâncias podem pertencer a zonas diferentes numa única região. Por exemplo:
"instances" : [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE", "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2" ]
sessionAffinity
Opcional. Controla o método usado para selecionar uma instância de máquina virtual de back-end. Só pode definir este valor durante a criação do conjunto de alvos. Depois de definir este valor, não o pode modificar. O método de hash seleciona um back-end com base num subconjunto dos 5 valores seguintes:
- IP de origem / destino
- Porta de origem / destino
- Protocolo de camada 4 (TCP, UDP)
Os hashes possíveis são:
NONE
(ou seja, nenhum hash especificado) (predefinição)- Hash de 5 tuplos, que usa os IPs de origem e destino, as portas de origem e destino e o protocolo. Cada nova ligação pode acabar em qualquer instância, mas todo o tráfego de uma determinada ligação permanece na mesma instância, se a instância se mantiver em bom estado.
CLIENT_IP_PROTO
- Hash de 3 tuplos, que usa os IPs de origem e destino, e o protocolo. Todas as ligações de um cliente acabam na mesma instância, desde que usem o mesmo protocolo e a instância se mantenha em bom estado.
CLIENT_IP
- Hash de 2 tuplos, que usa os IPs de origem e destino. Todas as ligações de um cliente vão parar à mesma instância independentemente do protocolo, desde que a instância se mantenha em bom estado.
A aplicação de hash de 5 tuplos oferece uma boa distribuição do tráfego por muitas máquinas virtuais. No entanto, uma segunda sessão do mesmo cliente pode chegar a uma instância diferente porque a porta de origem pode mudar. Se quiser que todas as sessões do mesmo cliente alcancem o mesmo back-end, desde que o back-end se mantenha em bom estado, pode especificar as opções
CLIENT_IP_PROTO
ouCLIENT_IP
.Em geral, se selecionar um método de 3 ou 2 tuplos, este oferece uma melhor afinidade de sessão do que o método de 5 tuplos predefinido, mas o tráfego geral pode não ser distribuído de forma tão uniforme.
Pacotes UDP fragmentados: se estiver a fazer o balanceamento de carga do tráfego UDP que é provável que seja fragmentado, defina a afinidade de sessão como
CLIENT_IP_PROTO
ouCLIENT_IP
. Não useNONE
(hash de 5 tuplos). Isto deve-se ao facto de os fragmentos UDP que não sejam o primeiro não incluírem o número da porta e o equilibrador de carga poder rejeitar os fragmentos sem a porta. Consulte o artigo Balanceamento de carga e pacotes UDP fragmentados para mais informações.backupPool
Opcional. Um URL totalmente qualificado para outro recurso de conjunto de alvos. Um grupo de reserva é um grupo de destino que outro grupo de destino referencia. Também tem de definir
failoverRatio
para usar esta funcionalidade. Se a proporção de máquinas virtuais em bom estado no seu conjunto de destino for inferior afailoverRatio
, o balanceador de carga de rede de passagem externo envia tráfego para o seu conjunto de cópias de segurança. Só pode fornecer um conjunto de recursos alternativo por conjunto de recursos de destino. O conjunto de cópias de segurança tem de estar na mesma região que o conjunto de destino. Se a proporção de instâncias íntegras no seu conjunto de destino ficar abaixo da proporção de comutação por falha configurada, o Network Load Balancer de passagem externa usa as seguintes regras para encaminhar o seu tráfego:- Se a proporção de instâncias em bom estado em relação ao total de instâncias no conjunto de destino for inferior à proporção de comutação por falha, o tráfego é enviado para instâncias em bom estado no conjunto de cópia de segurança.
- Se a proporção de instâncias em bom estado em relação ao total de instâncias no conjunto de destino for inferior à proporção de comutação por falha, mas não existirem instâncias em bom estado restantes no conjunto de cópia de segurança, o tráfego é enviado para as instâncias em bom estado restantes no conjunto de destino.
- Se o conjunto de destino não estiver vazio e se todas as instâncias no conjunto de destino e no conjunto de cópia de segurança falharem nas respetivas verificações de estado, o tráfego é enviado para todas as instâncias no conjunto de destino, como último recurso.
- Se o conjunto de destino estiver vazio e se todas as instâncias no conjunto de cópia de segurança falharem nas respetivas verificações de estado, o tráfego é enviado para todas as instâncias no conjunto de cópia de segurança, como último recurso.
Só é suportado um nível de alternativa. Por exemplo, se o conjunto de destino A tiver o conjunto de destino de cópia de segurança B e o conjunto de destino de cópia de segurança B tiver o conjunto de destino de cópia de segurança C, o tráfego destinado ao conjunto de destino A só pode ser direcionado para o conjunto de destino de cópia de segurança B e não para o conjunto de destino de cópia de segurança C.
failoverRatio
Opcional. Um valor flutuante entre
0.0
e1.0
, que determina quando este conjunto de destino é declarado como não saudável. Por exemplo, se este valor estiver definido como0.1
, então este conjunto de destino é declarado como não saudável se o número de instâncias saudáveis for inferior a0.1
(10%). Se a taxa de comutação por falha for0.0
, pelo menos, um back-end tem de estar em bom estado para o conjunto ser considerado em bom estado. Se a taxa de alternativa for definida como1.0
, todas as instâncias têm de estar em bom estado para o conjunto ser considerado em bom estado. Tem de definir este campo se definir o campobackupPool
.
Condições de alternativa
Condições | As novas associações são adicionadas a |
---|---|
Rácio de comutação por falha !=0, VMs em bom estado no conjunto de destino >= FR | grupo de destino |
Rácio de comutação por falha =0, VMs em bom estado no conjunto de destino > 0 | grupo de destino |
Failover ratio !=0, healthy VMs in target pool < FR, and at least one VM in the backup pool is healthy | conjunto de substituição |
Rácio de comutação por falha =0, VMs em bom estado no conjunto de destino = 0 e, pelo menos, uma VM no conjunto de cópias de segurança está em bom estado | conjunto de substituição |
Pelo menos uma VM está no conjunto de destino, e todas as VMs no conjunto de destino estão em mau estado, e todas as VMs no conjunto de cópias de segurança estão em mau estado | grupo de destino (último recurso) |
Não existem VMs no conjunto de destino e todas as VMs no conjunto de cópias de segurança estão em mau estado | pool de reserva (último recurso) |
Não existem VMs no conjunto de destino nem no conjunto de cópia de segurança | O tráfego é eliminado |
Crie um grupo de destino
Consola
Não é possível criar grupos de destino na consola Google Cloud . Pode criar um conjunto de destinos através da CLI Google Cloud ou da API.
Para saber como criar um balanceador de carga de rede de encaminhamento externo baseado num conjunto de destino através da CLI do Google Cloud, consulte o artigo Configure um balanceador de carga de rede de encaminhamento externo com um conjunto de destino.
gcloud
Para usar gcloud compute
para criar um grupo de destino, use o comando target-pools
create
:
gcloud compute target-pools create TARGET_POOL \ [--backup-pool=BACKUP_POOL] \ [--description=DESCRIPTION] \ [--failover-ratio=FAILOVER_RATIO] \ [--http-health-check=HEALTH_CHECK] \ [--region=REGION] [--session-affinity=SESSION_AFFINITY; default="NONE"]
Substitua o seguinte:
TARGET_POOL
: um nome para o grupo de destinoBACKUP_POOL
: um nome para o conjunto de destino da cópia de segurançaDESCRIPTION
: uma descrição do grupo de destinoFAILOVER_RATIO
: um valor entre 0,0 e 1,0, que determina quando o conjunto de destino é declarado como não saudávelHEALTH_CHECK
: uma verificação do estado desta pool de destinoREGION
: uma região do grupo de destinoSESSION_AFFINITY
: o método usado para selecionar uma instância de máquina virtual de back-end
API
Para criar um grupo de destino na API, faça um pedido HTTP POST
para o seguinte URI:
https://www.googleapis.com/v1/compute/projects/PROJECT_ID/regions/REGION/targetPools { "name": name, "instances": [ "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE", "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE-2", ] }
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoZONE
: a zona em que as instâncias do grupo de destino se encontramINSTANCE
,INSTANCE-2
: as instâncias a adicionar ao conjunto de destino
Adicione ou remova uma instância de um conjunto de destino
Consola
Não é possível editar os conjuntos de alvos na consola Google Cloud . Pode editar um conjunto de destinos através da CLI Google Cloud ou da API.
gcloud
Para usar gcloud compute
para adicionar instâncias a um conjunto de destinos, use o comando target-pools add-instances
:
gcloud compute target-pools add-instances TARGET_POOL \ --instances=INSTANCE,[INSTANCE-2,...]
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destinoINSTANCE
,INSTANCE-2
: o nome da instância (ou instâncias) a adicionar ao conjunto de destino
Para remover instâncias, use o comando
target-pools remove-instances
:
gcloud compute target-pools remove-instances TARGET_POOL \ --instances=INSTANCE,[INSTANCE-2,...]
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destinoINSTANCE
,INSTANCE-2
: o nome da instância (ou instâncias) a remover do conjunto de destino
API
Na API, envie um pedido POST para os seguintes URIs:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeInstance https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addInstance
O corpo do seu pedido deve incluir os URIs totalmente qualificados das instâncias que quer adicionar ou remover:
{ "instances": [ {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE"}, {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2"} ] }
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoTARGET_POOL
: o nome do conjunto de alvos a ser atualizadoREGION
: a região em que o grupo de destino se encontraZONE
: a zona em que as instâncias atualizadas se encontramINSTANCE
,INSTANCE-2
: as instâncias a adicionar ao conjunto de destino
Para mais informações, consulte a documentação de referência da API para os métodos
targetPools.addInstance
e
targetPools.removeInstance
.
Apresente grupos de destino
Consola
Para ver uma lista de conjuntos de destinos, use o menu avançado de equilíbrio de carga.
Na página de equilíbrio de carga Avançado, aceda ao separador Conjuntos de destino.
Aceda a Conjuntos de alvos
A página apresenta uma lista de grupos de alvos.
gcloud
Para usar gcloud compute
para apresentar uma lista de conjuntos de alvos existentes, use o comando target-pools list
:
gcloud compute target-pools list
Para obter um resultado mais detalhado, use o comando describe
e especifique um nome do conjunto.
API
Na API, envie um pedido GET para o seguinte URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoREGION
: a região em que o grupo de destino se encontra
Descreva um grupo de destino
Consola
Para obter informações sobre um conjunto de destinos, use o menu avançado de equilíbrio de carga.
- Na página de equilíbrio de carga Avançado, aceda ao separador Conjuntos de destino.
Aceda a Conjuntos de alvos - Para ver informações detalhadas, clique no nome do conjunto de alvos.
gcloud
Para usar gcloud compute
para obter informações sobre um único conjunto de alvos, use o comando target-pools describe
:
gcloud compute target-pools describe TARGET_POOL
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destino
API
Na API, envie um pedido GET vazio para o seguinte URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoTARGET_POOL
: o nome do conjunto de alvos a ser atualizadoREGION
: a região em que o grupo de destino se encontra
Obtenha o estado de saúde das instâncias
Consola
Para obter o estado de funcionamento das instâncias num conjunto de destino, use o menu avançado do balanceamento de carga.
- Na página de equilíbrio de carga Avançado, aceda ao separador Conjuntos de destino.
Aceda a Conjuntos de alvos - Clique no nome do conjunto de alvos.
- A página Detalhes do conjunto de destino apresenta todas as instâncias e o respetivo estado de funcionamento.
gcloud
Para usar gcloud compute
para verificar o estado de saúde atual de uma instância
no seu conjunto de destino ou de todas as instâncias no conjunto de destino, pode usar o comando
gcloud compute target-pools get-health
:
gcloud compute target-pools get-health TARGET_POOL
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destino
O comando devolve o estado de funcionamento determinado pela verificação de funcionamento configurada, que pode ser bom ou mau.
API
Na API, faça um pedido HTTP POST para o seguinte URI com a instância especificada no corpo do pedido:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/getHealth { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE" }
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoTARGET_POOL
: o nome do conjunto de alvos a ser atualizadoREGION
: a região em que o grupo de destino se encontraZONE
: a zona em que as instâncias se encontramINSTANCE
: a instância cujo estado da verificação de funcionamento está a verificar
Elimine um grupo de destino
Para eliminar um grupo de destino, primeiro tem de se certificar de que o grupo de destino não está a ser referenciado por nenhuma regra de encaminhamento. Se uma regra de encaminhamento estiver a fazer referência a um conjunto de destino, tem de eliminar a regra de encaminhamento para remover a referência.
Consola
Para usar a Google Cloud consola para eliminar um conjunto de destinos, use o menu avançado de equilíbrio de carga.
- Na página de equilíbrio de carga Avançado, aceda ao separador Conjuntos de destino.
Aceda a Conjuntos de alvos - Clique no nome do conjunto de alvos.
- Clique em Eliminar.
- Na janela Eliminar um grupo de alvos, clique em Eliminar.
gcloud
Para usar gcloud compute
para eliminar um grupo de destino, use o
comando target-pools delete
:
gcloud compute target-pools delete TARGET_POOL
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de alvos a eliminar
API
Na API, envie um pedido DELETE vazio para o seguinte URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoTARGET_POOL
: o nome do conjunto de alvos a ser atualizadoREGION
: a região em que o grupo de destino se encontra
Adicione ou remova uma verificação de estado de um conjunto de destino
Os objetos de verificação de estado são recursos autónomos, globais que podem ser associados ou desassociados de qualquer conjunto de destino.
Se um conjunto de destino não tiver uma verificação de estado associada, o balanceador de carga de encaminhamento externo
trata todas as instâncias como estando em bom estado e envia tráfego para todas as instâncias no
conjunto de destino. No entanto, se consultar o estado de funcionamento de um conjunto de destino sem uma verificação de estado, o estado é devolvido como unhealthy
para indicar que o conjunto de destino não tem uma verificação de estado. Recomendamos que os seus grupos de destino tenham verificações de estado associadas para ajudar a gerir as suas instâncias.
Os balanceadores de carga de rede de passagem externos usam verificações de funcionamento HTTP antigas para determinar o estado de funcionamento das instâncias no conjunto de destino. Um Network Load Balancer de passagem externo só pode usar uma verificação de funcionamento HTTP antiga e não uma verificação de funcionamento HTTPS antiga.
Consola
Quando usa a Google Cloud consola, pode criar uma verificação de funcionamento de HTTP antiga enquanto cria um balanceador de carga de rede de encaminhamento externo com um backend de conjunto de destino.
Não pode usar a página Verificações de funcionamento da Google Cloud consola para criar uma verificação de funcionamento autónoma antiga.
gcloud
Para usar gcloud compute
para adicionar uma verificação de funcionamento a um conjunto de destino, use o comando target-pools add-health-checks
:
gcloud compute target-pools add-health-checks TARGET_POOL \ --http-health-check=HEALTH_CHECK
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destinoHEALTH_CHECK
: a verificação de estado HTTP antiga a usar com este grupo de destino
Para remover uma verificação de funcionamento, use o comando target-pools remove-health-checks
:
gcloud compute target-pools remove-health-checks TARGET_POOL \ --http-health-check=HEALTH_CHECK
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destinoHEALTH_CHECK
: a verificação de estado HTTP antiga vai ser removida deste conjunto de destinos
API
Para associar ou desassociar uma verificação de estado através da API, faça um pedido HTTP POST
aos URIs adequados:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeHealthCheck https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addHealthCheck
O corpo do pedido deve conter a verificação de estado a associar ou desassociar:
{ "healthCheck": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/httpHealthChecks/HEALTH_CHECK" }
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoTARGET_POOL
: o nome do conjunto de alvos a ser atualizadoREGION
: a região em que o grupo de destino se encontraHEALTH_CHECK
: a verificação de estado HTTP antiga a associar ou desassociar do conjunto de destino
Para mais informações, consulte a documentação de referência da API para
targetPools.addHealthCheck
e
targetPools.removeHealthCheck
.
Adicione ou remova um conjunto de destino de cópia de segurança
Quando cria um grupo de destino pela primeira vez, pode optar por aplicar um grupo de destino de reserva que recebe tráfego se o grupo de destino ficar em mau estado.
Se nunca configurou um conjunto de destino de cópia de segurança, também deve configurar as verificações de funcionamento para que a funcionalidade funcione corretamente.
Consola
Não é possível editar os conjuntos de alvos na consola Google Cloud . Pode editar um proxy de destino através da CLI Google Cloud ou da API.
gcloud
Para usar gcloud compute
para atualizar o recurso do conjunto de cópias de segurança, use o
comando target-pools set-backup
:
gcloud compute target-pools set-backup TARGET_POOL \ --backup-pool=BACKUP_POOL \ --failover-ratio=FAILOVER_RATIO
Substitua o seguinte:
TARGET_POOL
: o nome do grupo de destinoBACKUP_POOL
: um nome para o conjunto de destino da cópia de segurançaFAILOVER_RATIO
: um valor entre 0,0 e 1,0, que determina quando o conjunto de destino é declarado como não saudável
API
Para fazer um pedido de atualização ou remoção de um conjunto de cópias de segurança através da API, envie um pedido POST para o seguinte URI:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/setBackup?failoverRatio=FAILOVER_RATIO { "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/BACKUP_POOL" }
Substitua o seguinte:
PROJECT_ID
: o Google Cloud ID do projetoTARGET_POOL
: o nome do conjunto de alvos a ser atualizadoREGION
: a região em que o grupo de destino se encontraBACKUP_POOL
: o nome do conjunto de cópias de segurança a associar ao conjunto de destinoFAILOVER_RATIO
: a taxa de comutação por falha
Se definir um alvo vazio ou não definir uma taxa de alternativa, o comportamento do conjunto de reserva é desativado para este conjunto de alvos.
O que se segue?
- Para mais informações sobre os conjuntos de destinos, consulte a documentação de referência da API para
targetPools.setBackup
. - Para mais informações sobre as regras de encaminhamento, consulte o artigo Vista geral das regras de encaminhamento.