Sub-redes só de proxy para balanceadores de carga baseados no Envoy

Esta página descreve como trabalhar com sub-redes apenas de proxy usadas por equilibradores de carga baseados no Envoy. Uma sub-rede só de proxy fornece um conjunto de endereços IP reservados exclusivamente para proxies Envoy usados por Google Cloud balanceadores de carga. Não pode ser usado para outros fins.

Os proxies terminam as ligações recebidas e, em seguida, avaliam para onde cada pedido deve ir com base no mapa de URLs, na afinidade de sessão do serviço de back-end, no modo de equilíbrio de cada grupo de instâncias de back-end ou NEG e noutros fatores.

  1. Um cliente estabelece uma ligação ao endereço IP e à porta da regra de encaminhamento do balanceador de carga.

  2. Cada proxy escuta o endereço IP e a porta especificados pela regra de encaminhamento do balanceador de carga correspondente. Um dos proxies recebe e termina a ligação de rede do cliente.

  3. O proxy estabelece uma ligação à VM ou ao ponto final de back-end adequado num NEG, conforme determinado pelo mapa de URLs e pelos serviços de back-end do equilibrador de carga.

A cada um dos proxies do balanceador de carga é atribuído um endereço IP interno. Os pacotes enviados de um proxy para uma VM ou um ponto final de back-end têm um endereço IP de origem da sub-rede apenas de proxy.

Não é possível usar a sub-rede apenas de proxy para outros fins. O endereço IP da regra de encaminhamento do balanceador de carga não provém da sub-rede só de proxy. Além disso, os endereços IP das VMs e dos pontos finais de back-end não provêm da sub-rede apenas de proxy.

Balanceadores de carga suportados

Os seguintes equilibradores de carga baseados no Envoy requerem sub-redes apenas de proxy:

Como as sub-redes só de proxy se encaixam na arquitetura do balanceador de carga

O diagrama seguinte mostra os Google Cloud recursos necessários para um Application Load Balancer interno regional.

Componentes numerados do balanceador de carga de aplicações interno regional.
Componentes numerados do balanceador de carga da aplicação interno regional (clique para ampliar).

Conforme mostrado nos diagramas, uma implementação de equilibrador de carga baseada no Envoy requer, pelo menos, duas sub-redes:

  • As VMs de back-end e os pontos finais de back-end do balanceador de carga usam uma única sub-rede cujo intervalo de endereços IP principal é 10.1.2.0/24 (neste exemplo). Esta sub-rede não é a sub-rede só de proxy. Pode usar várias sub-redes para as VMs e os pontos finais de back-end se as sub-redes estiverem na mesma região que o balanceador de carga. Para balanceadores de carga de aplicações internos, o endereço IP do balanceador de carga associado à regra de encaminhamento também pode estar nesta sub-rede (mas não tem de estar).
  • A sub-rede só de proxy é 10.129.0.0/23 (neste exemplo).

Planear o tamanho da sua sub-rede só de proxy

Uma sub-rede só de proxy tem de fornecer 64 ou mais endereços IP. Isto corresponde a um comprimento de prefixo de /26 ou inferior. Recomendamos que comece com uma sub-rede apenas de proxy com um prefixo /23 (512 endereços apenas de proxy) e altere o tamanho à medida que as suas necessidades de tráfego mudam.

Os proxies são atribuídos ao nível da VPC e não ao nível do equilibrador de carga. Tem de criar uma sub-rede apenas de proxy em cada região de uma rede VPC na qual usa equilibradores de carga baseados no Envoy. Se implementar vários balanceadores de carga na mesma região e na mesma rede VPC, partilham a mesma sub-rede só de proxy para o balanceamento de carga. Os equilibradores de carga baseados no Envoy dimensionam automaticamente o número de proxies disponíveis para processar o seu tráfego com base nas suas necessidades de tráfego.

