Como usar regras de encaminhamento

Uma regra de encaminhamento e seu endereço IP correspondente representam a configuração de front-end de um balanceador de carga do Google Cloud. Para entender melhor as regras de encaminhamento, consulte Conceitos para regras de encaminhamento (link em inglês).

Antes de começar

Antes de adicionar uma regra de encaminhamento, reserve um endereço IP para a regra de encaminhamento. Isso não é obrigatório, mas é uma prática recomendada.

Para balanceadores de carga internos, reserve um endereço IP interno estático.

Para balanceadores de carga externos, reserve um endereço IP externo estático.

Permissões

Para seguir as instruções deste guia, você precisa ter as permissões necessárias.

Para mais informações, consulte estes guias:

Como adicionar uma regra de encaminhamento

Console

Criar uma regra de encaminhamento do balanceador de carga

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique em Criar balanceador de carga.
  3. Selecione um tipo de balanceador de carga e informe o tipo de tráfego e se o balanceador de carga está voltado para a Internet ou é somente interno.
  4. Clique em Continuar.
  5. Clique em Configuração de front-end. Na seção Novo IP do front-end e porta, faça as seguintes alterações:

    1. Name: FORWARDING_RULE_NAME
    2. Sub-rede: SUBNET_OF_YOUR_RESERVED_IP_ADDRESS
    3. No IP interno ou no Endereço IP, selecione o endereço IP pré-reservado.

      Também é possível reservar agora um endereço IP nesta interface do usuário ou usar um endereço IP temporário.

    4. Selecione o protocolo, os números de porta e a versão do IP.

      Somente alguns tipos de balanceadores de carga são compatíveis com o IPv6.

    5. Verifique se há uma marca de seleção azul ao lado da Configuração do front-end antes de continuar. Revise esta etapa se não houver marca.

  6. Clique em Analisar e finalizar. Verifique suas configurações.

  7. Clique em Criar.

gcloud

Crie uma regra de encaminhamento do serviço de back-end. Ao criar a regra de encaminhamento, especifique o endereço IP reservado na sub-rede.

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --global | --region=REGION \
    --load-balancing-scheme=SCHEME \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --address=RESERVED_IP_ADDRESS \
    --ip-protocol=PROTOCOL_TYPE \
    --ports=PORT_NUMBER \
    --backend-service=NAME_OF_BACKEND_SERVICE \
    --backend-service-region=REGION_OF_BACKEND_SERVICE

api

Para um balanceador de carga regional, crie uma regra de encaminhamento regional fazendo uma solicitação POST ao método forwardingRules.insert.

POST https://compute.googleapis.com/compute/v1/projects/[project ID]/regions/us-west1/forwardingRules
{
  "name": "[forwarding rule name]",
  "IPAddress": "[reserved IP address]",
  "IPProtocol": "[protocol type]",
  "ports": [
    "[port number]"
  ],
  "loadBalancingScheme": "[scheme]",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/subnetworks/[subnet name]",
  "network": "https://www.googleapis.com/compute/v1/projects/[project ID]/global/networks/[network name]",
  "backendService": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/backendServices/[backend service name]",
  "networkTier": "PREMIUM | STANDARD"
}
</code></pre>

Para um balanceador de carga global, crie uma regra de encaminhamento global fazendo uma solicitação POST ao método globalForwardingRules.insert.

POST https://compute.googleapis.com/compute/v1/projects/[project ID]/global/forwardingRules
{
  "name": "[forwarding rule name]",
  "IPAddress": "[reserved IP address]",
  "IPProtocol": "[protocol type]",
  "ports": [
    "[port number]"
  ],
  "loadBalancingScheme": "[scheme]",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/subnetworks/[subnet name]
  "network": "https://www.googleapis.com/compute/v1/projects/[project ID]/global/networks/[network name]",
  "backendService": "https://www.googleapis.com/compute/v1/projects/[project ID]/regions/[region]/backendServices/[backend service name]
  "networkTier": "PREMIUM | STANDARD"
}

Como excluir uma regra de encaminhamento

Talvez você precise excluir uma regra de encaminhamento por um dos seguintes motivos:

  • Para substituí-la por uma nova regra de encaminhamento.
  • Para interromper um balanceador de carga por um tempo limitado, sem excluir o balanceador de carga por completo.

Estes são dois motivos pelos quais talvez seja necessário interromper um balanceador de carga sem excluí-lo:

  • Para suspender temporariamente as cobranças do balanceador de carga.
  • Para pausar temporariamente as solicitações recebidas para os back-ends.

