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 do 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 compatíveis

Os seguintes balanceadores de carga 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 regional externo.

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).

Recomendações de 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.

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

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.
    Faça isso neste link
  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 do Google Cloud não têm capacidade de proxy suficiente para um novo balanceador de carga. Se isso acontecer, o console do 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 seja atribuído ao balanceador de carga.

Não é possível expandir uma sub-rede somente de proxy da mesma maneira que você faria para um intervalo de endereços principal (com o comando expand-ip-range). Em vez disso, crie uma rede somente de proxy alternativa que atenda às suas necessidades e depois a promova para o papel ativo. Isso porque somente uma sub-rede apenas de proxy pode estar ativa por região e por rede VPC, e porque só é possível expandir o endereço de intervalo de IPs principal de uma sub-rede.

Alternar uma sub-rede somente proxy de backup para ativa não interrompe novas conexões:

  • A sub-rede somente proxy recém-ativada é usada para novas conexões.
  • A sub-rede somente proxy alternada de ativa para de backup não é mais usada em novas conexões.
  • O Google Cloud começa a diminuir as conexões atuais de proxies na sub-rede apenas de proxy alternada de ativa para backup.

É possível criar apenas uma sub-rede apenas de proxy ativa e uma alternativa por região e por rede VPC.

Console

  1. Crie uma sub-rede somente proxy de backup na mesma região, especificando um intervalo de endereços IP principal que atenda às suas necessidades

    1. No Console do Google Cloud, acesse a página Redes VPC.
      Faça isso neste link
    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. Crie ou modifique as regras de firewall da permissão de entrada aplicáveis aos endpoints ou VMs de back-end para que incluam o intervalo de endereços IP principal da sub-rede somente proxy de backup.

  3. Promova a sub-rede somente proxy de backup para o papel ativo. Essa ação também rebaixa a sub-rede somente proxy anteriormente ativa ao papel de backup:

    1. No Console do Google Cloud, acesse a página Redes VPC.
      Faça isso neste link
    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 a diminuição de conexão expirar ou assim que você estiver confiante de que as conexões nos endpoints ou VMs de back-end não estão vindo de proxies presentes na sub-rede somente proxy de backup, siga estas etapas:

    • Modificar regras de encaminhamento de permissão de entrada que se aplicam a endpoints ou VMs de back-end para que essas regras não incluam o intervalo de endereço IP principal da sub-rede somente proxy (agora sub-rede de backup) anteriormente ativa.
    • Excluir a sub-rede somente proxy (agora de backup) anteriormente ativa. Assim, os endereços IP usados por essa sub-rede no intervalo de endereços IP principal serão liberados.

gcloud

As etapas a seguir pressupõem que você já tem uma sub-rede somente proxy ativa.

  1. Use o comando gcloud compute networks subnets create com a sinalização --role=BACKUP para criar um backup da sub-rede apenas de proxy na mesma região, especificando um intervalo de IPs principal que atenda às suas necessidades.

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

    Substitua:

    • BACKUP_PROXY_ONLY_SUBNET_NAME: nome da sub-rede somente proxy de backup recém-criada.
    • SUBNET_PURPOSE: propósito da sub-rede somente proxy de backup recém-criada
    • REGION: região da sub-rede somente proxy de backup recém-criada. Ela precisa ser a mesma região da sub-rede somente proxy ativa atual.
    • REGION: rede da sub-rede somente proxy de backup recém-criada. Ela precisa ser a mesma rede da sub-rede somente proxy ativa.
    • BACKUP_PROXY_ONLY_SUBNET_RANGE: intervalo CIDR da sub-rede somente proxy de backup recém-criada.
  2. Crie ou modifique as regras de firewall da permissão de entrada aplicáveis aos endpoints ou VMs de back-end para que incluam o intervalo de endereço IP principal da sub-rede somente proxy de backup. A regra de firewall já deve estar aceitando conexões da sub-rede ativa.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Substitua:

    • PROXY_ONLY_SUBNET_FIREWALL_RULE: o nome da regra de firewall que permite que o tráfego da sub-rede somente proxy alcance suas instâncias ou endpoints de back-end.
    • ACTIVE_PROXY_ONLY_SUBNET_RANGE: o intervalo CIDR da sub-rede somente proxy ativa atual.
  3. Atualize a nova sub-rede, configurando-a para ser a sub-rede somente proxy ACTIVE na região e aguardando a redução da sub-rede antiga. Essa ação também rebaixa a sub-rede somente proxy anteriormente ativa ao papel de backup:

    Para diminuir um intervalo de endereços IP imediatamente, defina --drain-timeout como 0s. Isso encerrará de imediato todas as conexões com proxies que tenham endereços atribuídos na sub-rede com a conexão sendo reduzida.

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

    Substitua:

    • CONNECTION_DRAINING_TIMEOUT: tempo em segundos que o Google Cloud usa para migrar as conexões existentes dos proxies na sub-rede apenas de proxy anteriormente ativa.
  4. Use um comando list ou describe para monitorar o status da diminuição. O status da sub-rede é DRAINING enquanto ela está sendo diminuída.

    gcloud compute networks subnets list
    

    Aguarde a conclusão da redução. Quando a conexão da sub-rede somente proxy for diminuída, o status dessa sub-rede será READY.

  5. Atualize a regra de firewall da sub-rede somente proxy para permitir apenas conexões da nova sub-rede.

    gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGE
    
  6. Depois de ter certeza de que as conexões com os endpoints ou VMs de back-end não vêm de proxies na sub-rede somente proxy que antes estava ativa (agora de backup), será possível excluir a sub-rede antiga.

    gcloud compute networks subnets delete ACTIVE_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 do 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. O Google Cloud aplica as regras a seguir 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, o Google Cloud altera automaticamente a sub-rede apenas de proxy que anteriormente 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.

  • O Google Cloud não alerta se os endereços IP da sub-rede apenas de proxy acabarem. No entanto, é possível configurar o Monitoring para fazer o monitoramento do uso do endereço IP da sub-rede somente proxy. É possível definir políticas de alertas para configurar um alerta para a métrica loadbalancing.googleapis.com/subnet/proxy_only/addresses.

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

A seguir