Limitações do Cloud Service Mesh com o Envoy

Este documento descreve as limitações que se aplicam ao Cloud Service Mesh com as Google Cloud APIs, incluindo limitações avançadas de gestão de tráfego. Não se aplica ao Cloud Service Mesh com as APIs Istio.

Para ver informações sobre os limites, consulte o artigo Quotas e limites.

Limitações gerais

As limitações do Cloud Service Mesh incluem o seguinte:

  • A Cloud Service Mesh com as APIs de encaminhamento de serviços só suporta Google Cloud APIs.
  • Pode usar a Cloud Service Mesh para configurar os seguintes protocolos de pedido: HTTP (HTTP/1.1 ou HTTP/2), HTTPS, TCP e gRPC.
  • Quando usa o Envoy como proxy do plano de dados, o valor stream_idle_timeout é predefinido para 5 minutos. Isto não é configurável através da Cloud Service Mesh.
  • Quando usa o recurso TCPRoute para configurar o protocolo de pedido TCP, não pode usar as funcionalidades avançadas de gestão de tráfego. A gestão avançada de tráfego só está disponível quando configura o plano de dados para processar pedidos HTTP ou gRPC.
  • O Cloud Service Mesh suporta o VPC Network Peering com as APIs de encaminhamento de serviços.
  • O Cloud Service Mesh não suporta protocolos de servidor primeiro.
  • Não pode usar o Cloud Service Mesh com serviços executados no Knative ou na Google Cloud computação sem servidor.
  • Este documento aborda os proxies Envoy, mas pode usar qualquer proxy de API de norma aberta (xDS) com a Cloud Service Mesh. No entanto, a Google testou a malha de serviços na nuvem apenas com o proxy Envoy.
  • Para garantir que todas as vulnerabilidades de segurança conhecidas são mitigadas, recomendamos que use a versão mais recente do Envoy. Para informações sobre os avisos de segurança da Envoy, consulte os avisos de segurança da Envoy.
  • A Google Cloud consola não suporta grupos de pontos finais de rede (NEGs) de conetividade híbrida. Para criar ou eliminar NEGs de conetividade híbrida, use a CLI do Google Cloud.
  • Uma vez que o seu plano de dados processa as verificações de estado, não pode usar a Google Cloud consola, a API nem a CLI gcloud para obter o estado da verificação de estado.
  • Verifique o ficheiro iptables e certifique-se de que está configurado corretamente. Para mais informações sobre como configurar iptables, consulte as notas do Envoy sobre a configuração da filtragem HTTP.

    • Se usar a Google Cloud consola para criar instâncias de máquinas virtuais (VMs), alguns módulos relacionados com o ipv6não são instalados e ficam disponíveis antes de um reinício. Como resultado, o iptables.sh falha devido a dependências em falta. Nesse caso, reinicie a VM e volte a executar o script run.sh.
    • Se usar a CLI gcloud para criar VMs do Compute Engine, não deverá ter este problema.

Limitações da gestão avançada de tráfego

As limitações da gestão avançada de tráfego incluem o seguinte:

  • Se o valor de BackendService.sessionAffinity não for NONE e BackendService.localityLbPolicy estiver definido como uma política de equilíbrio de carga diferente de MAGLEV ou RING_HASH, as definições de afinidade de sessão não têm efeito.
  • O comando gcloud import não elimina os campos de nível superior do recurso, como o serviço de back-end e o mapa de URLs. Por exemplo, se um serviço de back-end for criado com definições para circuitBreakers, pode usar um comando gcloud import subsequente para atualizar essas definições. No entanto, não pode eliminar essas definições do serviço de back-end. Pode eliminar e recriar o próprio recurso sem as definições de circuitBreakers.

Limitações com o diretório de serviços

  • O Service Directory e o Cloud Service Mesh não garantem a acessibilidade de rede para os clientes.
  • Um serviço de back-end só pode referenciar um dos seguintes elementos:

    • Grupo de instâncias geridas ou grupo de instâncias não geridas
    • Grupo de pontos finais da rede
    • Vínculos de serviços
  • Os serviços do Service Directory só podem ser usados com serviços de back-end globais com load-balancing-scheme=INTERNAL_SELF_MANAGED.

  • Pode eliminar um serviço do Service Directory referenciado por uma associação de serviços. Se o serviço Service Directory subjacente ao qual o serviço de back-end está anexado for eliminado, as aplicações que usam a Cloud Service Mesh não podem enviar tráfego para este serviço e, por isso, os pedidos falham. Consulte o artigo Observabilidade e depuração para ver as práticas recomendadas.

  • Quando associa um serviço do Service Directory a um serviço de back-end, não pode configurar uma verificação de estado nesse serviço de back-end.

O que se segue?

  • Para saber mais sobre as limitações aplicáveis ao Cloud Service Mesh com aplicações gRPC sem proxy, consulte o artigo Limitações do gRPC sem proxy.