Este documento mostra como criar um Application Load Balancer externo global com um serviço de back-end e um contentor de back-end localizados num projeto diferente daquele onde estão localizados o front-end do Load Balancer e o mapa de URLs. Este modelo de implementação é conhecido como referência de serviços entre projetos.
O exemplo usado neste documento não usa um ambiente de VPC partilhada para configurar referências de serviços entre projetos. Para saber como configurar referências de serviços entre projetos num ambiente de VPC partilhada, consulte o artigo Configure um Application Load Balancer externo global com a VPC partilhada.
Antes de começar
Certifique-se de que a configuração cumpre os seguintes pré-requisitos.
Funções e autorizações de IAM necessárias
Para seguir este guia, tem de ter as seguintes funções do IAM:
Tarefa | Função necessária |
---|---|
Criar um projeto | Função de criador do projeto (roles/resourcemanager.projectCreator )
|
Crie recursos de computação | Função de administrador de rede de computação (roles/compute.networkAdmin )
|
Crie contentores do Cloud Storage | Função de administrador de objetos de armazenamento (roles/storage.objectAdmin )
|
Use um recurso de um projeto diferente (Neste exemplo, o projeto A faz referência ao serviço de back-end e ao contentor de back-end localizados no projeto B.) |
Neste exemplo, um administrador do projeto B tem de conceder a função de utilizador dos serviços de equilibrador de carga do Compute () ( Para saber como atribuir esta função, consulte o artigo Conceda autorizações ao administrador do Compute Load Balancer para usar o serviço de back-end. |
Crie Trusted Cloud by S3NS projetos
Para o exemplo neste documento, siga as instruções duas vezes para criar dois Trusted Cloud by S3NS projetos.
Consola
Para criar um novo projeto, faça o seguinte:
-
Aceda à página Gerir recursos na Trusted Cloud consola.
Os passos restantes aparecem na Trusted Cloud consola.
- Na lista pendente Selecionar organização na parte superior da página, selecione o recurso de organização no qual quer criar um projeto. Se for um utilizador da avaliação gratuita, ignore este passo, uma vez que esta lista não é apresentada.
- Clique em Criar projeto.
- Na janela Novo projeto apresentada, introduza um nome do projeto e selecione uma conta de faturação, conforme aplicável. Um nome de projeto só pode conter letras, números, aspas simples, hífenes, espaços ou pontos de exclamação e tem de ter entre 4 e 30 carateres.
- Introduza a organização principal ou o recurso de pasta na caixa Localização. Esse recurso vai ser o principal hierárquico do novo projeto. Se Nenhuma organização for uma opção, pode selecioná-la para criar o seu novo projeto como o nível superior da sua própria hierarquia de recursos.
- Quando terminar de introduzir os detalhes do novo projeto, clique em Criar.
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para criar um novo projeto, use o comando
gcloud projects create
:gcloud projects create PROJECT_ID
Em que PROJECT_ID é o ID do projeto que quer criar. Um ID do projeto tem de começar com uma letra minúscula e pode conter apenas letras ASCII, dígitos e hífenes, e tem de ter entre 6 e 30 carateres.
Vista geral da configuração
Conforme representado no diagrama seguinte, o front-end e o mapa de URLs de um Application Load Balancer externo global são criados num projeto diferente do serviço de back-end e do contentor de back-end do Load Balancer. Este tipo de implementação entre projetos não usa um ambiente de VPC partilhada.
Nesta configuração, o mapa de URLs encaminha pedidos de conteúdo estático (/images/*
) para um contentor de back-end, enquanto todos os outros pedidos são encaminhados para o serviço de back-end predefinido.
A tabela seguinte oferece uma vista geral dos recursos criados no projeto A e no projeto B. O front-end e o mapa de URLs do balanceador de carga são criados no projeto A, enquanto os componentes de back-end são criados no projeto B.
Recursos criados no projeto A | Recursos criados no projeto B |
---|---|
|
|
Nas secções seguintes, vamos configurar os diferentes recursos indicados na tabela anterior, começando pela configuração de uma rede VPC e de uma sub-rede para as VMs de back-end do equilibrador de carga no projeto B.
Configure uma rede e uma sub-rede para as VMs de back-end do balanceador de carga no projeto B
Para este exemplo, as VMs de back-end são criadas na seguinte rede e sub-rede:
Rede. A rede é uma rede VPC no modo personalizado denominada
lb-network
.Sub-rede para VMs de back-end do balanceador de carga Uma sub-rede denominada
lb-backend-subnet
na regiãous-west1
usa10.1.2.0/24
para o respetivo intervalo de IP principal. Os intervalos de endereços IPv4 primários e secundários de uma sub-rede são endereços IPv4 internos regionais. Para mais informações, consulte o artigo Intervalos IPv4 válidos.
Consola
Na Trusted Cloud consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
Em Nome, introduza
lb-network
.Na secção Sub-redes, defina o Modo de criação de sub-redes como Personalizado.
Na secção Nova sub-rede, introduza as seguintes informações:
- Nome:
lb-backend-subnet
- Selecione uma região:
us-west1
- Intervalo de endereços IP:
10.1.2.0/24
- Nome:
Clique em Concluído.
Clique em Criar.
gcloud
Crie uma rede VPC personalizada, denominada
lb-network
, com o comandogcloud compute networks create
.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=PROJECT_B_ID
Crie uma sub-rede na
lb-network
rede de VPC na regiãous-west1
com o comandogcloud compute networks subnets create
.gcloud compute networks subnets create lb-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --project=PROJECT_B_ID
Configure um serviço de back-end no projeto B
Para configurar um serviço de back-end, tem de fazer o seguinte:
- Crie um modelo de instância.
- Crie um grupo de instâncias.
- Crie uma verificação de funcionamento.
- Crie uma regra de firewall.
- Crie um serviço de back-end.
Crie um modelo de instância
O precursor da criação de um grupo de instâncias geridas é a criação de um modelo de instância, que é um recurso que pode usar para criar instâncias de máquinas virtuais (VMs). O tráfego dos clientes é equilibrado em carga para VMs num grupo de instâncias. O grupo de instâncias gerido fornece VMs que executam os servidores de back-end de um balanceador de carga de aplicações externo. Neste exemplo, os back-ends servem os respetivos nomes de anfitrião.
Consola
Na Trusted Cloud consola, aceda à página Compute Engine Modelos de instâncias.
Clique em Criar modelo de instância.
Em Nome, introduza
backend-template
.Na secção Disco de arranque, certifique-se de que o disco de arranque está definido para uma imagem do Debian, como Debian GNU/Linux 12 (bookworm). Clique em Alterar para alterar a imagem, se necessário.
Expanda a secção Opções avançadas.
Expanda Rede e configure os seguintes campos:
- Para etiquetas de rede, introduza
load-balanced-backend
. - Na secção Interfaces de rede, configure os seguintes campos:
- Rede:
lb-network
- Subnet:
lb-backend-subnet
- Tipo de pilha de IP: IPv4
- Rede:
- Clique em Concluído
- Para etiquetas de rede, introduza
Expanda Gestão. No campo Script de arranque, introduza o seguinte script:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \
Clique em Criar.
gcloud
Crie um modelo de instância.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=us-west1 \ --network=projects/PROJECT_B_ID/global/networks/lb-network \ --subnet=projects/PROJECT_B_ID/regions/us-west1/subnetworks/lb-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \ --project=PROJECT_B_ID
Crie um grupo de instâncias geridas
Consola
Na Trusted Cloud consola, aceda à página Compute Engine Grupos de instâncias.
Clique em Criar grupo de instâncias.
Nas opções, selecione Novo grupo de instâncias gerido (sem estado).
Para o nome do grupo de instâncias, introduza
lb-backend
.Na lista Modelo de instância, selecione o modelo de instância
backend-template
que criou no passo anterior.Na secção Localização, selecione Zona única e introduza os seguintes valores:
Para Região, selecione
us-west1
.Para Zona, selecione
us-west1-a
.
Na secção Ajuste automático de escala, introduza os seguintes valores:
Para o Modo de dimensionamento automático, selecione Ativado: adicionar e remover instâncias do grupo.
Para Número mínimo de instâncias, selecione
2
.Para Número máximo de instâncias, selecione
3
.
Na secção Mapeamento de portas, clique em Adicionar porta e introduza os seguintes valores:
Em Nome da portabilidade, introduza
http
.Em Número da porta, introduza
80
.
Clique em Criar.
gcloud
Crie um grupo de instâncias gerido e selecione o modelo de instância que criou no passo anterior:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --zone=us-west1-a \ --size=2 \ --template=INSTANCE_TEMPLATE_NAME \ --project=PROJECT_B_ID
Adicione uma porta com nome ao grupo de instâncias:
gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \ --named-ports=http:80 \ --zone=us-west1-a \ --project=PROJECT_B_ID
Crie uma verificação de funcionamento
As verificações de funcionamento são testes que confirmam a disponibilidade dos back-ends. Crie uma verificação de funcionamento que use o protocolo HTTP e sondas na porta 80. Mais tarde, vai anexar esta verificação de estado ao serviço de back-end referenciado pelo balanceador de carga.
Consola
Na Trusted Cloud consola, aceda à página Compute Engine Verificações de estado.
Para o nome da verificação de estado, introduza
lb-health-check
.Defina o protocolo como HTTP.
Clique em Criar.
gcloud
Crie uma verificação de funcionamento de HTTP.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=PROJECT_B_ID
Crie uma regra de firewall
Para as sondas de verificação de estado, tem de criar uma regra de firewall de permissão de entrada ao nível da rede, que, para efeitos deste exemplo, é lb-network
. Esta regra de firewall permite que as sondas de verificação de estado alcancem as instâncias de back-end. Este exemplo usa a seguinte regra de firewall:
fw-allow-health-check
. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite todo o tráfego TCP dos sistemas de verificação de funcionamento em Trusted Cloude35.191.0.0/16
.130.211.0.0/22
Este exemplo usa a etiqueta de destinoload-balanced-backend
para identificar as instâncias às quais deve ser aplicada.
Consola
Na Trusted Cloud consola, aceda à página Políticas de firewall.
Clique em Criar regra de firewall para criar a regra que permite ligações SSH de entrada na VM do cliente:
- Nome:
fw-allow-health-check
- Rede:
lb-network
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação:
load-balanced-backend
- Filtro de origem: intervalos IPv4
- Intervalos de IPv4 de origem:
130.211.0.0/22
e35.191.0.0/16
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza
80
para o número da porta. Como prática recomendada, limite esta regra apenas aos protocolos e às portas que correspondam aos usados pela sua verificação de estado. Se usar tcp:80 para o protocolo e a porta, Trusted Cloud by S3NS pode usar HTTP na porta 80 para contactar as suas VMs, mas não pode usar HTTPS na porta 443 para as contactar.
- Nome:
Clique em Criar.
gcloud
Crie a regra de firewall
fw-allow-health-check
para permitir verificações de funcionamentoTrusted Cloud . Este exemplo permite todo o tráfego TCP de sondas de verificação de estado. No entanto, pode configurar um conjunto mais restrito de portas para satisfazer as suas necessidades.gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp \ --project=PROJECT_B_ID
Crie um serviço de back-end
Crie um serviço de back-end global para distribuir o tráfego entre back-ends. Como parte deste passo, tem de atribuir a verificação de estado que criou ao serviço de back-end e adicionar o grupo de instâncias como back-end ao serviço de back-end.
Consola
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
Aceda à secção Back-ends.
Clique em Criar serviço de back-end.
Para o Serviço de back-end global, clique no botão Criar junto ao mesmo.
Para o nome do serviço de back-end, introduza
cross-ref-backend-service
.Para Tipo de back-end, selecione Grupo de instâncias.
Defina o Protocolo como HTTP.
No campo Porta com nome, introduza
http
. Este é o mesmo nome da porta que introduziu ao criar o grupo de instâncias gerido.Para adicionar serviços de back-end ao serviço de back-end, faça o seguinte:
Na secção Back-ends, defina o Grupo de instâncias como
lb-backend
, que é o grupo de instâncias gerido que criou num passo anterior.Para Transferir números, introduza
80
.Para adicionar o back-end, clique em Concluído.
Para adicionar uma verificação de funcionamento, na lista Verificação de funcionamento, selecione
lb-health-check
, que é a verificação de funcionamento que criou anteriormente.Para criar o serviço de back-end, clique em Criar.
gcloud
Crie um serviço de back-end global para distribuir o tráfego entre back-ends:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=HEALTH_CHECK_NAME \ --global \ --project=PROJECT_B_ID
Adicione o seu grupo de instâncias como back-end ao serviço de back-end:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=us-west1-a \ --global \ --project=PROJECT_B_ID
Configure um contentor de back-end no projeto B
Para criar um bucket de back-end, tem de fazer o seguinte:
- Crie o contentor do Cloud Storage.
- Copie conteúdo para o contentor.
- Tornar o contentor acessível publicamente.
- Crie um contentor de back-end e associe-o ao contentor do Cloud Storage.
Crie um contentor do Cloud Storage
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Clique em
Criar.Na caixa Dê um nome ao seu contentor, introduza um nome globalmente exclusivo que siga as diretrizes de nomenclatura.
Clique em Escolher onde quer armazenar os seus dados.
Defina o Tipo de localização como Região.
Na lista de regiões, selecione us-east1.
Clique em Criar.
gcloud
Crie um contentor na região
us-east1
com o comandogcloud storage buckets create
.gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=PROJECT_B_ID
Substitua a variável BUCKET_NAME pelo nome do contentor do Cloud Storage.
Copie um ficheiro gráfico para o seu contentor do Cloud Storage
Execute o seguinte comando no Cloud Shell, substituindo as variáveis do nome do contentor pelo nome exclusivo do seu contentor do Cloud Storage, para copiar o ficheiro gráfico de um contentor do Cloud Storage público para a pasta images/
no seu próprio contentor do Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/
Torne o seu contentor do Cloud Storage publicamente legível
Para tornar todos os objetos num contentor legíveis para todos na Internet pública,
conceda ao principal allUsers
a função de leitor de objetos do armazenamento
(roles/storage.objectViewer
).
Consola
Para conceder a todos os utilizadores acesso à visualização de objetos nos seus contentores, repita o seguinte procedimento para cada contentor:
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que quer tornar público.
Selecione o separador Permissões junto à parte superior da página.
Na secção Autorizações, clique no botão
Conceder acesso. É apresentada a caixa de diálogo Conceder acesso.No campo Novos principais, introduza
allUsers
.No campo Selecionar uma função, introduza
Storage Object Viewer
na caixa de filtro e selecione Visualizador de objetos do Storage nos resultados filtrados.Clique em Guardar.
Clique em Permitir acesso público.
gcloud
Para conceder a todos os utilizadores acesso à visualização de objetos nos seus contentores, execute o comando buckets add-iam-policy-binding
.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Substitua as variáveis do nome do contentor pelos nomes únicos dos seus contentores do Cloud Storage.
Crie um contentor de back-end
Os contentores de back-end funcionam como um wrapper para os contentores do Cloud Storage que criou anteriormente. Direcionam o tráfego recebido para contentores do Cloud Storage.
Consola
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
Aceda à secção Back-ends.
Clique em Criar contentor de back-end.
Introduza um nome para o seu contentor de back-end.
Selecione um contentor do Cloud Storage para direcionar o seu contentor de back-end.
Clique em Criar.
gcloud
Crie um contentor de back-end com o comando gcloud compute backend-buckets create
no projeto B.
gcloud compute backend-buckets create BACKEND_BUCKET_NAME \ --gcs-bucket-name=BUCKET_NAME \ --project=PROJECT_B_ID
Configure os componentes de front-end do balanceador de carga no projeto A
Esta secção mostra como configurar os seguintes componentes de front-end do equilibrador de carga no projeto A:
- Endereço IP
- Certificado SSL
- Mapa do URL
- Proxy de destino
- Regra de encaminhamento
Reserve o endereço IP do balanceador de carga
Reserve um endereço IP externo estático global que possa ser atribuído à regra de encaminhamento do balanceador de carga.
Consola
Na Trusted Cloud consola, aceda à página de endereços IP da VPC.
Clique em Reservar endereço IP estático externo.
Em Nome, introduza
cross-ref-ip-address
.Defina o Nível de serviço de rede como Premium.
Defina a versão do IP como IPv4.
Defina o Tipo como Global.
Clique em Reservar.
gcloud
Crie um endereço IP externo estático global.
gcloud compute addresses create IP_ADDRESS_NAME \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global \ --project=PROJECT_A_ID
Configure um recurso de certificado SSL
Neste exemplo, pode usar HTTP ou HTTPS como o protocolo de pedido e resposta entre o cliente e o balanceador de carga. Para criar um balanceador de carga HTTPS, tem de adicionar um recurso de certificado SSL ao front-end do balanceador de carga.
Crie um recurso de certificado SSL conforme descrito na seguinte documentação:
Recomendamos a utilização de um certificado gerido pela Google.
Depois de criar o certificado, pode anexá-lo ao proxy de destino HTTPS.
Configure os componentes de um Application Load Balancer externo global
Consola
Selecione o tipo de balanceador de carga
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
- Clique em Criar equilibrador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicações (HTTP/HTTPS) e clique em Seguinte.
- Para Público ou interno, selecione Público (externo) e clique em Seguinte.
- Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Seguinte.
- Para Geração do balanceador de carga, selecione Balanceador de carga de aplicações externo global e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Introduza um nome para o balanceador de carga.
- Mantenha a página aberta para continuar.
Configure a interface
Para HTTP:
- Clique em Configuração do front-end.
- Introduza um nome para a regra de encaminhamento.
- Defina o Protocolo como
HTTP
. - Selecione o endereço IP que criou em Reserve o endereço IP do equilibrador de carga.
- Defina a Porta para
80
. - Clique em Concluído.
Para HTTPS:
Se estiver a usar o protocolo HTTPS entre o cliente e o balanceador de carga, precisa de um ou mais recursos de certificado SSL para configurar o proxy. Para obter informações sobre como criar recursos de certificados SSL, consulte o artigo Certificados SSL.
- Clique em Configuração do front-end.
- Introduza um nome para a regra de encaminhamento.
- No campo Protocolo, selecione
HTTPS (includes HTTP/2)
. - Selecione o endereço IP que criou em Reserve o endereço IP do equilibrador de carga.
- Certifique-se de que a Porta está definida como
443
para permitir o tráfego HTTPS. - Clique na lista Certificado.
- Selecione o nome do certificado SSL que criou anteriormente.
- Clique em Concluído.
Configure o back-end
- Clique em Configuração de back-end.
- Clique em Serviços de back-end entre projetos.
- Para o ID do projeto, introduza o ID do projeto para o projeto B.
- Na lista Selecionar serviços de back-end, selecione o serviço de back-end do projeto B que quer usar.
- Clique em OK.
Configure as regras de encaminhamento
Clique em Regras de encaminhamento.
Para o modo, selecione Regra de anfitrião e caminho avançada.
Selecione Adicionar regra de anfitrião e caminho.
No campo Anfitriões, introduza
*
para corresponder a todos os nomes de anfitriões.Na secção Patch matcher, introduza a seguinte configuração YAML.
defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME name: PATH_MATCHER_NAME pathRules: - paths: - /images/* service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
Neste exemplo, a correspondência de caminhos é composta por uma regra de caminho e um serviço predefinido. A regra de caminho encaminha todos os pedidos para
/images/*
para um contentor de back-end. Todos os outros pedidos são encaminhados para o serviço de back-end predefinido.Clique em Concluído.
Para ver informações sobre a gestão do tráfego, consulte o artigo Vista geral da gestão do tráfego.
Reveja e finalize a configuração
Reveja os diferentes componentes do equilibrador de carga que configurou nos passos anteriores. Vai reparar que a secção Back-ends tem referência ao serviço de back-end e ao contentor de back-end.
Clique em Criar.
gcloud
Para criar os componentes de equilíbrio de carga mencionados acima através da CLI gcloud, siga estes passos:
Crie um mapa de URLs com o comando
gcloud compute url-maps create
.gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --global \ --project=PROJECT_A_ID
Adicione um correspondente de caminho para o mapa de URLs. Neste exemplo, o correspondente de caminhos é composto por uma regra de caminho e um serviço predefinido. A regra de caminho encaminha todos os pedidos para
/images/*
para um contentor de back-end. Todos os outros pedidos são encaminhados para o serviço de back-end predefinido.gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
Crie um proxy de destino com o comando
gcloud compute target-http-proxies create
.Para o tráfego HTTP, crie um proxy HTTP de destino para encaminhar pedidos para o mapa de URLs:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --global \ --project=PROJECT_A_ID
Para o tráfego HTTPS, crie um proxy HTTPS de destino para encaminhar pedidos para o mapa de URLs. O proxy é a parte do balanceador de carga que contém o certificado SSL para um balanceador de carga HTTPS. Depois de criar o certificado, pode anexá-lo ao proxy de destino HTTPS.
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE_NAME \ --global \ --project=PROJECT_A_ID
Substitua
CERTIFICATE_NAME
pelo nome do certificado SSL.Crie uma regra de encaminhamento global com o comando
gcloud compute forwarding-rules create
.Para o tráfego HTTP, crie as regras de encaminhamento globais para encaminhar os pedidos recebidos para o proxy HTTP de destino:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --ports=80 \ --project=PROJECT_A_ID
Para o tráfego HTTPS, crie as regras de encaminhamento globais para encaminhar os pedidos recebidos para o proxy HTTPS de destino:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --ports=443 \ --project=PROJECT_A_ID
Teste o balanceador de carga
A configuração do equilibrador de carga pode demorar alguns minutos. Depois, pode enviar um pedido ao equilibrador de carga. Neste exemplo, o pedido é enviado para a regra de encaminhamento HTTP do balanceador de carga.
Obtenha o endereço IP da regra de encaminhamento HTTP do balanceador de carga.
gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \ --global
Se direcionasse o navegador para http://IP_ADDRESS, o pedido seria encaminhado para o serviço de back-end, que devolve uma página com informações mínimas sobre a instância de back-end.
No entanto, se direcionasse o navegador para
http://IP_ADDRESS/images/three-cats.jpg, o pedido para /images/*
é encaminhado para o contentor de back-end, que devolve o ficheiro gráfico.
O que se segue?
- Vista geral do balanceador de carga de aplicações externo
- Certificados SSL
- Limpe uma configuração de equilíbrio de carga