O número de proxies atribuídos ao seu equilibrador de carga é calculado com base na capacidade medida necessária para processar o seu tráfego durante um período de 10 minutos. Durante este período, consideramos o maior dos seguintes valores:

  • O número de proxies necessários para satisfazer as necessidades de largura de banda do seu tráfego. Cada instância de proxy pode processar até 18 MB por segundo. Monitorizamos a largura de banda total necessária e dividimos esse total pela largura de banda que uma instância de proxy pode suportar.

  • O número de proxies necessários para processar ligações e pedidos. Contamos o total de cada um dos seguintes recursos e dividimos cada valor pelo que uma instância de proxy pode processar:

    • 600 (HTTP) ou 150 (HTTPS) novas ligações por segundo
    • 3000 ligações ativas
    • 1400 pedidos por segundo

      Uma instância de proxy pode processar 1400 pedidos por segundo se o Cloud Logging estiver desativado. Se ativar o registo, a instância do proxy pode processar menos pedidos por segundo. Por exemplo: o registo de 100% dos pedidos diminui a capacidade de processamento de pedidos do proxy para 700 pedidos por segundo. Pode configurar o registo para fazer uma amostragem de uma percentagem menor de tráfego. Isto permite-lhe satisfazer as suas necessidades de observabilidade enquanto controla o seu custo.

Cada proxy adicional incorre numa cobrança horária adicional. Para saber como são faturadas as sub-redes apenas de proxy, consulte a secção Cobrança de instâncias de proxy na documentação de preços do Cloud Load Balancing.

Balanceadores de carga baseados no Envoy e proxies do Envoy Secure Web Proxy

Quando configurar um equilibrador de carga baseado no Envoy e um proxy Web seguro na mesma VPC, é importante ter em atenção o seguinte:

  • Tanto o equilibrador de carga baseado no Envoy como o proxy Web seguro usam endereços IP de uma sub-rede apenas de proxy.

  • Para dar resposta aos requisitos de endereço IP para ambos os serviços, considere usar uma sub-rede apenas de proxy maior, como uma sub-rede /22. Isto ajuda a garantir espaço de endereço suficiente para ambas as configurações.

  • Recomendamos que monitorize a capacidade do proxy para acompanhar o consumo de endereços IP. Isto ajuda a evitar o esgotamento da sub-rede apenas de proxy, o que pode interromper os serviços.

Crie uma sub-rede só de proxy

Tem de criar sub-redes apenas de proxy para equilibradores de carga baseados no Envoy, independentemente de a sua rede estar no modo automático ou personalizado. A criação de uma sub-rede só de proxy é essencialmente o mesmo procedimento que criar qualquer sub-rede, exceto com a adição de algumas flags.

Para uma sub-rede só de proxy, o --purpose tem de ser definido como REGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, consoante o seu balanceador de carga.

Não pode reutilizar uma sub-rede existente como sub-rede apenas de proxy. Tem de criar uma nova sub-rede em cada região que tenha um equilibrador de carga baseado no Envoy. Isto deve-se, em parte, ao facto de o comando subnets update não permitir a modificação do campo --purpose de uma sub-rede.

Tem de criar uma sub-rede só de proxy para utilização pelos proxies dos balanceadores de carga antes de criar regras de encaminhamento para os balanceadores de carga regionais. Se tentar configurar um equilibrador de carga sem criar primeiro uma sub-rede apenas de proxy para a região, o processo de criação do equilibrador de carga falha.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.
    Aceda à página Redes de VPC
  2. Clique no nome da rede de VPC partilhada à qual quer adicionar uma sub-rede apenas de proxy.
  3. Clique em Adicionar sub-rede.
  4. Introduza um Nome.
  5. Selecione uma região.
  6. Defina o objetivo como uma das seguintes opções:
    • Para balanceadores de carga regionais: proxy gerido regional
    • Para balanceadores de carga entre regiões: proxy gerido entre regiões
    • Introduza um intervalo de endereços IP.
    • Clique em Adicionar.

