Preparar a configuração do Traffic Director com o Envoy

A configuração do Traffic Director inclui as seguintes fases:

  1. Conceder permissões, ativar a API Traffic Director e, se você estiver usando o Compute Engine, configurar o Cloud DNS.
  2. Como implantar aplicativos com proxies Envoy.
  3. Criar serviços e regras de roteamento que determinam como o tráfego viaja pela malha de serviço.

Neste documento, descrevemos a primeira fase, que se aplica se você estiver usando as APIs mais antigas ou as novas APIs de roteamento de serviço, que estão em visualização. A segunda e terceira fases são abordadas pelos guias específicos da plataforma listados em Continuar o processo de configuração mais adiante neste documento.

Antes de ler este guia, familiarize-se com a visão geral conceitual do Traffic Director. Se você estiver usando as novas APIs, leia a visão geral das APIs de roteamento de novos serviços.

Pré-requisitos

Se você planeja usar o Traffic Director para configurar proxies do Envoy em execução em aplicativos em instâncias de máquina virtual (VM), contêineres ou uma combinação dos dois, é necessário primeiro concluir as seguintes tarefas:

  1. Ative o faturamento.
  2. Decida como você quer instalar o Envoy.
  3. Conceder as permissões necessárias
  4. Ativar a API Traffic Director no seu projeto
  5. Se você estiver usando o Compute Engine, ative a API Cloud DNS e configure o Cloud DNS.
  6. Verifique se a conta de serviço usada pelos proxies do Envoy tem permissões suficientes para acessar a API Traffic Director.

Nas seções a seguir, fornecemos instruções para cada tarefa.

Ativar faturamento

Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Para mais informações, consulte Ativar, desativar ou alterar o faturamento de um projeto.

Decidir como instalar o Envoy

O Traffic Director facilita a instalação de proxies do Envoy e o gerenciamento dessa camada de infraestrutura:

  • No Compute Engine, é possível adicionar automaticamente o Envoy aos aplicativos em execução nas suas VMs. Você usa um modelo de VM que instala o Envoy, o conecta ao Traffic Director e configura a rede da VM.

  • No Google Kubernetes Engine (GKE), é possível adicionar automaticamente proxies sidecar do Envoy aos pods dos serviços. Você instala um injetor de arquivo secundário do Envoy no cluster, que adiciona proxies secundários do Envoy, os conecta ao Traffic Director e configura a rede do contêiner.

Por fim, também é possível usar as soluções de implantação do Envoy de provedores terceirizados com o Traffic Director. Um exemplo desse tipo de oferta é o GetEnvoy (em inglês), que oferece uma abordagem baseada em gerenciador de pacotes para a instalação e atualização dos proxies do Envoy.

Sobre o controle de versões do Envoy

O Envoy precisa ser a versão 1.9.1 ou superior para trabalhar com o Traffic Director. Recomendamos sempre usar a versão mais recente do Envoy para garantir que as vulnerabilidades de segurança conhecidas sejam reduzidas.

Se você decidir implantar o Envoy usando um de nossos métodos automatizados, nós cuidaremos desta tarefa para você:

  • Quando você usa a implantação automatizada do Envoy com VMs do Compute Engine, a versão do Envoy instalada é aquela que validamos para funcionar com o Traffic Director. Quando uma nova VM é criada com o modelo de instância, a VM recebe a versão mais recente que validamos. Se você tiver uma VM de longa duração, use uma atualização gradual para substituir suas VMs atuais e coletar a versão mais recente.

  • Quando você usa o injetor de arquivo secundário do Envoy com o GKE, o injetor está configurado para usar uma versão recente do Envoy que validamos para funcionar com o Traffic Director. Quando um arquivo secundário é injetado junto com o pod de carga de trabalho, ele recebe essa versão do Envoy. Se você quiser escolher uma versão mais recente do Envoy, atualize o injetor de arquivo secundário do Envoy.

Para informações sobre versões específicas do Envoy, consulte Histórico de versões. Para informações sobre vulnerabilidades de segurança, consulte Consultores de segurança.

Conceder as permissões necessárias do IAM

Você precisa ter permissões suficientes de gerenciamento de identidade e acesso (IAM) para criar instâncias de VM e modificar uma rede para configurar o Traffic Director. Se você tem o papel de proprietário ou editor (roles/owner or roles/editor) do projeto em que está ativando o Traffic Director, você já tem as permissões corretas.

Caso contrário, você precisará ter todos os papéis do IAM do Compute Engine mostrados na tabela a seguir. Se tiver esses papéis, você também terá as permissões associadas, conforme descrito na documentação do IAM do Compute Engine.

Tarefa Papel necessário
Definir a política de IAM em uma conta de serviço. Administrador da conta de serviço
(roles/iam.serviceAccountAdmin)
Ativar o Traffic Director. Administrador do Service Usage
(roles/serviceusage.serviceUsageAdmin)
Criar redes, sub-redes e componentes do balanceador de carga. Compute Network Admin
(roles/compute.networkAdmin)
Adicionar e remover regras de firewall. Administrador de segurança do Compute
(roles/compute.securityAdmin)
Criar instâncias. Administrador da instância do Compute
(roles/compute.instanceAdmin)

