Prepare-se para configurar o Cloud Service Mesh com o Envoy
A configuração do Cloud Service Mesh inclui as seguintes fases:
- Conceder autorizações, ativar a API Traffic Director e, se estiver a usar o Compute Engine, configurar o Cloud DNS.
- Implementar as suas aplicações com proxies Envoy.
- Criar serviços e regras de encaminhamento que determinam como o tráfego se desloca através da sua malha de serviço.
Este documento descreve a primeira fase e aplica-se quando está a usar as APIs mais antigas. As segunda e terceira fases 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 a vista geral da Cloud Service Mesh. Se estiver a usar as APIs de encaminhamento de serviços, reveja a vista geral das APIs de encaminhamento de serviços.
Pré-requisitos
Quer planeie usar o Cloud Service Mesh para configurar proxies Envoy em execução junto com aplicações em instâncias de máquinas virtuais (VMs), contentores ou uma combinação de ambos, tem de concluir primeiro as seguintes tarefas:
- Ative a faturação.
- Decida como quer instalar o Envoy.
- Conceda as autorizações necessárias.
- Ative a API Traffic Director para o seu projeto.
- Se estiver a usar o Compute Engine, ative a API Cloud DNS e configure o Cloud DNS.
- Certifique-se de que a conta de serviço usada pelos proxies do Envoy tem autorizações suficientes para aceder à API Traffic Director.
As secções seguintes fornecem instruções para cada tarefa.
Ativar faturação
Certifique-se de que a faturação está ativada para o seu Google Cloud projeto. Para mais informações, consulte Ative, desative ou altere a faturação de um projeto.
Decida como instalar o Envoy
O Cloud Service Mesh permite-lhe instalar proxies Envoy e gerir esta camada de infraestrutura:
No Compute Engine, pode adicionar automaticamente o Envoy a aplicações em execução nas suas VMs. Usa um modelo de VM que instala o Envoy, o liga ao Cloud Service Mesh e configura a rede da VM.
No Google Kubernetes Engine (GKE), pode adicionar automaticamente proxies sidecar do Envoy aos pods dos seus serviços. Instala um injetor de sidecar do Envoy no cluster, que adiciona proxies de sidecar do Envoy, liga-os à Cloud Service Mesh e configura a rede do seu contentor.
Por último, também pode usar soluções de implementação do Envoy de fornecedores externos com a Cloud Service Mesh. Um exemplo de tal oferta é o GetEnvoy, que oferece uma abordagem baseada no gestor de pacotes para instalar e atualizar os seus proxies Envoy.
Acerca do controlo de versões do Envoy
O Envoy tem de ser a versão 1.9.1 ou posterior para funcionar com a 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:
Quando usa a implementação automática do Envoy com VMs do Compute Engine, a versão do Envoy instalada é uma 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.
Quando usa o injetor sidecar do Envoy com o GKE, o injetor é configurado para usar uma versão recente do Envoy que validámos para funcionar com o Cloud Service Mesh. Quando um sidecar é injetado juntamente com o pod de carga de trabalho, recebe esta versão do Envoy. Se quiser obter uma versão mais recente do Envoy, atualize o injetor de sidecar do Envoy.
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.
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 (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 do IAM do Compute Engine apresentadas na tabela seguinte. Se tiver estas funções, também tem as respetivas autorizações associadas, conforme descrito na documentação do 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 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 ) |
O node pool do GKE ou 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 o Envoy.
Com a xDS v3, conceda à conta de serviço usada pelos clientes do Envoy da Cloud Service Mesh a função roles/trafficdirector.client
.
Ative a API Traffic Director
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.
gcloud
Execute o seguinte comando:
gcloud services enable trafficdirector.googleapis.com
Ative a API Cloud DNS e configure o Cloud DNS
Use estas instruções se estiver a configurar a malha de serviços na nuvem no Compute Engine. Tem de ativar a API Cloud DNS e configurar o Cloud DNS para a resolução de nomes DNS.
Para informações gerais sobre a resolução de DNS e a malha de serviços na nuvem, consulte o artigo Malha de serviços na nuvem e resolução de nomes DNS.
Primeiro, siga as instruções abaixo para ativar a API Cloud DNS.
Consola
Na Google Cloud consola, aceda à página Biblioteca de APIs do seu projeto.
No campo Pesquisar APIs e serviços, introduza
DNS
.Na lista de resultados da pesquisa, clique em API Google Cloud DNS. Se não vir a API Cloud DNS listada, significa que não tem as autorizações necessárias para ativar a API Cloud DNS.
Na página API Cloud DNS, clique em Ativar.
gcloud
Execute o seguinte comando:
gcloud services enable dns.googleapis.com
Em seguida, configure uma zona privada gerida do Cloud DNS. Siga as instruções em Crie uma zona privada.
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 (por exemplo, proxies Envoy) estabelecem ligação ao servidor xDS trafficdirector.googleapis.com
. 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.
- Para o GKE, se
Workload Identity
não estiver ativado, o cliente xDS usa a conta de serviço atribuída ao nó do GKE subjacente. - Se
Workload Identity
estiver ativado, o cliente xDS usa a conta de serviço Google associada à conta de serviço Kubernetes atribuída ao pod.
Precisa das seguintes autorizações. Apenas é suportado o xDS v3. Se estiver a usar a xDS v2, tem de migrar para a xDS v3. Para obter informações sobre como migrar, consulte o artigo Migre da xDS v2 para a xDS v3.
Quando usa o xDS v3, a conta de serviço usada pelos seus clientes tem de ter as autorizações trafficdirector.networks.reportMetrics
, trafficdirector.rateLimitDomains.reportMetrics
e trafficdirector.networks.getConfigs
. Pode usar a função de IAM Cliente do Cloud Service Mesh (roles/trafficdirector.client
), que envolve estas autorizações.
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 Cloud Service Mesh.
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
Continue o processo de configuração
Agora que concluiu os passos pré-requisitos, pode começar a configurar a sua malha de serviços.
- Opções de configuração avançadas do Cloud Service Mesh.
- Configure os atributos de arranque do Envoy.