gcloud

O comando gcloud compute networks subnets create cria uma sub-rede apenas de proxy.

gcloud compute networks subnets create SUBNET_NAME \
    --purpose=SUBNET_PURPOSE \
    --role=ACTIVE \
    --region=REGION \
    --network=VPC_NETWORK_NAME \
    --range=CIDR_RANGE

Os campos são definidos da seguinte forma:

  • SUBNET_NAME é o nome da sub-rede só de proxy.
  • SUBNET_PURPOSE é o objetivo da sub-rede. Defina esta opção comoREGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, consoante o seu balanceador de carga.
  • REGION é a região da sub-rede só de proxy.
  • VPC_NETWORK_NAME é o nome da rede VPC que contém a sub-rede.
  • CIDR_RANGE é o intervalo de endereços IP principal da sub-rede. Tem de usar uma máscara de sub-rede com um comprimento máximo de 26 para que estejam disponíveis, pelo menos, 64 endereços IP para proxies na região. O comprimento recomendado da máscara de sub-rede é /23.

Para ver um exemplo de configuração completo, consulte o artigo Configurar a sub-rede apenas de proxy.

Tem de configurar uma regra de firewall para que os seus back-ends aceitem ligações da sub-rede só de proxy. Para ver um exemplo de configuração completo, incluindo a configuração de regras de firewall, consulte o seguinte:

Disponibilidade do proxy

Por vezes, Google Cloud as regiões não têm capacidade de proxy suficiente para um novo balanceador de carga. Se isto acontecer, a Google Cloud consola apresenta uma mensagem de aviso de disponibilidade de proxy quando estiver a criar o equilibrador de carga. Para resolver este problema, pode fazer uma das seguintes ações:

  • Selecione uma região diferente para o balanceador de carga. Esta pode ser uma opção prática se tiver back-ends noutra região.
  • Selecione uma rede de VPC que já tenha uma sub-rede apenas de proxy atribuída.
  • Aguarde pela resolução do problema de capacidade.

Altere o tamanho ou o intervalo de endereços de uma sub-rede apenas de proxy

Quando a quantidade de tráfego processado pelo balanceador de carga aumenta, pode ter de aumentar o tamanho da sub-rede só de proxy para permitir que um número maior de proxies Envoy alimente os balanceadores de carga.

Não pode expandir o intervalo de endereços IPv4 principal de uma sub-rede apenas de proxy da mesma forma que expandiria o intervalo de endereços IPv4 principal de uma sub-rede normal (com o comando expand-ip-range). Em alternativa, tem de substituir a sub-rede apenas de proxy por uma nova. O processo de substituição funciona da seguinte forma:

  • Crie uma nova sub-rede só de proxy na mesma região e rede VPC que a sub-rede só de proxy existente (original). Quando criar esta nova sub-rede apenas de proxy, defina o respetivo role como BACKUP. (Para cada finalidade de sub-rede só de proxy, Google Cloud permite que exista uma sub-rede só de proxy ACTIVE e uma BACKUP numa determinada região e rede VPC.)

  • Ajuste as regras de firewall de permissão de entrada, aplicáveis aos seus back-ends, para que permitam ligações dos intervalos de endereços IPv4 principais das sub-redes só de proxy originais e novas.

  • Defina a função da nova sub-rede só de proxy como ACTIVE e especifique um período de esgotamento para permitir que as ligações entre os seus back-ends e os proxies do Envoy na sub-rede só de proxy original terminem. (Google Cloud define automaticamente a função da sub-rede só de proxy original como BACKUP quando define a função da nova sub-rede só de proxy como ACTIVE.)

  • Monitorize o estado da sub-rede original apenas de proxy (consulte o separador gcloud para ver mais informações sobre a monitorização). Quando o estado for READY, a sub-rede deixa de ser usada, desde que a respetiva função seja BACKUP. Neste ponto, pode ajustar as regras de firewall de permissão de entrada para permitir ligações apenas do intervalo de endereços IPv4 principal da nova sub-rede só de proxy e pode eliminar a sub-rede só de proxy original.

