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

Nesta página, você aprenderá a trabalhar com sub-redes apenas de proxy no balanceamento de carga interno HTTP(S). Para uma visão geral do balanceamento de carga HTTP(S) interno, consulte esta página.

A sub-rede apenas de proxy é reservada exclusivamente a proxies de balanceamento de carga interno HTTP(S). Não é possível usá-la para outras finalidades. Somente uma sub-rede apenas de proxy pode estar ativa por região e por rede VPC.

É necessário criar uma sub-rede apenas de proxy antes de gerar regras de encaminhamento para balanceadores de carga internos HTTP(S). Todas as regiões de uma rede privada virtual (VPC) em que você usa balanceadores de carga internos HTTP(S) precisam ter uma sub-rede apenas de proxy.

O balanceador de carga HTTP(S) interno 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 internos HTTP(S) 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 internos HTTP(S) de uma região usam a sub-rede apenas de 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 HTTP(S) internos que estão na mesma região e na mesma rede VPC compartilham proxies para balanceamento de carga.

O diagrama a seguir fornece uma visualização de alto nível do fluxo de tráfego.

Serviços internos com balanceamento de carga baseado na camada 7 (clique para ampliar)
Serviços internos com balanceamento de carga baseado na camada 7 (clique para ampliar)

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 interno HTTP(S).

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

Conforme mostrado no diagrama, uma implantação de balanceador de carga HTTP(S) interno requer pelo menos duas sub-redes:

  • A regra de encaminhamento gerenciada interna do balanceador de carga e os endereços IP de endpoints e VMs de back-end usam uma única sub-rede, que tem 10.1.2.0/24 como principal intervalo de endereço IP. 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.

  • A sub-rede apenas de proxy é 10.129.0.0/23.

Como criar uma sub-rede somente proxy

O procedimento para reservar uma sub-rede em um balanceador de carga interno HTTP(S) é essencialmente o mesmo da criação das sub-redes. No entanto, algumas sinalizações são adicionadas.

Antes de gerar regras de encaminhamento para os balanceadores de carga internos HTTP(S), crie uma sub-rede apenas de proxy para ser usada pelos proxies dos balanceadores. Se você tentar configurar um balanceador de carga interno HTTP(S) sem primeiro gerar 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 HTTP(S) internos. Essa sub-rede é compartilhada por todos os balanceadores de carga HTTP(S) internos 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

Onde:

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

Se você estiver usando o Console do Cloud, poderá criar a sub-rede apenas de proxy na IU de balanceamento de carga, conforme descrito nas seguintes páginas:

Configure uma regra de firewall para que seus back-ends aceitem conexões da sub-rede somente proxy. Consulte a configuração de l7-ilb-firewall em Como configurar regras de firewall.

Disponibilidade do proxy

Às vezes, as regiões do Google Cloud não têm capacidade de proxy suficiente para um novo balanceador de carga HTTP(S) interno. 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.

Quando você quiser modificar a sub-rede apenas de proxy, crie um backup dela. 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. Crie somente uma sub-rede apenas de proxy ativa e uma de backup 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 SUBNET_NAME \
       --purpose=INTERNAL_HTTPS_LOAD_BALANCER \
       --role=BACKUP \
       --region=REGION \
       --network=VPC_NETWORK_NAME \
       --range=CIDR_RANGE
    
  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 \
       --role=ACTIVE \
       --drain-timeout=CONNECTION_DRAINING_TIMEOUT
    

    Substitua os marcadores por valores válidos:

    • BACKUP_PROXY_SUBNET é o nome da sub-rede apenas de proxy 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.

Requisitos e limitações

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

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

  • Antes de criar seu primeiro balanceador de carga HTTP(S) interno em uma determinada região e rede VPC, é preciso já ter uma sub-rede somente proxy ativa nessa região e rede.

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

Exemplo

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

    gcloud compute networks subnets create new-l7ibackend-subnet-us-west1 \
       --purpose INTERNAL_HTTPS_LOAD_BALANCER \
       --role BACKUP \
       --region us-west1 \
       --network default \
       --addresses 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 ativa (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 (em redução) 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 (pronta).

  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 HTTP(S) interno 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 HTTP(S) interno 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 HTTP(S) interno 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.

A seguir