Sub-redes somente proxy para balanceadores de carga baseados em Envoy

Nesta página, descrevemos como trabalhar com sub-redes apenas de proxy usadas por balanceadores de carga baseados em Envoy. Uma sub-rede somente proxy fornece um pool de endereços IP reservados exclusivamente para proxies Envoy usados por balanceadores de carga Google Cloud . Não é possível usá-la para outras finalidades.

Os proxies encerram as conexões de entrada e avaliam para onde cada solicitação precisa ir com base no mapa de URL, na afinidade da sessão do serviço de back-end, no modo de balanceamento de cada grupo de instâncias de back-end ou NEG e em outros fatores.

  1. Um cliente estabelece uma conexão com o endereço IP e a porta da regra de encaminhamento do balanceador de carga.

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

  3. O proxy estabelece uma conexão com o endpoint ou a VM de back-end adequados em um NEG, conforme determinado pelos serviços de back-end e o mapa de URL do balanceador de carga.

Cada proxy do balanceador de carga recebe um endereço IP interno. Cada pacote enviado de um proxy para um endpoint ou VM de back-end tem um endereço IP de origem da sub-rede somente proxy.

A sub-rede somente proxy não pode ser usada para nenhum outro propósito. O endereço IP da regra de encaminhamento do balanceador de carga não vem da sub-rede somente proxy. Além disso, os endereços IP dos endpoints e VMs de back-end não vêm da sub-rede somente proxy.

Balanceadores de carga e produtos compatíveis

Os produtos do Cloud Load Balancing e Secure Web Proxy baseados no Envoy exigem sub-redes somente proxy:

Como as sub-redes somente proxy se ajustam à arquitetura do balanceador de carga

O diagrama a seguir mostra os recursos do Google Cloud necessários para um balanceador de carga de aplicativo interno regional.

Componentes numerados do balanceador de carga de aplicativo interno regional.
Componentes numerados do balanceador de carga do aplicativo interno regional (clique para ampliar).

Conforme mostrado nos diagramas, uma implantação de balanceador de carga baseada em Envoy requer pelo menos duas sub-redes:

  • As VMs e os endpoints de back-end do balanceador de carga usam uma única sub-rede, que tem o intervalo de endereços IP principal "10.1.2.0/24" (neste exemplo). Essa sub-rede não é a sub-rede somente proxy. Se as sub-redes estiverem na mesma região do balanceador de carga, é possível usar várias sub-redes para os endpoints e VMs de back-end. Para balanceadores de carga de aplicativo internos, o endereço IP do balanceador de carga associado à regra de encaminhamento também pode estar nessa sub-rede, mas não precisa ser.
  • A sub-rede somente proxy é "10.129.0.0/23" (neste exemplo).

Como planejar o tamanho da sub-rede somente proxy

Uma sub-rede somente proxy precisa fornecer 64 ou mais endereços IP. Isso corresponde a um um prefixo de tamanho /26 ou mais curto. Recomendamos que você comece com uma sub-rede somente proxy com um prefixo /23 (512 endereços somente proxy) e mude o tamanho conforme as necessidades de tráfego mudarem.

Os proxies são alocados no nível da VPC, não no nível do balanceador de carga. Crie uma sub-rede somente proxy em cada região de uma rede virtual (VPC) em que você usa balanceadores de carga baseados em Envoy. Se você implantar vários balanceadores de carga que estão na mesma região e na mesma rede VPC, eles compartilharão a mesma sub-rede somente proxy para balanceamento de carga. Os balanceadores de carga baseados em Envoy fazem o escalonamento automático do número de proxies disponíveis para lidar com seu tráfego com base nas necessidades específicas.

O número de proxies alocados para o balanceador de carga é calculado com base na capacidade medida necessária para lidar com seu tráfego em um período de 10 minutos. Durante esse tempo, analisamos o maior valor de:

  • número de proxies necessários para atender às necessidades de largura de banda do seu tráfego. Cada instância de proxy pode processar até 18 MB por segundo. Monitoramos 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 conexões e solicitações. 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) conexões novas por segundo
    • 3.000 conexões ativas
    • 1.400 solicitações por segundo

      Uma instância de proxy pode processar 1.400 solicitações por segundo se o Cloud Logging estiver desativado. Se você ativar o Cloud Logging, sua instância de proxy poderá processar menos solicitações por segundo. Por exemplo: gerar registros de 100% das solicitações diminui a capacidade de processamento de solicitações do proxy para 700 solicitações por segundo. Você pode configurar o Cloud Logging para analisar uma porcentagem menor de tráfego. Isso permite que você atenda às suas necessidades de observabilidade enquanto controla seu custo.

Cada proxy adicional gera uma cobrança por hora adicional. Para saber como as sub-redes somente proxy são cobradas, consulte a seção Taxa de instância de proxy na documentação de preços do Cloud Load Balancing.

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

