APIs do plano de controle xDS

O Cloud Service Mesh e os respectivos clientes (proxies do Envoy ou bibliotecas gRPC sem proxy) usam a API xDS de código aberto (link em inglês) para trocar informações. Quando você configura o Cloud Service Mesh, por exemplo, usando recursos como regras de encaminhamento e serviços de back-end, o Cloud Service Mesh converte esses recursos em uma configuração xDS, que é compartilhada com os clientes.

Compatibilidade com a versão xDS

O Cloud Service Mesh oferece suporte ao xDS v3 (altamente recomendado) e ao xDS v2. O suporte para o xDS v2 termina em 20 de junho de 2024. Se você estiver implantando o Cloud Service Mesh pela primeira vez, recomendamos que você use o xDS v3.

Para determinar quais versões do Envoy e do gRPC são compatíveis com xDS v3, consulte a documentação do Envoy e do gRPC.

Migrar do xDS v2 para o xDS v3

Há duas etapas no processo de migração:

  1. Atualize as permissões do Identity and Access Management (IAM) concedidas à conta de serviço que seus clientes (proxies Envoy ou bibliotecas gRPC sem proxy) usam ao se conectarem ao Cloud Service Mesh.
  2. Atualize e reimplante os aplicativos. As etapas específicas variam de acordo com a implantação e são explicadas nas seções a seguir.

Atualizar as permissões de IAM da conta de serviço

Verifique se a conta de serviço usada pelos clientes do Cloud Service Mesh (Envoy, gRPC sem proxy) tem as permissões trafficdirector.networks.reportMetrics e trafficdirector.networks.getConfigs. Essas permissões estão incluídas no papel de cliente do Cloud Service Mesh do IAM (roles/trafficdirector.client).

Se você estiver usando um papel personalizado do IAM, é possível adicionar essas permissões ao papel personalizado. Depois de adicionar as permissões, remova o papel Leitor de rede do Compute (roles/compute.networkViewer), Administrador de rede do Compute (roles/compute.networkAdmin) ou ambos da conta de serviço.

Recomendamos que você use o papel de cliente do Cloud Service Mesh em vez do papel de leitor da rede do Compute (roles/compute.networkViewer) ou de administrador da rede do Compute (roles/compute.networkAdmin). O uso do papel de cliente do Cloud Service Mesh restringe as permissões concedidas à conta de serviço e evita permissões excessivamente amplas.

Atualizar os aplicativos

Depois de atualizar as permissões do IAM na conta de serviço, atualize os aplicativos.

Envoy no Compute Engine

Para atualizar os aplicativos no Envoy com o Compute Engine, faça uma reinicialização ou substituição gradual dos grupos gerenciados de instâncias. Uma versão do Envoy compatível com o xDS v3 é adicionada automaticamente às suas instâncias de máquina virtual (VM).

Envoy no GKE

Se você usa a injeção automática do Envoy com o Google Kubernetes Engine (GKE), reinstale o injetor do arquivo secundário nos clusters do GKE que você está usando com o Cloud Service Mesh. Quando um novo pod é criado, um proxy de arquivo secundário do Envoy compatível com o xDS v3 é injetado automaticamente com o pod de carga de trabalho.

Se você usar a injeção manual de arquivo secundário no GKE, reimplante o proxy do arquivo secundário em cada um dos clusters do GKE.

gRPC sem proxy

Há duas etapas no processo de migração:

  1. Verifique se a versão do gRPC que você usa é compatível com o xDS v3. Para saber mais, consulte Recursos xDS em gRPC.

  2. Atualize a configuração de inicialização usando as seguintes etapas:

    1. No campo "xds_servers", adicione "server_features": ["xds_v3"], conforme mostrado neste exemplo de arquivo de inicialização.
    2. O ID do nó precisa estar no seguinte formato, conforme mostrado no exemplo anterior:
      "projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID"
      

Depois de fazer as alterações anteriores no aplicativo, crie e implante-o novamente.

As alterações anteriores na configuração de inicialização não afetam as versões do gRPC que não oferecem suporte ao xDS v3. Além disso, se as alterações anteriores não estiverem presentes na configuração de inicialização, as versões do gRPC compatíveis com o xDS v3 usarão a xDS v2.

Para sua comodidade, use o gerador de bootstrap do gRPC do Cloud Service Mesh versão 0.11.0 ou mais recente para gerar uma configuração de inicialização compatível com xDS v3.

Verificar se os clientes do Cloud Service Mesh estão usando o xDS v3

Para inspecionar a configuração que o Cloud Service Mesh gera para os clientes, use a ferramenta de status do cliente. Essa ferramenta indica se a configuração é xDS v2 ou xDS v3.

A seguir