Consola

  1. Crie a nova sub-rede apenas de proxy na mesma região e rede VPC, especificando um intervalo de endereços IPv4 principal que satisfaça as suas necessidades. Defina a função da nova sub-rede só de proxy como cópia de segurança.

    1. Na Google Cloud consola, aceda à página Redes VPC.
      Aceda à página Redes de VPC
    2. Clique no nome da rede de VPC partilhada à qual quer adicionar uma sub-rede apenas de proxy.
    3. Clique em Adicionar sub-rede.
    4. Introduza um Nome.
    5. Selecione uma região.
    6. Defina o objetivo como uma das seguintes opções:
      • Para balanceadores de carga regionais: proxy gerido regional
      • Para balanceadores de carga entre regiões: proxy gerido entre regiões
      • Para a Função, selecione Cópia de segurança.
      • Introduza um intervalo de endereços IP.
      • Clique em Adicionar.
  2. Atualize as regras de firewall de permissão de entrada que se aplicam às suas VMs ou endpoints de back-end para que incluam os intervalos de endereços IPv4 principais de ambas as sub-redes só de proxy originais e novas.

  3. Defina a função da nova sub-rede só de proxy como ativa e especifique um tempo limite de esgotamento para permitir que as ligações entre os seus back-ends e a sub-rede só de proxy original terminem.O Google Cloud define automaticamente a função da sub-rede só de proxy original como cópia de segurança quando define a função da nova sub-rede só de proxy como ativa. Google Cloud

    1. Na Google Cloud consola, aceda à página Redes VPC.
      Aceda à página Redes de VPC
    2. Clique no nome da rede de VPC partilhada que quer modificar.
    3. Em Sub-redes apenas de proxy reservadas para o equilíbrio de carga, localize a sub-rede de cópia de segurança criada no passo anterior.
    4. Clique em Ativar.
    5. Especifique um Limite de tempo de esgotamento opcional.
    6. Clique em Ativar a sub-rede.
  4. Após o tempo limite de esgotamento da ligação ou quando tiver a certeza de que as ligações às VMs ou aos pontos finais do back-end não provêm de proxies na sub-rede apenas de proxy original, pode fazer o seguinte:

    • Atualize as regras de firewall de permissão de entrada que se aplicam às suas VMs ou endpoints de back-end para que incluam o intervalo de endereços IPv4 principal apenas da nova sub-rede só de proxy.
    • Elimine a sub-rede só de proxy original.

gcloud