Ao configurar um balanceador de carga baseado no Envoy e o Secure Web Proxy na mesma VPC, é importante observar o seguinte:

  • O balanceador de carga baseado no Envoy e o Secure Web Proxy usam endereços IP da mesma sub-rede somente proxy.

  • Para atender aos requisitos de endereço IP dos dois serviços, considere usar uma sub-rede somente proxy maior, como uma sub-rede /22. Isso ajuda a garantir espaço de endereço suficiente para as duas configurações.

  • Recomendamos que você monitore a capacidade do proxy para acompanhar o consumo de endereços IP. Isso ajuda a evitar o esgotamento da sub-rede somente de proxy, o que pode interromper os serviços.

Criar uma sub-rede somente proxy

É preciso criar sub-redes somente de proxy para balanceadores de carga baseados em Envoy, independente de sua rede estar no modo automático ou ser personalizada. Criar uma sub-rede apenas de proxy é basicamente o mesmo procedimento de criar qualquer sub-rede, exceto com a adição de algumas sinalizações.

Para a sub-rede somente proxy, o --purpose precisa ser definido como REGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, dependendo do balanceador de carga.

Não é possível reutilizar uma sub-rede existente como a sub-rede apenas de proxy. Você precisará criar uma nova sub-rede em cada região que tiver um balanceador de carga baseado em Envoy. Isso é necessário em parte porque o comando subnets update não permite modificar o campo --purpose da sub-rede.

Antes de gerar regras de encaminhamento para os balanceadores de carga regionais, crie uma sub-rede apenas de proxy para ser usada pelos proxies dos balanceadores. Se você tentar configurar um balanceador de carga sem antes criar uma sub-rede somente proxy na região, o processo de criação do balanceador de carga apresentará falha.

Console

  1. No console do Google Cloud , acesse a página Redes VPC.
    Acessar a página "Redes VPC"
  2. Clique no nome da rede VPC compartilhada à qual você quer adicionar uma sub-rede somente proxy.
  3. Clique em Add subnet.
  4. Digite um Nome.
  5. Selecionar uma região.
  6. Defina a Finalidade como uma das seguintes opções:
    • Para balanceadores de carga regionais: Proxy gerenciado regional
    • Para balanceadores de carga entre regiões: proxy gerenciado entre regiões
    • Digite um Intervalo de endereço IP.
    • Clique em Adicionar.

gcloud

O comando gcloud compute networks subnets create cria uma sub-rede somente 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 maneira:

  • SUBNET_NAME é o nome da sub-rede somente proxy;
  • SUBNET_PURPOSE é a finalidade da sub-rede. Defina como ou REGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, dependendo do balanceador de carga
  • REGION é a região da sub-rede somente 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; Use uma máscara de sub-rede de até 26 de comprimento para que ao menos 64 endereços IP estejam disponíveis para os proxies na região. O comprimento recomendado da máscara de sub-rede é /23.

Para um exemplo completo de configuração, consulte Como configurar a sub-rede apenas de proxy.

Configure uma regra de firewall para que seus back-ends aceitem conexões da sub-rede somente proxy. Para um exemplo completo de configuração, incluindo a configuração da regra de firewall, consulte:

Disponibilidade de proxy

Às vezes, as regiões Google Cloud não têm capacidade de proxy suficiente para um novo balanceador de carga. Se isso acontecer, o console Google Cloud fornecerá uma mensagem de aviso sobre a disponibilidade de proxy quando você criar o balanceador de carga. Para resolver esse problema, siga um destes procedimentos:

  • Selecione uma região diferente para seu balanceador de carga. Essa opção pode ser prática se você tiver back-ends em outra região.
  • Selecione uma rede VPC que já tenha uma sub-rede somente proxy alocada.
  • Aguarde o problema de capacidade ser resolvido.

Como alterar o tamanho ou o intervalo de endereços de uma sub-rede somente proxy

Quando a quantidade de tráfego processado pelo balanceador de carga aumenta, talvez seja necessário aumentar o tamanho da sub-rede somente proxy para permitir que um número maior de proxies do Envoy alimente os balanceadores de carga.

