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

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 proxies reservados exclusivamente para proxies Envoy usados por balanceadores de carga. Não é possível usá-la para outras finalidades. A qualquer momento, apenas uma sub-rede apenas de proxy pode estar ativa em cada região de uma rede VPC.

Os proxies encerram as conexões de entrada e 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. 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. Os pacotes enviados de um proxy para um endpoint ou VM de back-end têm um endereço IP de origem da sub-rede somente proxy. Os proxies de todos os balanceadores de carga em uma região usam endereços IP internos de um único proxy sub-rede apenas nessa região da sua rede VPC.

É necessário criar sub-redes apenas de proxy, mesmo que sua rede esteja no modo automático ou seja personalizada. 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. O tamanho de sub-rede recomendado é /23 (512 endereços apenas de proxy).

A alocação de proxy está 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.

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

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

Componentes do balanceador de carga HTTP(S) externo regional (clique para ampliar)
Componentes do balanceador de carga HTTP(S) externo regional (clique para ampliar)

O diagrama a seguir mostra os recursos do Google Cloud necessários para um balanceador de carga HTTP(S) interno.

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

Criar uma sub-rede somente proxy

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.

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. Na sub-rede apenas de proxy, o --purpose precisa ser definido como REGIONAL_MANAGED_PROXY.

Em uma determinada rede e região, uma única sub-rede somente proxy de finalidade REGIONAL_MANAGED_PROXY é compartilhada entre todos os balanceadores de carga regionais baseados no Envoy.

Se você já tiver criado uma sub-rede somente proxy com --purpose=INTERNAL_HTTPS_LOAD_BALANCER, será necessário migrar a finalidade da sub-rede para REGIONAL_MANAGED_PROXY antes de criar outro Envoy. balanceadores de carga baseados na mesma região da rede VPC.

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 apenas de proxy na região, o processo de criação do balanceador de carga falhará.

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. Selecione uma Região.
  6. Defina Finalidade como Proxy gerenciado regional.
  7. Digite um Intervalo de endereço IP.
  8. Clique em Add.

gcloud

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

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

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 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 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. Selecione uma Região.
    6. Defina Finalidade como Proxy gerenciado regional.
    7. Em Papel, selecione Backup.
    8. Digite um Intervalo de endereço IP.
    9. Clique em Add.
  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 Activate.
    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

  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=REGIONAL_MANAGED_PROXY \
       --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 endereço IP principal da sub-rede somente proxy de backup.

  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.
  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: como modificar uma sub-rede somente proxy

Nesta seção, incluímos um exemplo de configuração que mostra as etapas necessárias para modificar a sub-rede somente proxy em uma região.

Neste exemplo, presumimos que a sub-rede somente proxy ACTIVE atual chamada proxy-only-subnet-us-west1 tenha um intervalo de endereços IP de 10.129.0.0/23.

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

    gcloud compute networks subnets create new-backup-subnet-us-west1 \
       --purpose=REGIONAL_MANAGED_PROXY \
       --role=BACKUP \
       --region=us-west1 \
       --network=default \
       --range=10.130.0.0/23
    
  2. Atualize a regra de firewall para aceitar as conexões da sub-rede nova.

    gcloud compute firewall-rules update proxy-only-subnet-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-backup-subnet-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 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 \
       --source-ranges 10.130.0.0/23
    
  6. Exclua a sub-rede antiga.

    gcloud compute networks subnets delete proxy-only-subnet-us-west1 \
       --region us-west1
    

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

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.

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

A seguir