Os passos seguintes mostram como substituir uma sub-rede apenas de proxy existente por uma nova sub-rede apenas de proxy. Em todos os passos seguintes:

  • ORIGINAL_PROXY_ONLY_SUBNET_NAME: o nome da sub-rede só de proxy existente
  • ORIGINAL_PROXY_ONLY_SUBNET_RANGE: o intervalo de endereços IPv4 principal da sub-rede só de proxy existente no formato CIDR. Este é um intervalo de endereços que escolheu anteriormente.
  • NEW_PROXY_ONLY_SUBNET_NAME: o nome da nova sub-rede apenas de proxy
  • NEW_PROXY_ONLY_SUBNET_RANGE: o intervalo de endereços IPv4 principal da nova sub-rede apenas de proxy no formato CIDR. Escolha um intervalo de endereços IPv4 para satisfazer as suas necessidades.
  • PROXY_ONLY_SUBNET_FIREWALL_RULE: o nome de uma regra de firewall da VPC de permissão de entrada que permite ligações de sub-redes só de proxy
  • REGION: a região que contém as sub-redes originais e novas apenas de proxy
  • VPC_NETWORK_NAME: o nome da rede VPC da rede que contém as sub-redes originais e novas apenas de proxy
  1. Crie uma nova sub-rede apenas de proxy na mesma região e rede VPC usando o comando gcloud compute networks subnets create com a flag --role=BACKUP.

    gcloud compute networks subnets create NEW_PROXY_ONLY_SUBNET_NAME \
       --purpose=SUBNET_PURPOSE \
       --role=BACKUP \
       --region=REGION \
       --network=VPC_NETWORK_NAME \
       --range=NEW_PROXY_ONLY_SUBNET_RANGE
    

    Substitua o seguinte:

    • SUBNET_PURPOSE: REGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, consoante o balanceador de carga que precisa de usar a sub-rede só de proxy. Para mais informações, consulte o artigo Equilibradores de carga compatíveis.
  2. Atualize as regras de firewall de permissão de entrada que se aplicam às suas VMs ou endpoints de back-end para que incluam os intervalos de endereços IPv4 principais de ambas as sub-redes só de proxy originais e novas.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges=ORIGINAL_PROXY_ONLY_SUBNET_RANGE,NEW_PROXY_ONLY_SUBNET_RANGE
    
  3. Defina a função da nova sub-rede só de proxy como ACTIVE e especifique um tempo limite de esgotamento (--drain-timeout) para permitir que as ligações entre os seus back-ends e a sub-rede só de proxy original sejam terminadas. OGoogle Cloud define automaticamente a função da sub-rede só de proxy original como BACKUP quando define a função da nova sub-rede só de proxy como ACTIVE.

    Para interromper imediatamente as associações entre os seus back-ends e proxies Envoy na sub-rede original apenas de proxy, defina --drain-timeout como 0s.

    gcloud compute networks subnets update NEW_PROXY_ONLY_SUBNET_NAME \
       --region=REGION \
       --role=ACTIVE \
       --drain-timeout=CONNECTION_DRAINING_TIMEOUT
    

    Substitua o seguinte:

    • CONNECTION_DRAINING_TIMEOUT: a quantidade de tempo, em segundos, para permitir que as ligações existentes entre os seus back-ends e os proxies do Envoy na sub-rede só de proxy original terminem.
  4. Monitorize o estado da sub-rede original apenas de proxy através do comando gcloud compute networks subnets describe.

    gcloud compute networks subnets describe ORIGINAL_PROXY_ONLY_SUBNET_NAME \
       --region=REGION
    

    Aguarde até que a descarga esteja concluída. Durante a drenagem, o estado da sub-rede original apenas de proxy é DRAINING. Pode ter de executar o comando describe algumas vezes antes de o estado da sub-rede original apenas de proxy mudar para READY.

  5. Depois de a sub-rede original apenas de proxy ser READY com a função BACKUP, a sub-rede deixa de ser usada. Atualize as regras de firewall de permissão de entrada que se aplicam às VMs ou aos pontos finais de back-end para que incluam o intervalo de endereços IPv4 principal apenas da nova sub-rede só de proxy.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges=NEW_PROXY_ONLY_SUBNET_RANGE
    
  6. Elimine a sub-rede original apenas de proxy.

    gcloud compute networks subnets delete ORIGINAL_PROXY_ONLY_SUBNET_NAME \
      --region=REGION
    

Migre a finalidade de uma sub-rede só de proxy

Se criou anteriormente uma sub-rede apenas de proxy com --purpose=INTERNAL_HTTPS_LOAD_BALANCER, tem de migrar a finalidade da sub-rede para REGIONAL_MANAGED_PROXY antes de poder criar outros equilibradores de carga baseados no Envoy na mesma região da rede VPC.

Consola

Se estiver a usar a Google Cloud consola para criar o balanceador de carga, é-lhe pedido que migre a finalidade de uma sub-rede apenas de proxy criada anteriormente de --purpose=INTERNAL_HTTPS_LOAD_BALANCER para REGIONAL_MANAGED_PROXY durante a criação do balanceador de carga.