Não é possível expandir o intervalo de endereços IPv4 principal de uma sub-rede somente de proxy da mesma maneira que você faria com uma sub-rede normal (com o comando expand-ip-range). Em vez disso, substitua a sub-rede somente proxy por uma nova. O processo de substituição funciona assim:

  • Crie uma sub-rede somente proxy na mesma região e rede VPC que a sub-rede somente proxy atual (original). Ao criar essa nova sub-rede somente proxy, defina o role dela como BACKUP. Para cada finalidade de sub-rede somente proxy, Google Cloud permite que uma sub-rede somente proxy ACTIVE e uma BACKUP existam em uma 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 conexões dos intervalos de endereços IPv4 principais das sub-redes somente proxy original e nova.

  • Defina a função da nova sub-rede somente proxy como ACTIVE e especifique um período de redução para permitir que as conexões entre os back-ends e os proxies do Envoy na sub-rede somente proxy original sejam encerradas. OGoogle Cloud define automaticamente a função da sub-rede somente proxy original como BACKUP quando você define a função da nova sub-rede somente proxy como ACTIVE.

  • Monitore o status da sub-rede somente proxy original. Consulte a guia "gcloud" para mais informações sobre o monitoramento. Quando o status for READY, a sub-rede não será mais usada, desde que a função seja BACKUP. Neste ponto, você pode ajustar as regras de firewall de permissão de entrada para permitir conexões apenas do intervalo de endereços IPv4 principal da nova sub-rede somente proxy e excluir a sub-rede somente proxy original.

Console

  1. Crie a nova sub-rede somente proxy na mesma região e rede VPC, especificando um intervalo de endereços IPv4 principal que atenda às suas necessidades. Defina a função da nova sub-rede somente proxy como backup.

    1. No console do Google Cloud , acesse a página Redes VPC.
      Acessar a página "Redes VPC"
    2. Clique no nome da rede VPC compartilhada à qual você quer adicionar uma sub-rede somente proxy.
    3. Clique em Add subnet.
    4. Digite um Nome.
    5. Selecionar uma região.
    6. Defina a Finalidade como uma das seguintes opções:
      • Para balanceadores de carga regionais: Proxy gerenciado regional
      • Para balanceadores de carga entre regiões: proxy gerenciado entre regiões
      • Em Papel, selecione Backup.
      • Digite um Intervalo de endereço IP.
      • Clique em Adicionar.
  2. Atualize as regras de firewall de permissão de entrada que se aplicam aos endpoints ou VMs de back-end para que incluam os intervalos de endereços IPv4 principais das duas sub-redes somente proxy, a original e a nova.

  3. Defina a função da nova sub-rede somente proxy como ativa e especifique um tempo limite de diminuição para permitir que as conexões entre os back-ends e a sub-rede somente proxy original sejam encerradas.O Google Cloud define automaticamente a função da sub-rede somente proxy original como backup quando você define a função da nova sub-rede somente proxy como ativa.

    1. No console do Google Cloud , acesse a página Redes VPC.
      Acessar a página "Redes VPC"
    2. Clique no nome da rede VPC compartilhada que você quer modificar.
    3. Em Sub-redes somente proxy reservadas para balanceamento de carga, localize a sub-rede de backup criada na etapa anterior.
    4. Clique em Ativar.
    5. Especifique um tempo limite de drenagem opcional.
    6. Clique em Ativar a sub-rede.
  4. Após o tempo limite de diminuição de conexão ou assim que você tiver certeza de que as conexões com os endpoints ou VMs de back-end não estão vindo de proxies na sub-rede somente proxy original, siga estas etapas:

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

gcloud

As etapas a seguir mostram como trocar uma sub-rede somente proxy por uma nova. Em todas as etapas a seguir:

  • ORIGINAL_PROXY_ONLY_SUBNET_NAME: o nome da sub-rede somente proxy atual
  • ORIGINAL_PROXY_ONLY_SUBNET_RANGE: o intervalo de endereços IPv4 principal da sub-rede somente proxy atual no formato CIDR. Esse é um intervalo de endereços que você escolheu anteriormente.
  • NEW_PROXY_ONLY_SUBNET_NAME: o nome da nova sub-rede somente proxy.
  • NEW_PROXY_ONLY_SUBNET_RANGE: o intervalo de endereços IPv4 principal da nova sub-rede somente proxy no formato CIDR. Escolha um intervalo de endereços IPv4 para atender às suas necessidades.
  • PROXY_ONLY_SUBNET_FIREWALL_RULE: o nome de uma regra de firewall de permissão de entrada da VPC que permite conexões de sub-redes somente proxy.
  • REGION: a região que contém as sub-redes somente proxy original e nova.
  • VPC_NETWORK_NAME: o nome da rede VPC que contém as sub-redes somente proxy original e nova
  1. Crie uma sub-rede somente 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:

    • SUBNET_PURPOSE: REGIONAL_MANAGED_PROXY ou GLOBAL_MANAGED_PROXY, dependendo do balanceador de carga que precisa usar a sub-rede somente proxy. Para mais informações, consulte Balanceadores de carga compatíveis.
  2. Atualize as regras de firewall de permissão de entrada que se aplicam aos endpoints ou VMs de back-end para que incluam os intervalos de endereços IPv4 principais das duas sub-redes somente proxy, a original e a nova.

    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 somente proxy como ACTIVE e especifique um tempo limite de redução (--drain-timeout) para permitir que as conexões entre seus backends e a sub-rede somente proxy original sejam encerradas. OGoogle Cloud define automaticamente a função da sub-rede somente proxy original como BACKUP quando você define a função da nova sub-rede somente proxy como ACTIVE.

    Para interromper imediatamente as conexões entre seus back-ends e os proxies do Envoy na sub-rede somente proxy original, 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:

    • CONNECTION_DRAINING_TIMEOUT: o tempo em segundos para encerrar as conexões atuais entre os back-ends e os proxies Envoy na sub-rede somente proxy original.
  4. Monitore o status da sub-rede somente proxy original usando o comando gcloud compute networks subnets describe.

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

    Aguarde a conclusão da redução. Durante a redução, o status da sub-rede original somente proxy é DRAINING. Talvez seja necessário executar o comando describe algumas vezes antes que o status da sub-rede original somente de proxy mude para READY.

  5. Depois que a sub-rede somente proxy original for READY com a função BACKUP, ela não será mais usada. Atualize as regras de firewall de permissão de entrada que se aplicam aos endpoints ou VMs de back-end para que incluam o intervalo de endereços IPv4 principal apenas da nova sub-rede somente proxy.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges=NEW_PROXY_ONLY_SUBNET_RANGE
    
  6. Exclua a sub-rede somente proxy original.

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

