Prepare-se para configurar APIs de encaminhamento de serviços com o Envoy e cargas de trabalho sem proxy
Este documento fornece informações sobre as tarefas pré-requisitos para configurar a Cloud Service Mesh através das APIs de encaminhamento de serviços com proxies Envoy ou com gRPC sem proxy como o plano de dados.
A configuração do Cloud Service Mesh inclui várias fases. Este documento descreve a primeira fase: instruções para se preparar para configurar a Cloud Service Mesh com instâncias de VM ou aplicações gRPC sem proxy. As fases adicionais são abordadas nos guias específicos da plataforma indicados em Continue o processo de configuração mais adiante neste documento.
Antes de ler este guia, familiarize-se com os seguintes documentos, que oferecem uma vista geral da utilização da Cloud Service Mesh com as APIs de encaminhamento de serviços e as APIs Gateway:
- Vista geral do Cloud Service Mesh
- Vista geral das APIs de encaminhamento de serviços do Cloud Service Mesh
Pré-requisitos
Prepare o seu ambiente concluindo as seguintes tarefas:
- Configure projetos de acordo com as necessidades da sua empresa.
- Ative a faturação.
- Conceda as autorizações necessárias.
- Ative a API Traffic Director e outras APIs para o seu projeto.
- Certifique-se de que a conta de serviço tem autorizações suficientes para aceder à API Traffic Director.
- Ative a API Cloud DNS e configure o Cloud DNS.
As secções seguintes fornecem instruções para cada tarefa.
Configure projetos
Para configurar e gerir os seus projetos, consulte o artigo Criar e gerir projetos e a documentação relacionada.
Ativar faturação
Certifique-se de que a faturação está ativada para o seu Google Cloud projeto. Para mais informações, consulte o artigo Ative, desative ou altere a faturação de um projeto.
Conceda as autorizações de IAM necessárias
Tem de ter autorizações de gestão de identidade e de acesso (IAM) suficientes para criar instâncias de VMs e modificar uma rede para configurar a Cloud Service Mesh. Se tiver a função de proprietário ou editor do projeto (roles/owner
ou roles/editor
) no projeto onde está a ativar o Cloud Service Mesh, tem automaticamente as autorizações corretas.
Caso contrário, tem de ter todas as funções da IAM apresentadas na tabela seguinte. Se tiver estas funções, também tem as autorizações associadas, conforme descrito na documentação de IAM do Compute Engine.
Tarefa | Função necessária |
---|---|
Definir a Política IAM para uma conta de serviço. | Administrador da conta de serviço
( roles/iam.serviceAccountAdmin ) |
Ative o Cloud Service Mesh. | Administrador de utilização de serviços
( roles/serviceusage.serviceUsageAdmin ) |
Crie redes, sub-redes, malhas, gateways e componentes do balanceador de carga. | Administrador de rede de Calcular
( roles/compute.networkAdmin ) |
Adicionar e remover regras de firewall. | Administrador de segurança do Compute
( roles/compute.securityAdmin ) |
Crie instâncias. | Administrador de instância de cálculo
( roles/compute.instanceAdmin ) |
Permite o acesso a contas de serviço. | Utilizador da conta de serviço
( roles/iam.serviceAccountUser ) |
Permitir que a conta de serviço execute as tarefas necessárias. Esta autorização é necessária para que o plano de dados xDS (Envoy ou gRPC sem proxy) receba a configuração xDS do plano de controlo. | Cliente do Traffic Director
( roles/trafficdirector.client) |
As VMs do Compute Engine têm de ter o âmbito
https://www.googleapis.com/auth/cloud-platform
. Para mais informações, consulte o artigo
Resolução de problemas de implementações que usam gRPC sem proxy.
Ative a conta de serviço para aceder à API Traffic Director
Quando configura o plano de dados e o associa ao Cloud Service Mesh, os clientes xDS, sejam proxies do Envoy ou clientes gRPC sem proxy, ligam-se ao trafficdirector.googleapis.com
servidor xDS. Estes clientes xDS apresentam uma identidade de conta de serviço ao servidor xDS para garantir que as comunicações entre o plano de dados e o plano de controlo estão devidamente autorizadas.
Para uma VM do Compute Engine, o cliente xDS usa a conta de serviço atribuída à VM.
A menos que modifique a configuração, Google Cloud usa a conta de serviço predefinida do Compute Engine.
Para conceder à conta de serviço acesso à API Traffic Director, siga as instruções abaixo.
Consola
Na Google Cloud consola, aceda à página IAM e administração.
Selecione o seu projeto.
Identifique a conta de serviço à qual quer adicionar uma função:
- Se a conta de serviço ainda não estiver na lista de Membros, não tem funções atribuídas. Clique em Adicionar e introduza o endereço de email da conta de serviço.
- Se a conta de serviço já estiver na lista de membros, tem funções existentes. Selecione a conta de serviço e, de seguida, clique no separador Funções.
Expanda a função. Para a conta de serviço que quer editar, clique em
Editar.Selecione a função Outro > Cliente do Traffic Director.
Para aplicar a função à conta de serviço, clique em Guardar.
gcloud
Execute o seguinte comando:
gcloud projects add-iam-policy-binding PROJECT \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL \ --role=roles/trafficdirector.client
Substitua o seguinte:
PROJECT
: introduzagcloud config get-value project
SERVICE_ACCOUNT_EMAIL
: o email associado à conta de serviço
Ative as APIs necessárias
Ative as seguintes APIs necessárias.
- osconfig.googleapis.com
- trafficdirector.googleapis.com
- compute.googleapis.com
- networkservices.googleapis.com
Para ativar as APIs necessárias, siga estas instruções.
Consola
Na Google Cloud consola, aceda à página Biblioteca de APIs do seu projeto.
No campo Pesquisar APIs e serviços, introduza
Traffic Director
.Na lista de resultados da pesquisa, clique em API Traffic Director. Se não vir a API Traffic Director listada, significa que não tem as autorizações necessárias para ativar a API Traffic Director.
Na página API Traffic Director, clique em Ativar.
No campo Pesquisar APIs e serviços, introduza
OS Config
.Na lista de resultados da pesquisa, clique em Configuração do SO. Se não vir a API OS Config listada, significa que não tem as autorizações necessárias para ativar a API Traffic Director.
Na página API OS Config, clique em Ativar.
No campo Pesquisar APIs e serviços, introduza
Compute
.Na lista de resultados da pesquisa, clique em API Compute Engine. Se não vir a API Compute Engine listada, significa que não tem as autorizações necessárias para ativar a API Compute Engine.
Na página API Compute Engine, clique em Ativar.
No campo Pesquisar APIs e serviços, introduza
Network Services
.Na lista de resultados da pesquisa, clique em API Network Services. Se não vir a API Network Services listada, significa que não tem as autorizações necessárias para ativar a API Network Services.
Na página API Network Services, clique em Ativar.
gcloud
Execute o seguinte comando:
gcloud services enable osconfig.googleapis.com \ trafficdirector.googleapis.com \ compute.googleapis.com \ networkservices.googleapis.com
Versão do xDS
As APIs de encaminhamento de serviços requerem a utilização da xDS v3. Para obter informações sobre como atualizar a sua implementação de xDS v2 para xDS v3, consulte o artigo APIs de plano de controlo xDS.
Requisitos adicionais com proxies Envoy
Esta secção descreve os requisitos adicionais para usar a Cloud Service Mesh com as APIs de encaminhamento de serviços e os proxies Envoy. Se estiver a implementar com gRPC sem proxy, consulte os requisitos adicionais com gRPC sem proxy.
Como o Envoy é instalado
Durante o processo de implementação da Cloud Service Mesh, cria um modelo de VM que instala automaticamente o Envoy nas VMs onde as suas aplicações são executadas.
Acerca das versões do Envoy
O Envoy tem de ser a versão 1.20.0 ou posterior para funcionar com o Cloud Service Mesh. Recomendamos que use sempre a versão mais recente do Envoy para garantir que as vulnerabilidades de segurança conhecidas são mitigadas.
Se decidir implementar o Envoy através de um dos nossos métodos automáticos, tratamos desta tarefa por si da seguinte forma:
A implementação automatizada do Envoy com VMs do Compute Engine instala a versão do Envoy que validámos para funcionar com a Cloud Service Mesh. Quando é criada uma nova VM através do modelo de instância, a VM recebe a versão mais recente que validámos. Se tiver uma VM em execução durante muito tempo, pode usar uma atualização contínua para substituir as VMs existentes e obter a versão mais recente.
Para informações sobre versões específicas do Envoy, consulte o Histórico de versões. Para obter informações sobre vulnerabilidades de segurança, consulte os avisos de segurança.
Requisitos adicionais com gRPC sem proxy
Esta secção descreve os requisitos adicionais para usar a Cloud Service Mesh com as APIs de encaminhamento de serviços e o gRPC sem proxy. Se estiver a implementar com proxies Envoy, consulte os requisitos adicionais com proxies Envoy.
Processo geral com gRPC sem proxy
Siga este procedimento geral para configurar aplicações gRPC sem proxy numa malha de serviços:
- Atualize os seus clientes gRPC para a versão mais recente do gRPC com o patch mais recente.
- Atualize o esquema do resolvedor de nomes gRPC dos seus clientes quando criar um canal e especificar um ficheiro de arranque do Cloud Service Mesh.
- Configure recursos do Cloud Service Mesh e do Cloud Load Balancing.
Este documento fornece informações para concluir os dois primeiros passos. O processo de configuração que usa para o passo 3 depende de a sua implementação usar VMs do Compute Engine ou grupos de pontos finais de rede (NEGs) do GKE.
Versões e idiomas gRPC suportados
O gRPC é um projeto de código aberto e o respetivo suporte de lançamento é descrito nas Perguntas frequentes do gRPC. Recomendamos que use a versão mais recente do gRPC para garantir que as vulnerabilidades de segurança conhecidas são mitigadas. Isto também garante que as suas aplicações têm acesso às funcionalidades mais recentes suportadas pela malha de serviços na nuvem. As funcionalidades de malha de serviços suportadas em várias implementações e versões do gRPC estão listadas no GitHub. Para ver uma lista de idiomas e funcionalidades gRPC suportados com a Cloud Service Mesh e os serviços gRPC sem proxy, consulte as funcionalidades da Cloud Service Mesh.
O Cloud Service Mesh mantém a compatibilidade com as versões atuais e suportadas do gRPC e esforça-se por ser compatível com as versões do gRPC com menos de um ano, sujeito aos Google Cloud Termos de Utilização da Plataforma.
Atualize os seus clientes gRPC
Atualize a biblioteca gRPC na sua aplicação para a versão que suporta as funcionalidades de que precisa. Para mais detalhes, consulte a secção anterior.
Adicione o resolvedor de nomes xDS como uma dependência às suas aplicações gRPC. Os requisitos por idioma para Java e Go são apresentados nas secções seguintes. Os outros idiomas não têm requisitos adicionais.
Requisitos do Java
Em Java, se estiver a usar o Gradle, adicione a dependência grpc-xds
ao ficheiro
build.gradle
. Substitua LATEST_GRPC_VERSION
pela versão mais recente do
gRPC.
dependencies { runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION' }
Se estiver a usar o Maven, adicione o seguinte à secção <dependencies>
de pom.xml. Substitua LATEST_GRPC_VERSION
pela versão mais recente do gRPC.
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-xds</artifactId> <version>LATEST_GRPC_VERSION</version> <scope>runtime</scope> </dependency>
Requisitos de destino
Se estiver a usar o Go, importe o pacote Go xds.
Defina o resolvedor de nomes gRPC para usar xds
Defina ou altere as suas aplicações gRPC para usar o esquema de resolução de nomes xds
no URI de destino, em vez do DNS ou de qualquer outro esquema de resolução. Para tal, use o prefixo xds:///
no nome do destino quando criar um canal gRPC.
O equilíbrio de carga para clientes gRPC é feito por canal.
Inclua o nome do serviço usado no URI de destino na configuração da malha de serviços na nuvem. Por exemplo, em Java, cria o canal através desta estrutura, em que o nome do serviço é helloworld
:
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
Crie e configure um ficheiro de arranque
O esquema do resolvedor xds
indica à aplicação gRPC que se ligue ao Cloud Service Mesh para obter informações de configuração para o serviço de destino. Por conseguinte, faça o seguinte:
- Crie um ficheiro de arranque, como mostrado no exemplo seguinte. Este ficheiro indica ao gRPC que se ligue a um servidor xDS (Cloud Service Mesh) para obter a configuração de serviços específicos.
- Defina uma variável de ambiente denominada
GRPC_XDS_BOOTSTRAP
, com o nome do ficheiro de arranque como o valor da variável de ambiente.
As instruções de configuração têm exemplos que mostram como gerar o ficheiro de arranque. Para sua conveniência, pode usar a versão mais recente do gerador de arranque gRPC do Cloud Service Mesh.
Tem de incluir um ficheiro de arranque com as informações necessárias para estabelecer ligação ao Cloud Service Mesh juntamente com a aplicação. Um ficheiro de arranque de exemplo tem o seguinte aspeto:
{ "xds_servers": [ { "server_uri": "trafficdirector.googleapis.com:443", "channel_creds": [ { "type": "google_default" } ], "server_features": ["xds_v3"] } ], "node": { "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18", "metadata": { "TRAFFICDIRECTOR_NETWORK_NAME": "default" }, "locality": { "zone": "us-central1-a" } } }
A tabela seguinte explica os campos no ficheiro de arranque.
Campo | Valor e descrição |
---|---|
xds_servers |
Uma lista de servidores xDS. O gRPC usa apenas o primeiro da lista. |
server_uri |
Especifique, pelo menos, um. O gRPC tenta estabelecer ligação apenas ao primeiro servidor xDS na lista de xds_servers . O valor predefinido é
trafficdirector.googleapis.com:443 . |
channel_creds |
Credenciais a usar com o servidor xDS. |
type |
Use o valor google_default . Para mais informações sobre como as credenciais são obtidas, consulte o artigo Como funcionam as Credenciais padrão da aplicação.
|
server_features |
Uma lista de funcionalidades suportadas pelo servidor, como o suporte do xDS v3. O valor predefinido está vazio. |
node |
Informações sobre o cliente que se liga ao servidor xDS. |
id |
O elemento projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID Indique uma string única como o valor de |
metadata |
Informações específicas do servidor xDS. |
TRAFFICDIRECTOR_MESH_NAME |
Se o campo estiver vazio ou não for especificado, o valor é definido como
default . |
locality |
A Google Cloud zona na qual o cliente gRPC está a ser executado. |
Continue o processo de configuração
Depois de concluir os pré-requisitos descritos neste documento, continue com um destes documentos se estiver a configurar a Cloud Service Mesh com as APIs de encaminhamento de serviços:
- Configure serviços gRPC sem proxy com um recurso
Mesh
- Configure proxies do Envoy com serviços HTTP
- Configure um gateway de entrada
- Configure serviços TCP com um recurso
TCPRoute
- Configure referências entre projetos com recursos
Mesh
eRoute
- Configure o encaminhamento TLS do gateway