O pool de nós do GKE ou as VMs do Compute Engine precisam ter o escopo https://www.googleapis.com/auth/cloud-platform. Para mais informações, consulte Solução de problemas em implantações que usam o Envoy.

Com o xDS v3, conceda à conta de serviço usada pelos clientes do Envoy do Traffic Director o papel roles/trafficdirector.client.

Ativar a API Traffic Director

Console

  1. No Console do Google Cloud, acesse a página Biblioteca de APIs do seu projeto.

    Acessar a Biblioteca de APIs

  2. No campo Pesquisar APIs e serviços, insira Traffic Director.

  3. Na lista de resultados da pesquisa, clique em API Traffic Director. Se ela não estiver listada, isso significa que você não tem as permissões necessárias para ativar a API Traffic Director.

  4. Na página API Traffic Director, clique em Ativar.

gcloud

Execute este comando:

gcloud services enable trafficdirector.googleapis.com

Ativar a API Cloud DNS e configurar o Cloud DNS

Use estas instruções se estiver configurando o Traffic Director no Compute Engine. Você precisa ativar a API Cloud DNS e configurar o Cloud DNS para resolução de nomes DNS.

Para mais informações sobre o Traffic Director e a resolução de DNS, consulte Resolução do Traffic Director e do nome de DNS.

Primeiro, siga as instruções abaixo para ativar a API Cloud DNS.

Console

  1. No Console do Google Cloud, acesse a página Biblioteca de APIs do seu projeto.

    Acessar a Biblioteca de APIs

  2. No campo Pesquisar APIs e serviços, insira DNS.

  3. Na lista de resultados da pesquisa, clique em API Cloud DNS. Se você não vir a API Cloud DNS listada, isso significa que você não tem as permissões necessárias para ativá-la.

  4. Na página API Cloud DNS, clique em Ativar.

gcloud

Execute este comando:

gcloud services enable dns.googleapis.com

Em seguida, configure uma zona particular gerenciada do Cloud DNS. Use as instruções em Criar uma zona particular.

Ativar a conta de serviço para acessar a API Traffic Director

Quando você configura seu plano de dados e o conecta ao Traffic Director, seus clientes xDS (por exemplo, proxies do Envoy) se conectam ao servidor xDS trafficdirector.googleapis.com. Esses 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 controle sejam 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 usará a conta de serviço atribuída ao nó do GKE subjacente.
  • Se Workload Identity estiver ativado, o cliente xDS usará a conta de serviço do Google vinculada à conta de serviço do Kubernetes atribuída ao pod.

Você precisa das seguintes permissões, dependendo da versão do cliente xDS usado para configurar o Envoy. É altamente recomendável configurar suas novas implantações do Envoy com o xDS v3 ou migrar para ele caso você tenha uma implantação atual que usa o xDS v2.

  • Quando você usa o xDS v3, a conta de serviço usada pelos clientes precisa ter as permissões trafficdirector.networks.reportMetrics e trafficdirector.networks.getConfigs. É possível usar o papel de cliente do Traffic Director (roles/trafficdirector.client) do IAM, que encapsula as duas permissões.

  • Quando você usa o xDS v2, a conta de serviço usada pelos clientes precisa ter a permissão de IAM compute.globalForwardingRules.get para envolvidos no projeto. Também é possível conceder essa permissão atribuindo o papel Leitor de rede do Compute (roles/compute.networkViewer) à conta de serviço.

Console

  1. No Console do Google Cloud, acesse a página IAM e administrador:

    Acessar IAM e administrador

  2. Selecione o projeto.

  3. Identifique a conta de serviço em que você quer incluir um papel.

    • Se a conta de serviço de ainda não estiver na lista de membros, ela não terá nenhum papel atribuído a ela. Clique em Adicionar e digite o endereço de e-mail da conta do serviço.
    • Se estiver na lista de membros, a conta de serviço já terá papéis. Selecione a conta de serviço e clique na guia Papéis.
  4. Expanda o papel. Na conta de serviço que você quer editar, clique em Editar.

  5. Selecione Outro> papel Cliente do Traffic Director.

  6. Para aplicar o papel à conta de serviço, clique em Salvar.

gcloud

Execute este comando:

gcloud projects add-iam-policy-binding PROJECT \
    --member serviceAccount:SERVICE_ACCOUNT_EMAIL \
    --role=roles/trafficdirector.client

Substitua:

  • PROJECT: enter gcloud config get-value project
  • SERVICE_ACCOUNT_EMAIL: o e-mail associado à conta de serviço.

Continuar o processo de configuração

Agora que você concluiu as etapas de pré-requisito, comece a configurar a malha de serviço.