Se a regra de encaminhamento apontar para um endereço IP reservado (conforme recomendado), é possível excluir a regra de encaminhamento para interromper um balanceador de carga. Isso interrompe o tráfego para o destino da regra de encaminhamento.

Para excluir uma regra de encaminhamento global:

gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
    --global

Para excluir uma regra de encaminhamento regional:

gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
    --region=REGION

Para reiniciar o balanceador de carga, recrie a regra de encaminhamento e mantenha o mesmo endereço IP, conforme descrito em Como adicionar uma regra de encaminhamento.

Como configurar uma regra de encaminhamento com o Diretório de serviços

É possível registrar regras de encaminhamento do balanceador de carga interno com o Diretório de serviços.

Ao configurar o balanceador de carga TCP/UDP interno ou o balanceador de carga HTTP(S) interno, é possível registrá-lo como um endpoint em um namespace de diretório de serviços e um serviço existentes escolhidos por você. Os aplicativos cliente podem usar o diretório de serviços usando HTTP, gRPC e/ou DNS (se você tiver criado uma zona de DNS do diretório de serviços) para determinar o endereço do serviço de balanceador de carga interno e conectar-se diretamente a ele.

Como registrar um balanceador de carga TCP/UDP interno

Para registrar um balanceador de carga TCP/UDP interno, faça o seguinte:

gcloud

Execute o comando gcloud compute forwarding-rules create e defina a sinalização service-directory-registrations:

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --address=RESERVED_IP_ADDRESS \
    --ip-protocol=PROTOCOL_TYPE \
    --ports=PORT_NUMBER \
    --backend-service=BACKEND_SERVICE_NAME \
    --backend-service-region=REGION
    --service-directory-registrations namespace=SD_NAMESPACE_NAME, \
                        service=SD_SERVICE_NAME

Substitua:

  • FORWARDING_RULE_NAME: um nome para a regra de encaminhamento a ser criada
  • REGION: a região onde criar a regra de encaminhamento
  • NETWORK_NAME: rede em que se aplica essa regra de encaminhamento
  • SUBNET_NAME: a sub-rede em que se aplica essa regra de encaminhamento
  • RESERVED_IP_ADDRESS: o endereço IP que a regra de encaminhamento veicula.
  • PROTOCOL_TYPE: o protocolo IP que a regra veicula
  • PORT_NUMBER: uma lista de portas separadas por vírgula
  • BACKEND_SERVICE_NAME: serviço de back-end de destino que recebe o tráfego.
  • SD_NAMESPACE_NAME: nome do namespace do diretório de serviços em que você quer registrar o balanceador de carga TCP/UDP interno. O projeto do Google Cloud e a região desse namespace são extraídos dessa regra de encaminhamento.
  • SD_SERVICE_NAME: o nome do serviço do diretório de serviços em que você quer registrar o endpoint. Ele precisa estar no nome de namespace do diretório de serviços.

Como registrar um balanceador de carga HTTP(S) interno

Para registrar um balanceador de carga HTTP(S) interno, faça o seguinte:

gcloud

Execute o comando gcloud compute forwarding-rules create e defina a sinalização service-directory-registrations:

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --network=NETWORK_NAME \
    --address=RESERVED_IP_ADDRESS \
    --target-https-proxy=PROXY_NAME \
    --target-https-proxy-region=PROXY_REGION \
    --ports=PORT_NUMBER \
    --service-directory-registrations namespace=SD_NAMESPACE_NAME, \
                        service=SD_SERVICE_NAME

Substitua:

  • FORWARDING_RULE_NAME: um nome para a regra de encaminhamento a ser criada
  • REGION: a região onde criar a regra de encaminhamento
  • NETWORK_NAME: rede em que se aplica essa regra de encaminhamento
  • RESERVED_IP_ADDRESS: o endereço IP que a regra de encaminhamento veicula.
  • PROXY_NAME: proxy de destino que recebe o tráfego
  • PROXY_REGION: região do proxy onde operar
  • PORT_NUMBER: uma lista de portas separadas por vírgula
  • SD_NAMESPACE_NAME: o nome do namespace do diretório de serviços em que você quer registrar o balanceador de carga HTTP(S) interno O projeto do Google Cloud e a região desse namespace são extraídos dessa regra de encaminhamento.
  • SD_SERVICE_NAME: o nome do serviço do diretório de serviços em que você quer registrar o endpoint. Ele precisa estar no nome de namespace do diretório de serviços.

Para informações detalhadas sobre como configurar um balanceador de carga interno com o diretório de serviços, consulte Como configurar um balanceador de carga interno no diretório de serviços.

A seguir