A afinidade zonal, configurada no serviço de back-end do balanceador de carga, permite limitar o tráfego entre zonas, reduzir a latência e melhorar o desempenho, mantendo os benefícios de uma arquitetura multizonal.
Os balanceadores de carga de rede de passagem interna são compatíveis com diferentes opções de afinidade zonal que oferecem graus variados de preferência para rotear novas conexões para back-ends qualificados que estão na mesma zona que um cliente compatível. As conexões estabelecidas na tabela de rastreamento de conexões do balanceador de carga não são afetadas pela afinidade zonal.
Antes de começar
Antes de ativar a afinidade zonal, é preciso entender quais recursos do balanceador de carga de rede de passagem interna são compatíveis com ela.
Com suporte
- Próximos saltos para rotas estáticas
- Próximos saltos para rotas com base em políticas
- Failover
- O hash simétrico é compatível apenas quando os dois balanceadores de carga de rede de passagem interna têm afinidade zonal ativada.
Sem suporte
A afinidade zonal é incompatível com balanceadores de carga de rede de passagem interna configurados com o seguinte:
- Subconfiguração de back-ends
- Destinos de coleta para o Espelhamento de pacotes
- Implantações de integração de segurança de rede (NSI) em banda ou fora da banda. Usar a afinidade zonal com a Integração de Segurança de Rede resulta em perda de pacotes.
- Serviço publicado do Private Service Connect. A afinidade zonal só é possível para clientes compatíveis que enviam pacotes ao balanceador de carga, não a um endpoint do Private Service Connect cujo produtor de serviços publicado usa um balanceador de carga de rede de passagem interna.
Clientes compatíveis
A afinidade zonal só é possível para clientes de VM localizados na mesma região que o balanceador de carga. A afinidade zonal não é compatível com os seguintes clientes, que sempre operam como se a afinidade zonal estivesse desativada:
Túneis da Cloud VPN do cliente e anexos de VLAN do Cloud Interconnect do cliente: os túneis da Cloud VPN e os anexos de VLAN do Cloud Interconnect são recursos regionais, não zonais. Pacotes encaminhados por um túnel do Cloud VPN ou anexo da VLAN nunca são compatíveis com a afinidade zonal, estejam ou não na mesma região do balanceador de carga.
VMs de cliente em regiões que não correspondem à região do balanceador de carga: um balanceador de carga de rede de passagem interna localizado em uma região pode ser acessado por clientes em todas as outras regiões se o acesso global estiver ativado. Quando as VMs clientes estão em uma região diferente da do balanceador de carga, elas nunca compartilham uma zona comum com nenhum dos back-ends do balanceador de carga.
Opções de afinidade zonal
Os balanceadores de carga de rede de passagem interna são compatíveis com as seguintes opções de afinidade zonal:
ZONAL_AFFINITY_DISABLED(padrão): a afinidade zonal está desativada. O balanceador de carga seleciona um back-end qualificado para uma nova conexão sem modificar o conjunto de back-ends qualificados originais.ZONAL_AFFINITY_STAY_WITHIN_ZONE: a afinidade zonal está ativada. Quando uma correspondência zonal ocorre, o balanceador de carga mantém o tráfego na zona do cliente mesmo que isso signifique usar back-ends não íntegros. Para detalhes sobre essa opção, consulte Como oZONAL_AFFINITY_STAY_WITHIN_ZONEfunciona.ZONAL_AFFINITY_SPILL_CROSS_ZONE: a afinidade zonal está ativada. Quando uma correspondência zonal ocorre, o balanceador de carga permite que novas conexões sejam distribuídas na zona do cliente ou transbordem para outras zonas. O transbordamento é controlado pela proporção de transbordamento. Para mais informações sobre essa opção, consulte ComoZONAL_AFFINITY_SPILL_CROSS_ZONEe a proporção de transbordamento funcionam.
Para saber como configurar a afinidade zonal no serviço de back-end de um balanceador de carga de rede de passagem interna, consulte Usar a afinidade zonal.
Diferentes tipos de back-ends
A afinidade zonal cria um conjunto de back-ends qualificados modificados com base nos back-ends qualificados originais e configurados do balanceador de carga. Para explicar como a afinidade zonal faz essa modificação, definimos com precisão cinco conjuntos de back-end diferentes. Este documento faz referência aos seguintes termos nas seções subsequentes ao explicar como a afinidade zonal funciona.
Conjuntos de entrada
Back-ends configurados: o conjunto de todos os back-ends que fazem parte do serviço de back-end do balanceador de carga. Isso inclui todos os back-ends principais e, se o recurso de failover estiver ativado, todos os back-ends principais e de failover.
Back-ends originais qualificados: um subconjunto de back-ends configurados que estão qualificados para receber novas conexões. O conjunto de back-ends originais qualificados é produzido pela etapa Identificar back-ends qualificados do processo de seleção de back-ends e rastreamento de conexão.
Conjuntos intermediários
Back-ends de teste de correspondência por zona: um subconjunto de back-ends configurados usados para testar uma correspondência por zona. Os back-ends configurados e os back-ends originais qualificados determinam quais VMs são back-ends de teste de correspondência zonal.
Back-ends zonais correspondentes: um subconjunto dos back-ends de teste de correspondência zonal que estão na mesma zona que um cliente compatível.
Conjunto de saída
- Back-ends qualificados modificados: dependendo do tipo de afinidade zonal configurada e da proporção de transbordamento, os back-ends qualificados modificados podem ser iguais aos originais, um subconjunto deles ou diferentes. Esse conjunto é usado para fornecer a afinidade zonal configurada.
Correspondência zonal
Uma correspondência zonal descreve as condições em que a afinidade zonal é acionada. O balanceador de carga pode modificar o conjunto de back-ends originais qualificados para fornecer a afinidade zonal configurada. A modificação dos back-ends originais qualificados ocorre depois que o balanceador de carga seleciona um back-end qualificado para uma nova conexão.
Para que a lógica de afinidade zonal seja acionada, a seguinte sequência de eventos precisa ocorrer:
A afinidade zonal precisa estar ativada.
Se a afinidade zonal estiver ativada, continue para a próxima etapa.
Determine se o cliente é compatível.
Se o cliente for compatível, siga para a próxima etapa.
Determine se uma correspondência zonal pode ocorrer.
Uma correspondência zonal significa que a VM cliente está em uma zona que contém pelo menos um back-end configurado do tipo relevante. Os diferentes back-ends que podem ser configurados estão descritos na seção Condições de correspondência zonal.
Uma correspondência zonal nunca será possível se uma das seguintes condições for verdadeira:
- A afinidade zonal está desativada
- O cliente não é compatível
Aplique a lógica de afinidade por zona.
Condições de correspondência zonais
Para que uma correspondência zonal ocorra, pelo menos uma instância ou endpoint nos backends de teste de correspondência zonal precisa estar na mesma zona que um cliente compatível. Os back-ends configurados e os back-ends originais qualificados são entradas usadas para determinar os back-ends de teste de correspondência zonal.
| Back-ends qualificados originais | Back-ends de teste de correspondência zonal |
|---|---|
| Todos os back-ends principais íntegros |
Todos os back-ends principais configurados Os back-ends principais configurados podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
| Todos os back-ends de failover íntegros |
Todos os back-ends de failover configurados Os back-ends de failover configurados podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
| Todos os back-ends principais não íntegros |
Todos os back-ends principais configurados Os back-ends principais configurados estão todos sem integridade por definição quando os back-ends principais originais qualificados também estão. |
Exemplo de correspondência zonal
Considere a seguinte configuração para um balanceador de carga de rede de passagem interna para entender se ocorre uma correspondência zonal.
- Back-ends principais: zonas A e B
- Back-ends de failover: zonas C e D
- Local da VM cliente: zona A
- Afinidade zonal ativada
- A política de failover padrão está presente
Cenário 1:
- Back-ends originais qualificados: todos os back-ends principais íntegros (zonas A e B)
- Back-ends de teste de correspondência zonal: todos os back-ends principais configurados (zonas A e B)
- Há uma correspondência zonal?: Sim. Nesse caso, a VM cliente está na mesma zona que os back-ends de teste de correspondência zonal, então há uma correspondência zonal.
Cenário 2:
- Back-ends originais qualificados: todos os back-ends de failover íntegros (zonas C e D)
- Back-ends de teste de correspondência zonal: todos os back-ends de failover configurados (zonas C e D)
- Há uma correspondência zonal?: Não. Para que uma correspondência zonal ocorra, a VM cliente precisa estar em uma zona que contenha pelo menos um back-end do conjunto de back-ends de teste de correspondência zonal. Nesse caso, o cliente está na zona A, e os back-ends de teste de correspondência zonal estão nas zonas C e D.
Depois que uma correspondência zonal ocorre, você aplica a lógica de afinidade zonal conforme descrito nas seções a seguir.
Lógica de afinidade zonal
Se houver uma correspondência zonal, aplique a lógica de afinidade zonal dependendo da opção configurada. As opções que ativam a afinidade zonal são as seguintes:
ZONAL_AFFINITY_STAY_WITHIN_ZONEZONAL_AFFINITY_SPILL_CROSS_ZONEcom uma proporção de spillover de0ZONAL_AFFINITY_SPILL_CROSS_ZONEcom uma proporção de spillover diferente de zero
Depois que uma correspondência zonal ocorre e dependendo do tipo de opção de afinidade zonal configurada, os back-ends qualificados modificados podem ser iguais aos back-ends qualificados originais, um subconjunto deles ou diferentes.
Como o ZONAL_AFFINITY_STAY_WITHIN_ZONE funciona
Se a afinidade zonal estiver definida como ZONAL_AFFINITY_STAY_WITHIN_ZONE e ocorrer uma correspondência zonal, o balanceador de carga vai distribuir novas conexões para os back-ends qualificados modificados. Os back-ends qualificados modificados podem ser iguais aos originais, um subconjunto deles ou diferentes.
Para criar back-ends qualificados modificados, o balanceador de carga usa o seguinte processo:
Comece com os back-ends de teste de correspondência zonal identificados pela condição de correspondência zonal.
Remova todos os back-ends que não estão na mesma zona que o cliente. Isso nos dá um conjunto de backends correspondentes zonais. Esse conjunto nunca está vazio porque ocorreu uma correspondência zonal.
Calcule a interseção dos back-ends zonais correspondentes com os back-ends qualificados originais. Essa interseção pode estar vazia ou não.
Se a interseção não estiver vazia, os back-ends qualificados modificados serão o conjunto de interseção. Os backends qualificados modificados podem ser os mesmos que os backends qualificados originais ou um subconjunto deles.
Se a interseção estiver vazia, os backends qualificados modificados serão os próprios backends correspondentes zonais, que são sempre diferentes dos backends qualificados originais. Nessa situação, todos os back-ends qualificados modificados não estão íntegros.
A tabela a seguir resume o processo para criar o conjunto de backends qualificados
modificados quando a opção de afinidade zonal é
ZONAL_AFFINITY_STAY_WITHIN_ZONE. Essa opção de afinidade zonal favorece back-ends na zona do cliente, mesmo que isso signifique usar back-ends não íntegros.
| Back-ends originais qualificados (A) | Back-ends de teste de correspondência por zona (B) | Back-ends zonais correspondentes (C) | Interseção (A∩C) | Back-ends qualificados modificados |
|---|---|---|---|---|
| Todos os back-ends principais íntegros |
Todos os back-ends principais configurados Os back-ends de teste de correspondência por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends principais na zona do cliente Os back-ends correspondentes por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends principais íntegros na zona do cliente |
Interseção não vazia: os back-ends qualificados modificados são todos os back-ends principais íntegros na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. A interseção está vazia: os back-ends qualificados modificados são todos os back-ends principais não íntegros na zona do cliente. Os back-ends qualificados modificados são os mesmos que os back-ends zonais correspondentes, que são todos os back-ends principais na zona do cliente. No entanto, todos esses back-ends estão em estado não íntegro porque a interseção com os back-ends qualificados originais está vazia. |
| Todos os back-ends de failover íntegros |
Todos os back-ends de failover configurados Os back-ends de teste de correspondência por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends de failover na zona do cliente Os back-ends correspondentes por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends de failover íntegros na zona do cliente |
Interseção não vazia: os back-ends qualificados modificados são todos os back-ends de failover íntegros na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. A interseção está vazia: os back-ends qualificados modificados são todos os back-ends de failover não íntegros na zona do cliente. Os back-ends qualificados modificados são os mesmos que os back-ends zonais correspondentes, que são todos os back-ends de failover na zona do cliente. No entanto, todos esses back-ends estão em estado não íntegro porque a interseção com os back-ends qualificados originais está vazia. |
| Todos os back-ends principais não íntegros |
Todos os back-ends principais configurados Os back-ends de teste de correspondência zonal são todos considerados não íntegros por definição quando os back-ends principais originais qualificados também são considerados não íntegros. |
Todos os back-ends principais não íntegros na zona do cliente |
Todos os back-ends principais não íntegros na zona do cliente |
A interseção nunca está vazia: os back-ends qualificados modificados são todos os back-ends principais não íntegros na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. |
Como funcionam ZONAL_AFFINITY_SPILL_CROSS_ZONE e a proporção de transbordamento
Se a afinidade zonal estiver definida como ZONAL_AFFINITY_SPILL_CROSS_ZONE e ocorrer uma correspondência zonal, o balanceador de carga vai distribuir novas conexões para os back-ends qualificados modificados. Os back-ends qualificados modificados podem ser os mesmos que os back-ends qualificados originais ou um subconjunto deles.
Quando os back-ends qualificados modificados são os mesmos que os back-ends qualificados originais, novas conexões podem ser enviadas para back-ends qualificados na zona do cliente ou para back-ends qualificados em qualquer zona ("transbordamento"). Essa distribuição depende de uma proporção de transbordamento configurável.
Uma proporção de transbordamento configurável indica o valor limite para manter o tráfego na zona do cliente. O valor da proporção de transbordamento pode variar de 0.0 a 1.0, inclusive. Se você não especificar uma proporção de transbordamento ao configurar
ZONAL_AFFINITY_SPILL_CROSS_ZONE, Google Cloud usará um valor padrão de
0.0.
Proporção de spillover zero
Se a proporção de transbordamento configurada for 0.0, o balanceador de carga usará o
processo a seguir para criar os back-ends qualificados modificados:
Comece com os back-ends de teste de correspondência zonal identificados pela condição de correspondência zonal.
Remova todos os back-ends que não estão na mesma zona que o cliente. Isso nos dá um conjunto de backends correspondentes zonais. Esse conjunto nunca está vazio porque ocorreu uma correspondência zonal.
Calcule a interseção dos back-ends zonais correspondentes com os back-ends qualificados originais. Essa interseção pode estar vazia ou não.
Se essa interseção não estiver vazia, os back-ends qualificados modificados serão o conjunto de interseção. Os back-ends qualificados modificados podem ser os mesmos que os back-ends qualificados originais ou um subconjunto deles.
Se a interseção estiver vazia, os back-ends qualificados modificados serão os mesmos que os back-ends qualificados originais.
A tabela a seguir resume o processo para criar o conjunto de backends qualificados modificados quando a opção de afinidade zonal é ZONAL_AFFINITY_SPILL_CROSS_ZONE e a proporção de transbordamento configurada é 0.0.
| Back-ends originais qualificados (A) | Back-ends de teste de correspondência por zona (B) | Back-ends zonais correspondentes (C) | Interseção (A∩C) | Back-ends qualificados modificados |
|---|---|---|---|---|
| Todos os back-ends principais íntegros |
Todos os back-ends principais configurados Os back-ends de teste de correspondência por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends principais na zona do cliente Os back-ends correspondentes por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends principais íntegros na zona do cliente |
Interseção não vazia: os back-ends qualificados modificados são todos os back-ends principais íntegros na zona do cliente. As novas conexões são distribuídas na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. A interseção está vazia: os back-ends qualificados modificados são iguais aos back-ends qualificados originais. As novas conexões podem ser distribuídas dentro da zona do cliente ou para outras zonas. |
| Todos os back-ends de failover íntegros |
Todos os back-ends de failover configurados Os back-ends de teste de correspondência por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends de failover na zona do cliente Os back-ends correspondentes por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends de failover íntegros na zona do cliente |
Interseção não vazia: os back-ends qualificados modificados são todos os back-ends de failover íntegros na zona do cliente. As novas conexões são distribuídas na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. A interseção está vazia: os back-ends qualificados modificados são iguais aos back-ends qualificados originais. As novas conexões podem ser distribuídas dentro da zona do cliente ou para outras zonas. |
| Todos os back-ends principais não íntegros |
Todos os back-ends principais configurados Os back-ends de teste de correspondência zonal são todos considerados não íntegros por definição quando os back-ends principais originais qualificados também são considerados não íntegros. |
Todos os back-ends principais não íntegros na zona do cliente |
Todos os back-ends principais não íntegros na zona do cliente |
A interseção nunca está vazia: os back-ends qualificados modificados são todos os back-ends principais não íntegros na zona do cliente. As novas conexões são distribuídas na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. |
Proporção de spillover diferente de zero
Se a proporção de transbordamento configurada for maior que 0.0, mas menor ou igual a 1.0, o balanceador de carga usará o seguinte processo para criar os back-ends qualificados modificados:
Comece com os back-ends de teste de correspondência zonal identificados pela condição de correspondência zonal.
Remova todos os back-ends que não estão na mesma zona que o cliente. Isso nos dá um conjunto de backends correspondentes zonais. Esse conjunto nunca está vazio porque ocorreu uma correspondência zonal.
Calcule a interseção dos back-ends zonais correspondentes com os back-ends qualificados originais. Esse conjunto pode estar vazio ou não.
Calcule a seguinte proporção:
$$ \frac{\text{count}(\text{zonal matched backends} \; \cap \; \text{original eligible backends})}{\text{count}(\text{zonal matched backends})} $$A proporção calculada é sempre zero quando o conjunto de interseção está vazio.
Use a proporção calculada para determinar os backends qualificados modificados:
Se a proporção calculada for maior ou igual à proporção de transbordamento, os back-ends qualificados modificados serão o conjunto de interseção. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles.
Se a proporção calculada for menor que a de transbordamento, os back-ends qualificados modificados serão os mesmos que os originais.
A tabela a seguir resume o processo para criar o conjunto de backends qualificados modificados quando a opção de afinidade zonal é ZONAL_AFFINITY_SPILL_CROSS_ZONE e a proporção de transbordamento configurada não é 0.0:
| Back-ends originais qualificados (A) | Back-ends de teste de correspondência por zona (B) | Back-ends zonais correspondentes (C) | Interseção (A∩C) | Back-ends qualificados modificados |
|---|---|---|---|---|
| Todos os back-ends principais íntegros |
Todos os back-ends principais configurados Os back-ends de teste de correspondência por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends principais na zona do cliente Os back-ends correspondentes por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends principais íntegros na zona do cliente |
Proporção calculada ≥ proporção de transbordamento: os back-ends qualificados modificados são todos os back-ends primários íntegros na zona do cliente. As novas conexões são distribuídas na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. Proporção calculada < proporção de transbordamento: os back-ends qualificados modificados são os mesmos que os back-ends qualificados originais. As novas conexões podem ser distribuídas dentro da zona do cliente ou para outras zonas. |
| Todos os back-ends de failover íntegros |
Todos os back-ends de failover configurados Os back-ends de teste de correspondência por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends de failover na zona do cliente Os back-ends correspondentes por zona podem estar todos íntegros ou uma combinação de íntegros e não íntegros. |
Todos os back-ends de failover íntegros na zona do cliente |
Proporção calculada ≥ proporção de transbordamento: os back-ends qualificados modificados são todos os back-ends de failover íntegros na zona do cliente. As novas conexões são distribuídas na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. Proporção calculada < proporção de transbordamento: os backends qualificados modificados são os mesmos que os backends qualificados originais. As novas conexões podem ser distribuídas dentro da zona do cliente ou para outras zonas. |
| Todos os back-ends principais não íntegros |
Todos os back-ends principais configurados Os back-ends de teste de correspondência zonal são todos considerados não íntegros por definição quando os back-ends principais originais qualificados também são considerados não íntegros. |
Todos os back-ends principais não íntegros na zona do cliente |
Todos os back-ends principais não íntegros na zona do cliente |
A proporção calculada é sempre maior ou igual à proporção de transbordamento: os back-ends qualificados modificados são todos os back-ends principais não íntegros na zona do cliente. As novas conexões são distribuídas na zona do cliente. Os back-ends qualificados modificados podem ser os mesmos que os originais ou um subconjunto deles. |
A seguir
- Para configurar o Cloud Monitoring para balanceadores de carga de rede de passagem interna, consulte Geração de registros e monitoramento do balanceador de carga de rede interno.
- Para resolver problemas com o balanceador de carga de rede de passagem interna, consulte esta página.