gcloud

Para alterar a finalidade de uma sub-rede só de proxy existente de --purpose=INTERNAL_HTTPS_LOAD_BALANCER para REGIONAL_MANAGED_PROXY, use o seguinte comando:

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --purpose=REGIONAL_MANAGED_PROXY \
    --region=REGION

A migração da finalidade de uma sub-rede só de proxy de --purpose=INTERNAL_HTTPS_LOAD_BALANCER para REGIONAL_MANAGED_PROXY não causa tempo de inatividade. A alteração deve entrar em vigor quase instantaneamente.

Elimine uma sub-rede apenas de proxy

A eliminação de uma sub-rede só de proxy liberta o respetivo intervalo de endereços IP principal para que possa usar o intervalo para outro fim.O Google Cloud aplica as seguintes regras quando recebe um pedido para eliminar uma sub-rede só de proxy:

  • Não é possível eliminar uma sub-rede apenas de proxy ativa se existir, pelo menos, um balanceador de carga regional na mesma região e rede VPC.

  • Não é possível eliminar uma sub-rede só de proxy ativa se existir uma sub-rede só de proxy de yedekleme na mesma região e rede VPC.

    Se tentar eliminar uma sub-rede ativa apenas de proxy antes de eliminar a cópia de segurança, é apresentada a seguinte mensagem de erro: "Invalid resource usage: Cannot delete ACTIVE subnetwork because a BACKUP subnetwork exists." (Utilização de recursos inválida: não é possível eliminar a sub-rede ATIVA porque existe uma sub-rede de CÓPIA DE SEGURANÇA.)

Na prática, estas regras têm o seguinte efeito:

  • Se não estiver definido nenhum equilibrador de carga regional numa determinada região e rede VPC, pode eliminar as sub-redes apenas de proxy nessa região. Se existir uma sub-rede apenas de proxy alternativa, tem de a eliminar primeiro antes de poder eliminar a sub-rede apenas de proxy ativa.

  • Se tiver, pelo menos, um equilibrador de carga regional definido numa determinada região e rede VPC, não pode eliminar a sub-rede só de proxy ativa. No entanto, pode promover uma sub-rede só de proxy de yedekleme para a função ativa, o que rebaixa automaticamente a sub-rede só de proxy anteriormente ativa para a função de yedekleme. Depois de as ligações serem esgotadas, pode eliminar a sub-rede apenas de proxy de cópia de segurança (anteriormente ativa).

Consulte o artigo sobre como eliminar sub-redes na documentação da rede VPC para mais informações.

Limitações

Aplicam-se as seguintes restrições às sub-redes apenas de proxy:

  • Não pode ter uma sub-rede INTERNAL_HTTPS_LOAD_BALANCER e uma sub-rede REGIONAL_MANAGED_PROXY na mesma rede e região, da mesma forma que não pode ter dois proxies REGIONAL_MANAGED_PROXY ou dois proxies INTERNAL_HTTPS_LOAD_BALANCER.

  • Só pode criar uma sub-rede só de proxy ativa e uma de backup em cada região em cada rede VPC.

  • Não pode criar uma sub-rede só de proxy de cópia de segurança, a menos que já tenha criado uma sub-rede só de proxy ativa nessa região e rede.

  • Pode alterar a função de uma sub-rede só de proxy de alternativa para ativa atualizando a sub-rede. Quando o faz,a sub-rede apenas de proxy anteriormente ativa é Google Cloud automaticamente alterada para cópia de segurança. Não pode definir explicitamente a função de uma sub-rede apenas de proxy como cópia de segurança atualizando-a.

  • Durante o período de esgotamento da ligação de uma sub-rede só de proxy (--drain-timeout), não pode alterar a função de uma sub-rede só de proxy de cópia de segurança para ativa.

  • As sub-redes só de proxy não suportam os registos de fluxo da VPC.

O que se segue?