Este tutorial mostra como configurar uma aplicação global do App Hub para vários projetos e, em seguida, ver os recursos da aplicação. Usando vários projetos de serviço, configura um Application Load Balancer interno num ambiente de VPC partilhada. Em seguida, numa aplicação global no projeto de anfitrião do App Hub, regista e monitoriza todos os recursos de infraestrutura dos projetos de serviço como serviços e cargas de trabalho do App Hub.
Este tutorial destina-se a pessoas que configuram e administram o App Hub. Deve ter alguma experiência com o Cloud Load Balancing.
Objetivos
- Configure uma aplicação do Global App Hub que contenha recursos que abrangem vários projetos.
- Monitorize os recursos através das métricas do sistema para a aplicação.
Custos
Para uma estimativa do custo dos Google Cloud recursos que a solução de VM gerida com balanceamento de carga usa, consulte a estimativa pré-calculada na Google Cloud calculadora de preços.
Use a estimativa como ponto de partida para calcular o custo da implementação. Pode modificar a estimativa para refletir quaisquer alterações de configuração que planeie fazer aos recursos usados na solução.
A estimativa pré-calculada baseia-se em pressupostos para determinados fatores, incluindo o seguinte:
- As Google Cloud localizações onde os recursos são implementados.
- O tempo durante o qual os recursos são usados.
Para mais informações sobre os custos do App Hub, consulte a página de Preços.
Antes de começar
Antes de configurar este tutorial, decida as funções e as autorizações dos seus projetos e, em seguida, crie quatro projetos. Google Cloud Um destes projetos é o projeto anfitrião do App Hub e os outros três são projetos de serviço do App Hub.Funções e autorizações necessárias
Se for o criador do projeto, é-lhe atribuída a
função básica de proprietário
(roles/owner
). Por predefinição, esta função de Identity and Access Management (IAM)
inclui as autorizações necessárias para acesso total à maioria dos Google Cloud
recursos.
Se não for o criador do projeto, as autorizações necessárias têm de ser concedidas no projeto ao principal adequado. Por exemplo, um principal pode ser uma Conta Google (para utilizadores finais) ou uma conta de serviço (para aplicações e cargas de trabalho).
Para receber as autorizações de que precisa para gerir o acesso a um projeto, uma pasta ou uma organização, peça ao seu administrador para lhe conceder as seguintes funções do IAM no recurso para o qual quer gerir o acesso (projeto, pasta ou organização):
-
Para gerir o acesso a um projeto:
-
Administrador do App Hub (
roles/apphub.admin
) -
Cloud Infrastructure Manager (
roles/config.admin
) -
Função de administrador da VPC partilhada do Compute (
roles/compute.xpnAdmin
) -
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) -
Administrador de utilização de serviços (
roles/serviceusage.services.enable
) -
Administrador da conta de serviço (
roles/iam.serviceAccounts.create
)
-
Administrador do App Hub (
-
Para gerir o acesso a uma pasta:
Função de administrador da VPC partilhada do Compute (
roles/compute.xpnAdmin
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie projetos de anfitrião e de serviço do App Hub
Consola
Na Google Cloud consola, aceda à página do seletor de projetos.
Selecione ou crie um Google Cloud projeto para ser o projeto anfitrião do App Hub.
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Na mesma pasta que o projeto anfitrião do App Hub, crie três novos Google Cloud projetos. Estes são os projetos de serviço do App Hub para o projeto anfitrião do App Hub.
Certifique-se de que a faturação está ativada para todos os seus Google Cloud projetos.
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.
Certifique-se de que tem instalada a versão mais recente da Google Cloud CLI. Execute o seguinte comando a partir do Cloud Shell:
gcloud components update
Crie ou selecione um novo projeto,
HOST_PROJECT_ID
, para ser o projeto anfitrião do App Hub.Crie um Google Cloud projeto:
gcloud projects create HOST_PROJECT_ID
Selecione o Google Cloud projeto que criou:
gcloud config set project HOST_PROJECT_ID
Certifique-se de que a faturação está ativada para todos os seus Google Cloud projetos.
Ative as APIs App Hub, Compute Engine, Service Management e Service Usage:
gcloud services enable apphub.googleapis.com \ compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Crie três novos Google Cloud projetos para serem os projetos de serviço do App Hub para o projeto anfitrião do App Hub.
Crie um projeto de serviço:
gcloud projects create SERVICE_PROJECT_1_ID
Substitua
SERVICE_PROJECT_1_ID
pelo ID do projeto de serviço 1.Selecione o projeto de serviço que criou:
gcloud config set project SERVICE_PROJECT_1_ID
Ative as APIs Compute Engine, Service Management e Service Usage:
gcloud services enable compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Defina a variável de configuração usada neste tutorial:
export SERVICE_PROJECT_1_NUMBER= $(gcloud projects describe $(gcloud config get-value project) --format='value(projectNumber)')
Repita estes passos anteriores para criar SERVICE_PROJECT_2_ID e SERVICE_PROJECT_3_ID, ative as APIs e defina a variável de configuração.
Prepare o ambiente
Se já tiver um balanceador de carga de aplicações interno num ambiente de VPC partilhada configurado em vários projetos, avance para a secção Conceda autorizações de IAM neste documento.
Caso contrário, para configurar um Application Load Balancer interno num ambiente de VPC partilhada, siga estes passos:
- No projeto de serviço 1, configure uma rede de VPC partilhada e duas sub-redes.
- No projeto de serviço 2, crie o serviço de back-end do balanceador de carga com dois grupos de instâncias geridos como back-ends.
- No projeto de serviço 3, crie outro serviço de back-end do balanceador de carga com dois grupos de instâncias geridos como back-ends.
- No projeto de serviço 1, crie os componentes de front-end do equilibrador de carga e o mapa de URLs.
Segue-se o fluxo de processamento de pedidos da topologia que a solução de VM gerida com balanceamento de carga implementa.
A partir da rede de VPC partilhada, a VM do cliente faz um pedido HTTP ao balanceador de carga de aplicações interno no projeto de serviço 1.
O balanceador de carga usa as informações no mapa de URLs e nos serviços de back-end para encaminhar o pedido para os back-ends do grupo de instâncias gerido.
Configure a rede e as sub-redes no projeto anfitrião da VPC partilhada
Precisa de uma rede VPC partilhada com duas sub-redes: uma para o front-end e os back-ends do balanceador de carga e outra para os proxies do balanceador de carga.
Este exemplo usa a seguinte rede, região e sub-redes:
Rede. A rede tem o nome
lb-network
.Sub-rede para a interface e os back-ends do balanceador de carga. Uma sub-rede denominada
lb-frontend-and-backend-subnet
na regiãous-west1
usa10.1.2.0/24
para o respetivo intervalo de IP principal.Sub-rede para proxies. Uma sub-rede denominada
proxy-only-subnet
na regiãous-west1
usa10.129.0.0/23
para o respetivo intervalo de IP principal.
Neste tutorial, designe o projeto de serviço 1 como o projeto anfitrião de VPC partilhada. Todos os passos nesta secção têm de ser realizados no projeto de serviço 1.
Configure a sub-rede para o front-end e os back-ends do balanceador de carga
Não tem de realizar este passo sempre que quiser criar um novo equilibrador de carga. Só tem de garantir que os projetos de serviço têm acesso a uma sub-rede na rede de VPC partilhada (além da sub-rede apenas de proxy).
Consola
- Na Google Cloud consola, aceda à página Redes VPC.
- Clique em Criar rede de VPC.
- No campo Nome, introduza
lb-network
. - Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).
Na secção Nova sub-rede, introduza as seguintes informações:
Nome:
lb-frontend-and-backend-subnet
Região:
us-west1
Intervalo de endereços IP:
10.1.2.0/24
Clique em Concluído.
Clique em Criar.
gcloud
Defina o projeto como Projeto de serviço 1:
gcloud config set project SERVICE_PROJECT_1_ID
Crie uma rede VPC com o comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crie uma sub-rede na rede
lb-network
na regiãous-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Configure a sub-rede só de proxy
A sub-rede apenas de proxy é usada por todos os equilibradores de carga baseados no Envoy regionais na região us-west1
, na rede VPC lb-network
. Só pode existir uma sub-rede só de proxy ativa por região e por rede.
Não execute este passo se já existir uma sub-rede só de proxy reservada na região us-west1
nesta rede.
Consola
- Na Google Cloud consola, aceda à página Redes VPC.
- Clique no nome da rede VPC partilhada:
lb-network
. - Clique no separador Sub-redes e clique em Adicionar sub-rede.
- No painel Adicionar uma sub-rede, no campo Nome, introduza
proxy-only-subnet
. - Na lista Região, selecione
us-west1
. - Defina Purpose como Regional Managed Proxy.
- No campo Intervalo de endereços IP, introduza
10.129.0.0/23
. - Clique em Adicionar.
gcloud
Crie a sub-rede só de proxy com o comando gcloud compute networks subnets
create
:
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Conceda aos administradores do projeto de serviço acesso à sub-rede de back-end
Os administradores do projeto de serviço precisam de acesso à sub-rede lb-frontend-and-backend-subnet
para poderem aprovisionar os back-ends do balanceador de carga.
Um administrador da VPC partilhada tem de conceder acesso à sub-rede de back-end aos administradores do projeto de serviço (ou aos programadores que implementam recursos e back-ends que usam a sub-rede). Para ver instruções, consulte o artigo Administradores do projeto de serviço para algumas sub-redes.
Configure regras de firewall no projeto de serviço 1
Este exemplo usa as seguintes regras 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 Google 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.fw-allow-proxies
. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite o tráfego TCP nas portas80
,443
e8080
dos proxies geridos do balanceador de carga. Este exemplo usa a etiqueta de destinoload-balanced-backend
para identificar as instâncias às quais deve aplicar-se.fw-allow-ssh
. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite a conetividade SSH de entrada na porta TCP22
a partir de qualquer endereço. Pode escolher um intervalo de IPs de origem mais restritivo para esta regra. Por exemplo, pode especificar apenas os intervalos de IP do sistema a partir do qual inicia sessões SSH. Este exemplo usa a etiquetaallow-ssh
de destino para identificar as máquinas virtuais (VMs) às quais a regra de firewall se aplica.
Sem estas regras de firewall, a regra de negação predefinida de entrada bloqueia o tráfego de entrada para as instâncias de back-end.
Consola
Na Google Cloud consola, aceda à página Políticas de firewall.
- Clique em Criar regra de firewall para criar a regra que permite Google Cloud verificações de funcionamento:
- Nome:
fw-allow-health-check
- Rede:
lb-network
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação:
load-balanced-backend
- Filtro de origem: intervalos de 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 introduza
80
para o número da porta.
Como prática recomendada, limite esta regra apenas aos protocolos e portas que correspondam aos usados pela sua verificação de funcionamento. Se usar
tcp:80
para o protocolo e a porta, Google Cloud pode usar HTTP na porta80
para contactar as suas VMs, mas não pode usar HTTPS na porta443
para as contactar. - Clique em Criar.
- Clique em Criar regra de firewall para criar a regra que permite Google Cloud verificações de funcionamento:
- Nome:
fw-allow-proxies
- Rede:
lb-network
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação:
load-balanced-backend
- Filtro de origem: intervalos de IPv4
- Intervalos IPv4 de origem:
10.129.0.0/23
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e introduza
80, 443, 8080
para os números das portas.
- Clique em Criar.
- Clique em Criar regra de firewall para criar a regra que permite Google Cloud verificações de funcionamento:
- Nome:
fw-allow-ssh
- Rede:
lb-network
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação:
allow-ssh
- Filtro de origem: intervalos de IPv4
- Intervalos IPv4 de origem:
0.0.0.0/0
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e introduza
22
para o número da porta.
- Clique em Criar.
gcloud
Crie a regra de firewall
fw-allow-health-check
para permitir verificações de funcionamentoGoogle 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 fw-allow-health-check \ --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
Crie a regra de firewall
fw-allow-proxies
para permitir o tráfego da sub-rede só de proxy do Envoy para alcançar os seus back-ends:gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Crie a regra de firewall
fw-allow-ssh
para permitir a conetividade SSH a VMs com a etiqueta de redeallow-ssh
:gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Reserve um endereço IPv4 interno estático
Os administradores do projeto de serviço podem reservar um endereço IPv4 ou IPv6 interno numa sub-rede de uma rede de VPC partilhada. O objeto de configuração do endereço IP é criado no projeto de serviço, enquanto o respetivo valor provém do intervalo de endereços IPv4 disponíveis na sub-rede partilhada escolhida.
Para reservar um endereço IP interno autónomo no projeto de serviço, conclua os seguintes passos.
Consola
- Configure a VPC partilhada.
Na Google Cloud consola, aceda à página VPC partilhada.
Inicie sessão como administrador da VPC partilhada.
Selecione o projeto de serviço no seletor de projetos.
Aceda a Rede VPC >Endereços IP.
Na página Endereços IP, clique em Reservar endereço IP estático interno.
No campo Nome, introduza
l7-ilb-ip-address
como o nome do endereço IP.Na lista Versão do IP, selecione IPv4.
Em Rede, selecione
lb-network
.Nas listas Sub-rede, selecione
lb-frontend-and-backend-subnet
.Clique em Reservar.
gcloud
Se ainda não o fez, autentique-se na CLI do Google Cloud como administrador do projeto de serviço da VPC partilhada.
gcloud auth login SERVICE_PROJECT_ADMIN
Substitua
SERVICE_PROJECT_ADMIN
pelo nome do administrador do projeto de serviço da VPC partilhada. Estes valores têm de ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.Use o comando
compute addresses create
para reservar um endereço IP:gcloud compute addresses create l7-ilb-ip-address \ --project SERVICE_PROJECT_1_ID \ --subnet=lb-frontend-and-backend-subnet \ --region=us-west1 \ --ip-version=IPV4
Os detalhes adicionais para criar endereços IP são publicados na documentação do SDK.
Configure a VPC partilhada no projeto de serviço 1
Para configurar a VPC partilhada no projeto de serviço 1, designa o projeto de serviço 1 como o projeto anfitrião da VPC partilhada e os projetos de serviço 2 e 3 como os projetos de serviço da VPC partilhada. Mais adiante neste tutorial, quando criar os back-ends do MIG nos projetos de serviço 2 e 3, vai poder usar a mesma rede VPC e sub-redes criadas anteriormente no projeto de serviço 1.
- Ative um projeto anfitrião.
- Anexe um projeto de serviço.
Conceda a função de utilizador da rede de computação (
roles/compute.networkUser
) aos projetos de serviço 2 e 3:Consola
Na Google Cloud consola, aceda à página IAM.
Clique em
Conceder acesso. O painel Conceder acesso é aberto.No campo Novos principais, introduza
SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com
.Tenha em atenção que pode obter os números dos projetos de serviço no Painel de controlo do projeto:
Clique em Selecionar uma função e, no campo Filtro, introduza
Compute Network User
.Selecione a função Utilizador da rede de computação e clique em Guardar.
Repita os passos anteriores para conceder a função
Compute Network User
ao Service Project 3 (SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com
).
gcloud
No projeto de serviço 1, conceda a função de utilizador da rede de computação ao projeto de serviço 2.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \ --member='serviceAccount:SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com' \ --role='roles/compute.networkUser'
Substitua
SERVICE_PROJECT_2_NUMBER
pelo número do projeto do projeto de serviço 2.No projeto de serviço 1, conceda a função de utilizador da rede de computação ao projeto de serviço 3.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \ --member='serviceAccount::SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com' \ --role='roles/compute.networkUser'
Substitua
SERVICE_PROJECT_3_NUMBER
pelo número do projeto do projeto de serviço 3.
Crie um serviço de back-end e MIGs no projeto de serviço 2
Todos os passos nesta secção têm de ser realizados no projeto de serviço 2.
Consola
Crie um modelo de instância. Na Google Cloud consola, aceda à página Modelos de instâncias.
- Clique em Criar modelo de instância.
- Introduza um Nome para o modelo de instância:
tutorial-ig-template-sp2
. - Na secção Localização, selecione Regional (recomendado) e us-west1(Oregão) como a Região.
- Na secção Configuração da máquina, selecione N2 como a série.
- Certifique-se de que o Disco de arranque está definido para uma imagem Debian, como
Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como
apt-get
. Se precisar de alterar o Disco de arranque, clique em Alterar.- Em Sistema operativo, selecione Debian.
- Para Versão, selecione uma das imagens Debian disponíveis, como Debian GNU/Linux 12 (bookworm).
- Clique em Selecionar.
- Clique em Opções avançadas e, de seguida, em Redes.
- Introduza as seguintes etiquetas de rede:
allow-ssh
eload-balanced-backend
. - Na secção Interfaces de rede, selecione Redes partilhadas comigo (do projeto anfitrião: SERVICE_PROJECT_1_ID).
- Selecione a sub-rede
lb-frontend-and-backend-subnet
na redelb-network
. - Clique em Gestão. Para Gestão, insira o seguinte script no campo Script de arranque.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | tee /var/www/html/index.html systemctl restart apache2
- Clique em Criar.
Crie um grupo de instâncias gerido. Na Google Cloud consola, aceda à página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Escolha Novo grupo de instâncias gerido (sem estado). Para mais informações, consulte o artigo Grupos de instâncias geridos sem estado ou com estado.
- Introduza um Nome para o grupo de instâncias:
tutorial-sp2-mig-a
. - Para Modelo de instância, selecione tutorial-ig-template-sp2.
- Para Localização, selecione Zona única.
- Para Região, selecione
us-west1
. Especifique o número de instâncias que quer criar no grupo.
Para este exemplo, especifique as seguintes opções para o dimensionamento automático:
- Para o Modo de ajuste automático de escala, selecione
Off:do not autoscale
. - Para Número máximo de instâncias, introduza
2
.
- Para o Modo de ajuste automático de escala, selecione
Clique em Criar.
Crie um serviço de back-end regional. Como parte deste passo, também vamos criar a verificação de funcionamento e adicionar back-ends ao serviço de back-end. Na Google Cloud consola, aceda à página Back-ends.
- Clique em Criar serviço de back-end.
- Na caixa de diálogo Criar serviço de back-end, clique em Criar junto a Serviço de back-end regional.
- Introduza um Nome para o serviço de back-end:
tutorial-backend-service-sp2
. - Para Região, selecione us-west1.
- Para Tipo de balanceador de carga, selecione Balanceador de carga de aplicações interno regional (INTERNAL_MANAGED).
- Defina o Tipo de back-end como Grupo de instâncias.
- Na secção Back-ends, defina os seguintes campos:
- Defina Grupo de instâncias como tutorial-sp2-mig-a.
- Introduza os números de porta:
80
. - Defina o Modo de equilíbrio como Utilização.
- Clique em Concluído.
- Na secção Verificação de estado, clique em Criar uma verificação de estado
e defina os seguintes campos:
- Nome:
tutorial-regional-health-check
- Protocolo:
HTTP
- Porta:
80
- Clique em Guardar.
- Nome:
- Clique em Continuar.
- Clique em Criar.
Repita os passos anteriores e crie um grupo de instâncias gerido,
tutorial-sp2-mig-b
e adicione-o ao serviço de back-endtutorial-backend-service-sp2
.
gcloud
- Selecione o projeto de serviço que criou:
gcloud config set project SERVICE_PROJECT_2_ID
Crie um modelo de instância de VM,
tutorial-ig-template-sp2
com um servidor HTTP:gcloud compute instance-templates create tutorial-ig-template-sp2 \ --region=us-west1 \ --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \ --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=allow-ssh,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 vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_2_ID
Substitua o seguinte:
SERVICE_PROJECT_1_ID
: o ID do projeto do projeto anfitrião da VPC partilhada.SERVICE_PROJECT_2_ID
: o ID do projeto do projeto de serviço, onde os back-ends do balanceador de carga e o serviço de back-end estão a ser criados.
Crie um grupo de instâncias gerido,
tutorial-sp2-mig-a
na região:gcloud compute instance-groups managed create tutorial-sp2-mig-a \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp2 \ --project=SERVICE_PROJECT_2_ID
Defina a verificação de funcionamento de HTTP,
tutorial-regional-health-check
:gcloud compute health-checks create http tutorial-regional-health-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_2_ID
Defina o serviço de back-end,
tutorial-backend-service-sp2
:gcloud compute backend-services create tutorial-backend-service-sp2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=tutorial-regional-health-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_2_ID
Adicione back-ends ao serviço de back-end com o comando
gcloud compute backend-services add-backend
:gcloud compute backend-services add-backend tutorial-backend-service-sp2 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp2-mig-a \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_2_ID
Crie outro grupo de instâncias geridas,
tutorial-sp2-mig-b
na região:gcloud compute instance-groups managed create tutorial-sp2-mig-b \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp2 \ --project=SERVICE_PROJECT_2_ID
Adicione back-ends ao serviço de back-end:
gcloud compute backend-services add-backend tutorial-backend-service-sp2 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp2-mig-b \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_2_ID
Crie um serviço de back-end e MIGs no projeto de serviço 3
Todos os passos nesta secção têm de ser realizados no projeto de serviço 3.
Consola
Crie um modelo de instância. Na Google Cloud consola, aceda à página Modelos de instâncias.
- Clique em Criar modelo de instância.
- Introduza um Nome para o modelo de instância:
tutorial-ig-template-sp3
. - Na secção Localização, selecione Regional (recomendado) e us-west1(Oregão) como a Região.
- Na secção Configuração da máquina, selecione N2 como a série.
- Certifique-se de que o Disco de arranque está definido para uma imagem Debian, como
Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como
apt-get
. Se precisar de alterar o Disco de arranque, clique em Alterar.- Em Sistema operativo, selecione Debian.
- Para Versão, selecione uma das imagens Debian disponíveis, como Debian GNU/Linux 12 (bookworm).
- Clique em Selecionar.
- Clique em Opções avançadas e, de seguida, em Redes.
- Introduza as seguintes etiquetas de rede:
allow-ssh
eload-balanced-backend
. - Na secção Interfaces de rede, selecione Redes partilhadas comigo (do projeto anfitrião: SERVICE_PROJECT_1_ID).
- Selecione a sub-rede
lb-frontend-and-backend-subnet
na redelb-network
. - Clique em Gestão. Para Gestão, insira o seguinte script no campo Script de arranque.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | tee /var/www/html/index.html systemctl restart apache2
- Clique em Criar.
Crie um grupo de instâncias gerido. Na Google Cloud consola, aceda à página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Escolha Novo grupo de instâncias gerido (sem estado). Para mais informações, consulte o artigo Grupos de instâncias geridos sem estado ou com estado.
- Introduza um Nome para o grupo de instâncias:
tutorial-sp3-mig-a
. - Para Modelo de instância, selecione tutorial-ig-template-sp3.
- Para Localização, selecione Zona única.
- Para Região, selecione
us-west1
. Especifique o número de instâncias que quer criar no grupo.
Para este exemplo, especifique as seguintes opções para o dimensionamento automático:
- Para o Modo de ajuste automático de escala, selecione
Off:do not autoscale
. - Para Número máximo de instâncias, introduza
2
.
- Para o Modo de ajuste automático de escala, selecione
Clique em Criar.
Crie um serviço de back-end regional. Como parte deste passo, também vamos criar a verificação de funcionamento e adicionar back-ends ao serviço de back-end. Na Google Cloud consola, aceda à página Back-ends.
- Clique em Criar serviço de back-end.
- Na caixa de diálogo Criar serviço de back-end, clique em Criar junto a Serviço de back-end regional.
- Introduza um Nome para o serviço de back-end:
tutorial-backend-service-sp3
. - Para Região, selecione us-west1.
- Para Tipo de balanceador de carga, selecione Balanceador de carga de aplicações interno regional (INTERNAL_MANAGED).
- Defina o Tipo de back-end como Grupo de instâncias.
- Na secção Back-ends, defina os seguintes campos:
- Defina Grupo de instâncias como tutorial-sp3-mig-a.
- Introduza os números de porta:
80
. - Defina o Modo de equilíbrio como Utilização.
- Clique em Concluído.
- Na secção Verificação de estado, clique em Criar uma verificação de estado
e defina os seguintes campos:
- Nome:
tutorial-regional-health-check
- Protocolo:
HTTP
- Porta:
80
- Clique em Guardar.
- Nome:
- Clique em Continuar.
- Clique em Criar.
Repita os passos anteriores e crie um grupo de instâncias gerido,
tutorial-sp3-mig-b
e adicione-o ao serviço de back-endtutorial-backend-service-sp3
.
gcloud
- Selecione o projeto de serviço que criou:
gcloud config set project SERVICE_PROJECT_3_ID
Crie um modelo de instância de VM,
tutorial-ig-template-sp3
com um servidor HTTP:gcloud compute instance-templates create tutorial-ig-template-sp3 \ --region=us-west1 \ --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \ --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=allow-ssh,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 vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_3_ID
Substitua o seguinte:
SERVICE_PROJECT_1_ID
: o ID do projeto do projeto anfitrião da VPC partilhada.SERVICE_PROJECT_3_ID
: o ID do projeto do projeto de serviço, onde os back-ends do balanceador de carga e o serviço de back-end estão a ser criados.
Crie um grupo de instâncias gerido,
tutorial-sp3-mig-a
na região:gcloud compute instance-groups managed create tutorial-sp3-mig-a \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp3 \ --project=SERVICE_PROJECT_3_ID
Defina a verificação de funcionamento de HTTP,
tutorial-regional-health-check
:gcloud compute health-checks create http tutorial-regional-health-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_3_ID
Defina o serviço de back-end,
tutorial-backend-service-sp3
:gcloud compute backend-services create tutorial-backend-service-sp3 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=tutorial-regional-health-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_3_ID
Adicione back-ends ao serviço de back-end com o comando
gcloud compute backend-services add-backend
:gcloud compute backend-services add-backend tutorial-backend-service-sp3 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp3-mig-a \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_3_ID
Crie outro grupo de instâncias geridas,
tutorial-sp3-mig-b
na região:gcloud compute instance-groups managed create tutorial-sp3-mig-b \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp3 \ --project=SERVICE_PROJECT_3_ID
Adicione back-ends ao serviço de back-end:
gcloud compute backend-services add-backend tutorial-backend-service-sp3 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp3-mig-b \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_3_ID
Crie o mapa de URL e a regra de encaminhamento no projeto de serviço 1
Todos os passos nesta secção têm de ser realizados no projeto de serviço 1.
Consola
Selecione o tipo de balanceador de carga
Na Google 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 Interno e clique em Seguinte.
- Para a Implementação em várias regiões ou numa única região, selecione Melhor para cargas de trabalho regionais e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Introduza um Nome para o balanceador de carga
tutorial-url-maps
. - Na lista Região, selecione
us-west1
. Na lista Rede, selecione lb-network (de Projeto: SERVICE_PROJECT_1_ID).
Se vir o aviso É necessária uma sub-rede apenas de proxy na rede VPC partilhada confirme que o administrador do projeto anfitrião criou o
proxy-only-subnet
na regiãous-west1
na rede VPC partilhadalb-network
. A criação do equilibrador de carga é bem-sucedida mesmo que não tenha autorização para ver a sub-rede apenas de proxy nesta página.Mantenha a janela aberta para continuar.
Configure o back-end
- Clique em Configuração de back-end.
- Clique em Serviços de back-end entre projetos.
- No campo ID do projeto, introduza o ID do projeto para o projeto de serviço 2.
- No campo Nome do serviço de back-end, introduza o nome do serviço de back-end do projeto de serviço 2 que quer usar. Para este exemplo,
é
tutorial-backend-service-sp2
. - Clique em Adicionar serviço de back-end.
- No campo ID do projeto, introduza o ID do projeto para o projeto de serviço 3.
- No campo Nome do serviço de back-end, introduza o nome do serviço de back-end do projeto de serviço 3 que quer usar. Para este exemplo,
é
tutorial-backend-service-sp3
. - Clique em Adicionar serviço de back-end.
Configure as regras de encaminhamento
- Clique em Regras de encaminhamento.
- Na secção Regras de anfitriões e caminhos, no campo Anfitrião 2,
introduza
*
. - No campo Caminhos 2, introduza
/*
. - Na lista pendente Backend 2, selecione
tutorial-backend-service-sp2
. - Clique em Adicionar regra de anfitrião e caminho.
- No campo Anfitrião 3, introduza
tutorial-host
. - No campo Caminhos 3, introduza
/*
. Na lista pendente Backend 3, selecione
tutorial-backend-service-sp3
.Procure a marca de verificação azul à esquerda de Regras de anfitrião e caminho e clique no botão Atualizar.
Para informações sobre a gestão de tráfego, consulte o artigo Configurar a gestão de tráfego.
Configure a interface
Para que a referência de serviços entre projetos funcione, o front-end tem de usar a mesma rede (lb-network
) do projeto anfitrião de VPC partilhada que foi usada para criar o serviço de back-end.
- Clique em Configuração do front-end.
- Introduza um Nome para a regra de encaminhamento:
l7-ilb-forwarding-rule
. - Defina o Protocolo como
HTTP
. - Defina a Sub-rede como
lb-frontend-and-backend-subnet
. Não selecione a sub-rede apenas de proxy para o front-end, mesmo que seja uma opção na lista. - Defina a Porta para
80
. - No campo Endereço IP, mantenha a opção predefinida, Efémero (automático).
- Clique em Concluído.
Reveja e finalize a configuração
- Clique em Criar.
gcloud
Selecione o projeto de serviço que criou:
gcloud config set project SERVICE_PROJECT_1_ID
Crie o mapa de URLs,
tutorial-url-maps
, e defina o serviço predefinido para o serviço de back-end criado no projeto de serviço 1:gcloud compute url-maps create tutorial-url-maps \ --default-service=projects/SERVICE_PROJECT_2_ID/regions/us-west1/backendServices/tutorial-backend-service-sp2 \ --region=us-west1 \ --project=SERVICE_PROJECT_1_ID
Substitua o seguinte:
SERVICE_PROJECT_2_ID
: o ID do projeto do projeto de serviço 2, onde os back-ends do balanceador de carga e o serviço de back-end são criados.SERVICE_PROJECT_1_ID
: o ID do projeto do projeto de serviço 1, onde está a ser criado o front-end do balanceador de carga.
Crie o proxy de destino,
tutorial-http-proxy
:gcloud compute target-http-proxies create tutorial-http-proxy \ --url-map=tutorial-url-maps \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_1_ID
Crie a regra de encaminhamento
l7-ilb-forwarding-rule
para processar o tráfego HTTP. Para que a referência de serviços entre projetos funcione, a regra de encaminhamento tem de usar a mesma rede (lb-network
) do projeto anfitrião de VPC partilhada que foi usada para criar o serviço de back-end.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \ --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=l7-ilb-ip-address \ --ports=80 \ --region=us-west1 \ --target-http-proxy=tutorial-http-proxy \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_1_ID
Para enviar tráfego para o serviço de back-end, associe o mapa de URLs ao serviço de back-end. Para mais informações, consulte o artigo Use mapas de URLs.
Associe o serviço de back-end
tutorial-backend-service-sp2
no projeto de serviço 2 ao mapa de URLs,tutorial-url-maps
e ao nome do correspondente de caminhos,tutorial-path-matcher-sp2
:gcloud compute url-maps add-path-matcher tutorial-url-maps \ --path-matcher-name=tutorial-path-matcher-sp2 \ --default-service=projects/SERVICE_PROJECT_2_ID/regions/us-west1/backendServices/tutorial-backend-service-sp2 \ --region=us-west1
Associe o serviço de back-end
tutorial-backend-service-sp3
no projeto 3 do serviço ao mapa de URLstutorial-url-maps
e ao nome do correspondente de caminhostutorial-path-matcher-sp3
. Adicione uma nova regra de anfitrião,tutorial-host
, com os anfitriões indicados, para que o correspondente de caminhos esteja associado à nova regra de anfitriãogcloud compute url-maps add-path-matcher tutorial-url-maps \ --path-matcher-name=tutorial-path-matcher-sp3 \ --default-service=projects/SERVICE_PROJECT_3_ID/regions/us-west1/backendServices/tutorial-backend-service-sp3 \ --region=us-west1 \ --new-hosts=tutorial-host
Teste o balanceador de carga
Para testar o equilibrador de carga, comece por criar uma VM cliente de exemplo. Em seguida, estabeleça uma sessão SSH com a VM e envie tráfego desta VM para o balanceador de carga.
Crie uma instância de VM de teste
Os clientes podem estar localizados no projeto anfitrião de VPC partilhada ou em qualquer projeto de serviço ligado. Neste exemplo, testa se o equilibrador de carga está a funcionar implementando uma VM cliente no projeto de serviço 1, que está designado como o projeto anfitrião de VPC partilhada. O cliente tem de usar a mesma rede de VPC partilhada e estar na mesma região que o equilibrador de carga.
Todos os passos nesta secção têm de ser realizados no projeto de serviço 2.
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
No campo Nome, introduza
client-vm
.Defina a Zona como us-west1-b.
Clique em Opções avançadas e, de seguida, em Redes.
Introduza as seguintes etiquetas de rede:
allow-ssh
eload-balanced-backend
.Na secção Interfaces de rede, selecione Redes partilhadas comigo (do projeto anfitrião: SERVICE_PROJECT_1_ID).
Selecione a sub-rede
lb-frontend-and-backend-subnet
na redelb-network
.Clique em Criar.
gcloud
Crie uma instância de VM de teste.
gcloud compute instances create client-vm \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --zone=us-west1-b \ --tags=allow-ssh \ --project=SERVICE_PROJECT_2_ID
Envie tráfego para o balanceador de carga
Use o SSH para estabelecer ligação à instância que acabou de criar e testar se os serviços HTTP(S) nos back-ends são acessíveis através do endereço IP da regra de encaminhamento do balanceador de carga de aplicações interno e se o tráfego está a ser balanceado de carga nas instâncias de back-end.
Recupere o valor do endereço IP do balanceador de carga:
gcloud compute addresses list --filter="name=( 'l7-ilb-ip-address')"
Vê um resultado semelhante ao seguinte:
NAME: l7-ilb-ip-address ADDRESS/RANGE: 10.1.2.2 TYPE: INTERNAL PURPOSE: GCE_ENDPOINT NETWORK: REGION: us-west1 SUBNET: lb-frontend-and-backend-subnet STATUS: IN_USE
Copie o serviço
ADDRESS/RANGE
, por exemplo,10.1.2.2
, do resultado para usar nos passos seguintes.Ligue-se à instância do cliente com SSH:
gcloud compute ssh client-vm \ --zone=us-west1-b \ --project=SERVICE_PROJECT_2_ID
Verifique se o endereço IP do equilibrador de carga está a publicar o respetivo nome do anfitrião:
Verifique se o endereço IP está a publicar o respetivo nome do anfitrião no projeto de serviço 2:
curl 10.1.2.2
Vê um resultado semelhante ao seguinte:
Page served from: tutorial-sp2-mig-a-10xk
Verifique se o endereço IP está a publicar o respetivo nome do anfitrião no projeto de serviço 3:
curl -H "Host: tutorial-host" 10.1.2.2
Vê um resultado semelhante ao seguinte:
Page served from: tutorial-sp3-mig-a-3d5h
Conceda autorizações de IAM
Forneça as funções e as autorizações do IAM adequadas aos projetos de serviço e anfitrião do App Hub.
Consola
Na Google Cloud consola, aceda à página do seletor de projetos.
Na Google Cloud consola, aceda à página IAM.
Clique em
Conceder acesso. O painel Conceder acesso é aberto.No campo Novos responsáveis, introduza o endereço de email do indivíduo que vai administrar o App Hub, a função de administrador do App Hub no projeto anfitrião do App Hub.
Clique em Selecionar uma função e, no campo Filtro, introduza
App Hub
.Selecione a função Administrador do App Hub e clique em Guardar.
Em cada um dos projetos de serviço do App Hub, conceda a função de administrador do App Hub ao mesmo utilizador.
gcloud
Para conceder as funções a indivíduos que vão usar o App Hub, repita o comando seguinte substituindo as funções IAM, conforme necessário. Para mais informações, consulte o artigo Funções e autorizações do App Hub.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Substitua
HOST_PROJECT_ADMIN
pelo utilizador que tem a função de administrador do App Hub no projeto anfitrião do App Hub. Este valor tem o formatousername@yourdomain
, por exemplo,222larabrown@gmail.com
.Conceda a função de administrador do App Hub no projeto de serviço aos indivíduos que administram o App Hub. Têm de ter a função de administrador do App Hub para adicionar projetos de serviço ao projeto anfitrião. Precisa de, pelo menos, uma pessoa com esta função para cada projeto de serviço.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Substitua
SERVICE_PROJECT_ID
pelo ID dos projetos de serviço.
Anexe os projetos de serviço
Os projetos de serviço são Google Cloud projetos que contêm recursos de infraestrutura que pode registar numa aplicação do App Hub. Para mais informações, consulte Projetos de serviço. Anexe os projetos de serviço nos quais implementou os recursos ao projeto anfitrião do App Hub.
Consola
Na Google Cloud consola, aceda à página Definições do App Hub.
Na página Definições, clique em Anexar projetos.
No painel apresentado, pesquise projetos na lista apresentada e selecione as caixas de verificação dos projetos que quer adicionar como projetos de serviço.
Clique em Selecionar. A tabela Attached Service Project(s) (Projetos de serviços anexados) apresenta os projetos de serviços selecionados.
Clique em Fechar.
gcloud
Anexe os projetos de serviço 1, 2 e 3 ao seu projeto de anfitrião do App Hub.
gcloud apphub service-projects add SERVICE_PROJECT_1_ID \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_2_ID \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_3_ID \ --project=HOST_PROJECT_ID
Confirme que anexou os projetos de serviço do App Hub ao projeto anfitrião do App Hub:
gcloud apphub service-projects list --project=HOST_PROJECT_ID
Depois de anexar o projeto de serviço ao projeto anfitrião do App Hub, pode ver todos os Google Cloud recursos do projeto de serviço anexado como serviços e cargas de trabalho do App Hub descobertos. Para mais informações sobre como ver estes serviços e cargas de trabalho descobertos, consulte o artigo Veja aplicações, serviços e cargas de trabalho existentes.
Crie uma aplicação
Crie uma aplicação para ser o contentor dos seus serviços e cargas de trabalho. Quando cria uma aplicação, pode atribuir propriedades imutáveis, como um tipo de âmbito ou uma localização a partir da qual quer registar recursos e atributos variáveis, como criticidade e ambiente. Pode usar os atributos das variáveis para filtrar as aplicações. Para mais informações, consulte o artigo Propriedades e atributos.
Neste tutorial, cria uma aplicação global para ajudar a gerir recursos globais e regionais numa única aplicação. Se quiser agrupar os seus recursos de uma região específica, pode criar uma aplicação Regional e registar estes recursos. Para mais informações sobre como criar uma aplicação regional, consulte o artigo Configure o App Hub.
Consola
- Certifique-se de que está no projeto anfitrião do App Hub.
Na Google Cloud consola, aceda à página Aplicações do App Hub.
Clique em Criar candidatura.
Na página Criar aplicação, no painel Escolha a região da aplicação e o nome, selecione Global.
No campo Nome da aplicação, introduza
tutorial-application
. Este nome é um identificador exclusivo e é imutável depois de criar a aplicação.Introduza um Nome a apresentar,
Tutorial
e clique em Continuar. Este é um nome fácil de usar que pode atualizar. Para mais informações, consulte o artigo Atualize uma aplicação existente.No painel Adicionar atributos, na lista Criticidade, selecione Elevada. A criticidade indica o quão crítica é uma aplicação, um serviço ou uma carga de trabalho para as operações da sua empresa.
No campo Ambiente, para indicar a fase do ciclo de vida do software, selecione Produção.
Clique em Continuar.
No painel Adicionar proprietários, adicione os seguintes detalhes para proprietários programadores, proprietários operadores e proprietários de empresas. Tenha em atenção que tem de introduzir o endereço de email do proprietário se adicionar um nome a apresentar.
- Introduza um nome a apresentar do proprietário.
- Introduza o endereço de email do proprietário. Este valor tem de ter o formato
username@yourdomain
, por exemplo,222larabrown@gmail.com
.
Repita estes passos para cada programador, operador e proprietário da empresa.
Clique em Criar.
A nova candidatura é criada e apresentada na página Candidaturas. Tenha em atenção que apenas a regra de encaminhamento, o mapa de URLs, o serviço de back-end e o grupo de instâncias gerido (MIG) ficam disponíveis como recursos descobertos na aplicação App Hub. Para mais informações, consulte os conceitos e o modelo de dados.
gcloud
Selecione o projeto anfitrião do App Hub que criou:
gcloud config set project HOST_PROJECT_ID
Crie uma nova aplicação denominada
tutorial-application
na regiãoglobal
e atribua-lhe um nome a apresentar,Tutorial
. Este nome da aplicação,tutorial-application
é um identificador exclusivo e é imutável depois de criar a aplicação. O nome a apresentarTutorial
é um nome intuitivo que pode atualizar. Para mais informações, consulte o artigo Atualize uma aplicação existente.gcloud apphub applications create tutorial-application \ --display-name='Tutorial' \ --scope-type=GLOBAL \ --project=HOST_PROJECT_ID \ --location=global
Liste as aplicações no projeto anfitrião do App Hub:
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=global
Vê um resultado semelhante ao seguinte:
ID DISPLAY_NAME CREATE_TIME tutorial-application Tutorial 2023-10-31T18:33:48
Atualize a sua aplicação com os atributos
criticality-type
,environment-type
e de proprietário:gcloud apphub applications update tutorial-application \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=global
Substitua o seguinte:
DISPLAY-NAME-DEVELOPER
,DISPLAY-NAME-OPERATOR
eDISPLAY-NAME-BUSINESS
: nomes a apresentar dos proprietários do programador, do operador e da empresa, respetivamente.EMAIL-NAME-DEVELOPER
,EMAIL-NAME-OPERATOR
eEMAIL-NAME-BUSINESS
: endereços de email do programador, operador e proprietários da empresa, respetivamente. Estes valores têm de ter o formatousername@yourdomain
, por exemplo,222larabrown@gmail.com
.
Notas:
criticality-type
: indica a importância de uma aplicação, um serviço ou uma carga de trabalho para as operações da sua empresa.environment-type
: indica as fases do ciclo de vida do software.
Obtenha detalhes da aplicação que criou:
gcloud apphub applications describe tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
O comando devolve informações no formato YAML, semelhantes às seguintes:
attributes: businessOwners: – displayName: [DISPLAY-NAME-BUSINESS] email: [EMAIL-BUSINESS] criticality: type: HIGH developerOwners: – displayName: [DISPLAY-NAME-DEVELOPER] email: [EMAIL-DEVELOPER] environment: type: PRODUCTION operatorOwners: – displayName: [DISPLAY-NAME-OPERATOR] email: [EMAIL-OPERATOR] createTime: '2023-10-31T18:33:48.199394108Z' displayName: Tutorial name: projects/HOST_PROJECT_ID/locations/global/applications/tutorial-application scope: type: REGIONAL state: ACTIVE uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73 updateTime: '2023-10-31T18:33:48.343303819Z'
Registe serviços e cargas de trabalho
O registo de serviços e cargas de trabalho adiciona-os a uma aplicação que lhe permite monitorizar os recursos adicionados.
Consola
Na Google Cloud consola, aceda à página Aplicações do App Hub.
Clique no nome da sua aplicação, Tutorial. O separador Serviços e cargas de trabalho é apresentado com uma lista de serviços e cargas de trabalho registados que estão nos seus projetos de serviço do App Hub.
Registe um serviço:
- No separador Serviços e cargas de trabalho, clique em Registar serviço/carga de trabalho.
- Na página Registar serviço ou carga de trabalho, no painel Selecionar recurso, clique em Procurar para selecionar o serviço ou a carga de trabalho como um recurso.
- No painel Selecionar recurso, escolha o Nome do serviço, tutorial-backend-service-sp2, e clique em Selecionar.
- No painel Selecionar recurso, introduza o Nome do recurso,
tutorial-service-backend-sp2
. - Introduza um Nome a apresentar,
Backend service (SP2)
e clique em Continuar. - No painel Adicionar atributos, na lista Criticidade, para indicar a importância da aplicação, selecione Alta.
- No campo Ambiente, para indicar a fase do ciclo de vida do software, selecione Produção.
- Clique em Continuar.
- No painel Adicionar proprietários, adicione os seguintes detalhes, conforme necessário, para
proprietários de programadores, proprietários de operadores e proprietários de empresas.
Tenha em atenção que tem de introduzir o endereço de email do proprietário se adicionar um nome a apresentar.
- Introduza um nome a apresentar do proprietário.
- Introduza o endereço de email do proprietário. Este valor tem de ter o formato
username@yourdomain
, por exemplo,222larabrown@gmail.com
.
- Repita estes passos para cada programador, operador e proprietário da empresa.
- Clique em Registar.
No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, pode ver o novo serviço adicionado.
- Repita os passos anteriores para registar os outros serviços como tutorial-service-backend-sp3, tutorial-service-forwarding-rule e tutorial-service-url-map, respetivamente.
- Registe uma carga de trabalho repetindo os passos anteriores para registar um serviço
com as seguintes exceções:
- No painel Registar serviço ou carga de trabalho, na secção Escolher serviço ou carga de trabalho, selecione o Nome da carga de trabalho, tutorial-sp2-mig-a, e clique em Continuar.
- No painel Selecionar recurso, introduza o Nome do recurso,
tutorial-workload-sp2-mig-a
. - Introduza um Nome a apresentar,
Instance group - A (SP2)
e clique em Continuar.
- Repita os passos anteriores para registar as outras cargas de trabalho como tutorial-workload-sp2-mig-a, tutorial-workload-sp2-mig-b, tutorial-workload-sp3-mig-a e tutorial-workload-sp3-mig-b, respetivamente.
gcloud
Adicione um indivíduo com autorizações de editor do App Hub:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
Substitua
APP_HUB_EDITOR
pelo utilizador que tem a função de editor do App Hub no projeto anfitrião do App Hub. Este valor tem o formatousername@yourdomain
, por exemplo,222larabrown@gmail.com
.Apresenta todos os serviços descobertos no projeto anfitrião do App Hub. Este comando devolve serviços que estão disponíveis para serem registados numa aplicação.
gcloud apphub discovered-services list \ --project=HOST_PROJECT_ID \ --location=us-west1
Vê um resultado semelhante ao seguinte:
ID SERVICE_REFERENCE SERVICE_PROPERTIES
BACKEND_SERVICE_SP2_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp2'} {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}BACKEND_SERVICE_SP3_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp3'} {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}FORWARDING_RULE_SERVICE_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule'} {'gcpProject': 'projects/SERVICE_PROJECT_1_ID', 'location': 'us-west1'}URL_MAP_SERVICE_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/urlMaps/tutorial-url-maps'} {'gcpProject': 'projects/SERVICE_PROJECT_1_ID', 'location': 'us-west1'}Copie os serviços
ID
s, por exemplo,BACKEND_SERVICE_SP2_ID
do resultado para usar no passo seguinte.Registe os serviços do passo anterior na sua aplicação. Copie os IDs dos serviços do campo de saída no passo anterior.
gcloud apphub applications services create tutorial-service-backend-sp2 \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_SP2_ID' \ --display-name='Backend service (SP2)' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications services create tutorial-service-backend-sp3 \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_SP3_ID' \ --display-name='Backend service (SP3)' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications services create tutorial-service-forwarding-rule \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \ --display-name='Forwarding rule' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications services create tutorial-service-url-map \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/URL_MAP_SERVICE_ID' \ --display-name='URL map' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Substitua o seguinte:
BACKEND_SERVICE_SP2_ID
: o serviçoID
do serviço de back-end do projeto de serviço 2 que quer registar.BACKEND_SERVICE_SP3_ID
: o serviçoID
do serviço de back-end do projeto de serviço 3 que quer registar.FORWARDING_RULE_SERVICE_ID
: o serviçoID
da regra de encaminhamento do projeto de serviço 1 que quer registar.URL_MAP_SERVICE_ID
: o serviçoID
do mapa de URLs do projeto de serviço 1 que quer registar.
Liste todos os serviços registados na aplicação:
gcloud apphub applications services list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Vê um resultado semelhante ao seguinte:
Os serviços registados, mas desanexados, são indicados por um valor vazio no campoID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME tutorial-service-backend-sp2 Backend service {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp2'} 2024-02-13T00:31:45 tutorial-service-backend-sp3 Backend service {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp3'} 2024-02-13T00:31:45 tutorial-service-forwarding-rule Forwarding rule {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule'} 2024-02-13T00:31:45 tutorial-service-url-map URL map {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/urlMaps/tutorial-url-maps'} 2024-02-13T00:31:45
SERVICE_REFERENCE
. Para mais informações sobre os estados de registo, consulte as propriedades e os atributos do App Hub.Apresenta todas as cargas de trabalho descobertas no projeto anfitrião do App Hub. Este comando devolve cargas de trabalho que estão disponíveis para serem registadas numa aplicação.
gcloud apphub discovered-workloads list \ --project=HOST_PROJECT_ID \ --location=global
Vê um resultado semelhante ao seguinte:
Copie o ID da carga de trabalho do resultado para usar no passo seguinte.ID WORKLOAD_REFERENCE WORKLOAD_PROPERTIES
INSTANCE_GROUP_SP3_A_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-a'} {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}INSTANCE_GROUP_SP3_B_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-b'} {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}INSTANCE_GROUP_SP2_A_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-a'} {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}INSTANCE_GROUP_SP2_B_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-b'} {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}Registe as cargas de trabalho do passo anterior na sua aplicação. Copie o ID da carga de trabalho do campo de saída no passo anterior.
gcloud apphub applications workloads create tutorial-workload-sp3-mig-a \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP3_A_ID' \ --display-name='Workload instance group (SP3-A)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications workloads create tutorial-workload-sp3-mig-b \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP3_B_ID' \ --display-name='Workload instance group (SP3-B)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications workloads create tutorial-workload-sp2-mig-a \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP2_A_ID' \ --display-name='Workload instance group (SP2-A)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications workloads create tutorial-workload-sp2-mig-b \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP2_B_ID' \ --display-name='Workload instance group (SP2-B)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Substitua o seguinte:
INSTANCE_GROUP_SP3_A_ID
,INSTANCE_GROUP_SP3_B_ID
: as cargas de trabalhoID
s dos grupos de instâncias geridos do projeto de serviço 3 que quer registar.INSTANCE_GROUP_SP2_A_ID
,INSTANCE_GROUP_SP2_B_ID
: as cargas de trabalhoID
s dos grupos de instâncias geridas do projeto de serviço 2 que quer registar.
Apresentar uma lista de todas as cargas de trabalho registadas na aplicação:
gcloud apphub applications workloads list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Vê um resultado semelhante ao seguinte:
As cargas de trabalho registadas, mas desassociadas, são indicadas por um valor vazio no campoID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME tutorial-workload-sp3-mig-a Workload instance group (SP3-A) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-a'} 2024-02-13T00:31:45 tutorial-workload-sp3-mig-b Workload instance group (SP3-B) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-b'} 2024-02-13T00:31:45 tutorial-workload-sp2-mig-a Workload instance group (SP2-A) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-a'} 2024-02-13T00:31:45 tutorial-workload-sp2-mig-b Workload instance group (SP2-B) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-b'} 2024-02-13T00:31:45
WORKLOAD_REFERENCE
. Para mais informações sobre os estados de registo, consulte as propriedades e os atributos do App Hub.
Veja todos os serviços e cargas de trabalho
Pode ver os detalhes dos serviços e das cargas de trabalho dos projetos de serviço anexados ao projeto anfitrião do App Hub.
Na Google Cloud consola, aceda à página Serviços e cargas de trabalho do App Hub.
Na lista Região, selecione global. A carga de trabalho Workload instance group é apresentada com detalhes como App Hub Type, Criticality e Registered to.
Para filtrar os serviços ou as cargas de trabalho com base no respetivo estado:
- No campo Filtro, selecione filtros como Estado do registo.
- Clique em Registado. É apresentada uma lista de serviços e cargas de trabalho registados na aplicação.
Monitorize aplicações
A monitorização de aplicações oferece painéis de controlo prontos a usar (OOTB) para monitorizar registos, métricas e incidentes para aplicações do App Hub e os respetivos serviços e cargas de trabalho registados. Para mais informações, consulte o artigo Monitorização de aplicações. Para ver estes painéis de controlo, faça o seguinte:
Na Google Cloud consola, aceda à página Aplicações do App Hub.
Efetue um dos seguintes passos:
- Para ver o painel de controlo OOTB de nível superior que apresenta informações de resumo para uma lista de aplicações registadas no seu projeto anfitrião ou pasta com apps, clique em Ver na observabilidade.
- Para ver o painel de controlo OOTB de uma aplicação, siga estes passos:
- Clique no nome da aplicação.
- Clique em Ver painel de controlo de observabilidade.
- Para ver o painel de controlo OOTB de um serviço ou uma carga de trabalho específico, siga
estes passos:
- Clique no nome da aplicação.
- Na linha que apresenta o nome do serviço ou da carga de trabalho, clique em
Ver painel de controlo de observabilidade.
Para mais informações sobre como ver os painéis de controlo, consulte o artigo Veja a telemetria da aplicação.
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Elimine os recursos do App Hub
Consola
Na Google Cloud consola, aceda à página App Hub Aplicações.
Clique no nome de uma aplicação, Tutorial.
No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, clique no nome de um serviço.
Na página Serviços e cargas de trabalho, clique em Anular registo.
Um alerta notifica que o serviço não está registado.
No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, clique no nome de uma carga de trabalho.
No separador Detalhes, clique em Anular registo.
Um alerta notifica que a carga de trabalho não está registada.
Aceda à página Aplicações do App Hub.
Clique no nome de uma aplicação.
Na página tutorial-application, clique em Eliminar.
Na Google Cloud consola, aceda à página Definições do App Hub.
Na página Definições, selecione a caixa de verificação do projeto de serviço que quer remover do projeto anfitrião do App Hub.
Clique em Desassociar projetos.
gcloud
Indique os serviços registados na aplicação:
gcloud apphub applications services list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Anule o registo dos serviços na aplicação:
gcloud apphub applications services delete SERVICE_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Substitua
SERVICE_NAME
pelo nome do seu serviço. Os serviços são agora serviços descobertos que podem ser registados na aplicação.Liste as cargas de trabalho registadas na aplicação:
gcloud apphub applications workloads list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Anule o registo da carga de trabalho na aplicação:
gcloud apphub applications workloads delete WORKLOAD_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Substitua
WORKLOAD_NAME
pelo nome da sua carga de trabalho. A carga de trabalho é agora uma carga de trabalho descoberta que pode ser registada na aplicação.Elimine a aplicação:
gcloud apphub applications delete tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Remova os projetos de serviço do projeto anfitrião do App Hub:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
Substitua
SERVICE_PROJECT_ID
pelos IDs dos projetos de serviço 1, 2 e 3.
Elimine a implementação
Quando já não precisar da solução, para evitar a faturação contínua dos recursos que criou nesta solução, elimine todos os recursos.
Para mais informações, consulte o artigo Limpe a configuração do equilibrador de carga.Elimine o projeto
Consola
- Na Google Cloud consola, aceda à página Gerir recursos.
- Na lista de projetos, selecione o projeto que quer eliminar e, de seguida, clique em Eliminar.
- Na caixa de diálogo, escreva o ID do projeto e, de seguida, clique em Encerrar para eliminar o projeto.
gcloud
Elimine um Google Cloud projeto:
gcloud projects delete PROJECT_ID
Substitua PROJECT_ID
pelos IDs dos projetos do anfitrião ou do serviço.