Migrar a finalidade de uma sub-rede somente proxy

Se você já tiver criado uma sub-rede somente proxy com --purpose=INTERNAL_HTTPS_LOAD_BALANCER, precisará migrar a finalidade da sub-rede para REGIONAL_MANAGED_PROXY antes de criar outros balanceadores de carga baseados no Envoy no mesmo região da rede VPC.

Console

Se você estiver usando o console Google Cloud para criar o balanceador de carga, será necessário migrar a finalidade de uma sub-rede somente proxy criada anteriormente de --purpose=INTERNAL_HTTPS_LOAD_BALANCER para REGIONAL_MANAGED_PROXY ao criar o balanceador de carga.

gcloud

Para alterar a finalidade de uma sub-rede somente proxy atual 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 somente proxy de --purpose=INTERNAL_HTTPS_LOAD_BALANCER para REGIONAL_MANAGED_PROXY não causa nenhuma inatividade. A alteração deve entrar em vigor quase instantaneamente.

Excluir uma sub-rede somente proxy

A exclusão de uma sub-rede somente proxy libera o intervalo de endereço IP principal para que você possa usá-lo para outra finalidade. Google Cloud aplica as seguintes regras quando recebe uma solicitação para excluir uma sub-rede somente proxy:

  • Uma sub-rede somente proxy ativa não poderá ser excluída se houver pelo menos um balanceador de carga regional na mesma região e rede VPC.

  • Uma sub-rede somente proxy ativa não poderá ser excluída se houver uma sub-rede somente proxy de backup na mesma região e rede VPC.

    Se você tentar excluir uma sub-rede somente proxy ativa antes de excluir o backup, a seguinte mensagem de erro será exibida: "Uso inválido de recursos: não é possível excluir uma sub-rede ATIVA porque existe uma sub-rede BACKUP".

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

  • Se nenhum balanceador de carga regional estiver definido em uma determinada região e rede VPC, será possível excluir as sub-redes somente proxy dessa região. Se existir uma sub-rede somente proxy de backup, é preciso excluí-la antes de excluir a sub-rede somente proxy ativa.

  • Se você tiver pelo menos um balanceador de carga regional definido em uma determinada região e rede VPC, não será possível excluir a sub-rede somente proxy ativa. No entanto, será possível promover uma sub-rede somente proxy de backup para o papel "ativa", que rebaixa automaticamente a sub-rede somente proxy alternada de ativa para o papel "de backup". Depois que as conexões forem diminuídas, exclua a sub-rede somente proxy anteriormente ativa.

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

Limitações

As seguintes restrições se aplicam a sub-redes somente proxy:

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

  • Só é possível criar uma sub-rede somente proxy de backup e uma ativa em cada região e rede VPC.

  • Não é possível criar uma sub-rede somente proxy de backup, a menos que você já tenha criado uma sub-rede somente proxy ativa nessa região e rede.

  • Atualize uma sub-rede somente proxy de backup para alterar o papel dela para ativa. Quando você faz isso, Google Cloud automaticamente muda a sub-rede somente proxy que estava ativa para backup. Não é possível definir explicitamente o papel de uma sub-rede somente proxy para de backup atualizando-a.

  • Durante o período de diminuição de conexão de uma sub-rede apenas de proxy (--drain-timeout), não é possível alterar o papel dela de backup para ativo.

  • As sub-redes somente proxy não são compatíveis com registros de fluxo de VPC.

A seguir