Sub-redes somente proxy para balanceadores de carga HTTP(S) internos

Nesta página, você verá como trabalhar com sub-redes apenas de proxy em balanceadores de carga regionais.

Para uma visão geral do balanceamento de carga HTTP(S) interno, consulte esta página.

Uma sub-rede apenas de proxy é reservada exclusivamente a proxies de balanceador de carga regional. Não é possível usá-la para outras finalidades. Somente uma sub-rede apenas de proxy pode estar ativa para cada rede VPC em cada região.

É necessário criar uma sub-rede apenas de proxy antes de gerar regras de encaminhamento para balanceadores de carga. Cada região de uma rede VPC em que você usa balanceadores de carga regionais precisa ter uma sub-rede somente proxy.

O balanceador de carga regional fornece um pool de proxies para sua rede. Os proxies avaliam para onde cada solicitação HTTP(S) 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. 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. Os proxies de todos os balanceadores de carga regionais em uma região usam endereços IP internos de uma sub-rede apenas de proxy nessa região da rede VPC. Uma sub-rede apenas de proxy precisa fornecer 64 ou mais endereços IP. Isso corresponde a um comprimento de prefixo de /26 ou mais curto.

Somente os proxies criados pelo Google Cloud para os balanceadores de carga regionais de uma região usam a sub-rede somente proxy. 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.

Cada proxy detecta o endereço IP e a porta especificados pela regra de encaminhamento do balanceador de carga correspondente. 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 alocação de proxy está no nível da VPC, não no nível do balanceador de carga. Isso significa que vários balanceadores de carga regionais que estão na mesma região e rede VPC compartilham proxies para balanceamento de carga.

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

Veja no diagrama a seguir os recursos do Google Cloud necessários em um balanceador de carga regional.

Componentes numerados do balanceamento de carga HTTP(S) interno (clique para ampliar)
Componentes numerados do balanceador de carga HTTP(S) interno (clique para ampliar)

Conforme mostrado no diagrama, uma implantação de balanceador de carga regional 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 HTTP(S) internos, o endereço IP do balanceador de carga associado à regra de encaminhamento também precisa estar nessa sub-rede.
  • A sub-rede somente proxy é "10.129.0.0/23" (neste exemplo).
  • Como criar uma sub-rede somente proxy

    O procedimento para reservar uma sub-rede em um balanceador de carga regional é basicamente o mesmo para criar qualquer sub-rede. No entanto, algumas sinalizações são adicionadas.

    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 HTTP(S) interno. Isso é necessário em parte porque o comando subnets update não permite modificar o campo --purpose da sub-rede. Na sub-rede apenas de proxy, o --purpose precisa ser definido como INTERNAL_HTTPS_LOAD_BALANCER.

    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 regional sem antes criar uma sub-rede apenas de proxy na região, o processo de criação do balanceador de carga falhará.

    Crie uma sub-rede somente proxy em cada região de uma rede virtual (VPC) em que você usa balanceadores de carga regionais. Essa sub-rede é compartilhada por todos os balanceadores de carga regionais na região.

    É necessário criar sub-redes apenas de proxy, mesmo que sua rede esteja no modo automático ou seja personalizada. O tamanho de sub-rede recomendado é /23 (512 endereços apenas de proxy). Ele precisa ser pelo menos /26 (64 endereços apenas de proxy).

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

    gcloud compute networks subnets create SUBNET_NAME \
        --purpose= INTERNAL_HTTPS_LOAD_BALANCER \
        --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;
    • 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.

    Defina a sinalização --purpose com o tipo correto de balanceador de carga, da seguinte maneira:

    • Balanceador de carga HTTP(S) externo regional: use --purpose=REGIONAL_MANAGED_PROXY.
    • Balanceador de carga HTTP(S) interno: use --purpose=INTERNAL_HTTPS_LOAD_BALANCER.

    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. Consulte a configuração de fw-allow-proxies em Como configurar regras de firewall.

    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 regional. Se isso acontecer, o Console do 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 você alterar o número de back-ends na implantação, talvez seja necessário modificar o tamanho ou o intervalo de endereços da sub-rede apenas de proxy.

    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 intervalo de IPs principal de uma sub-rede.

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

    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_SUBNET \
         --purpose=INTERNAL_HTTPS_LOAD_BALANCER \
         --role=BACKUP \
         --region=REGION \
         --network=VPC_NETWORK_NAME \
         --range=CIDR_RANGE
      

      Defina a sinalização --purpose com o tipo correto de balanceador de carga, da seguinte maneira:

      • Balanceador de carga HTTP(S) externo regional: use --purpose=REGIONAL_MANAGED_PROXY.
      • Balanceador de carga HTTP(S) interno: use --purpose=INTERNAL_HTTPS_LOAD_BALANCER.
    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 IPs principal do backup da sub-rede apenas de proxy.

    3. O comando gcloud a seguir promove um backup da sub-rede apenas de proxy para o papel de ativo e rebaixa a sub-rede apenas de proxy anteriormente ativa para o papel de backup:

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

      Substitua:

      • BACKUP_PROXY_SUBNET: o nome da sub-rede somente proxy de backup recém-criada.
      • REGION: a região da sub-rede somente proxy de backup recém-criada.
      • CONNECTION_DRAINING_TIMEOUT: o tempo em segundos que o Google Cloud usa para migrar conexões atuais de proxies na sub-rede apenas de proxy anteriormente ativa.

      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.
    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 IP principal da sub-rede somente proxy alternada de ativa para de backup.
      • Excluir a sub-rede apenas de proxy alternada de ativa para backup. Assim, os endereços IP usados por essa sub-rede no intervalo de endereços IP principal serão liberados.

    Exemplo

    1. Crie uma sub-rede somente proxy de backup dedicada à região.

      Defina a sinalização --purpose com o tipo correto de balanceador de carga, da seguinte maneira:

      • Balanceador de carga HTTP(S) regional regional: use --purpose=REGIONAL_MANAGED_PROXY.
      • Balanceador de carga HTTP(S) interno: use --purpose=INTERNAL_HTTPS_LOAD_BALANCER.

      gcloud compute networks subnets create new-l7ilb-backend-subnet-us-west1 \
         --purpose=INTERNAL_HTTPS_LOAD_BALANCER \
         --role=BACKUP \
         --region=us-west1 \
         --network=default \
         --range=10.130.0.0/23
      

    2. Atualize seu firewall de back-end para aceitar conexões da nova sub-rede.

      gcloud compute firewall-rules update l7-ilb-firewall \
         --source-ranges 10.129.0.0/23,10.130.0.0/23
      
    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.

      gcloud compute networks subnets update new-l7ilb-ip-range-us-west1 \
         --drain-timeout 1h --role ACTIVE
      

      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.

    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 sua regra de firewall de back-end para permitir apenas conexões da nova sub-rede.

      gcloud compute firewall-rules update l7-ilb-firewall \
         --source-ranges 10.130.0.0/23
      
    6. Exclua a sub-rede antiga.

      gcloud compute networks subnets delete l7ilb-ip-range-us-west1 \
         --region us-west1
      

    Como excluir uma sub-rede somente proxy

    A exclusão de uma sub-rede somente proxy libera o intervalo de 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 apenas de 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.

    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.

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

    A seguir