Limitações do Cloud Service Mesh com o Envoy

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

Para mais informações sobre limites, consulte Cotas e limites.

Limitações gerais

As limitações do Cloud Service Mesh incluem:

  • O Cloud Service Mesh com as APIs de roteamento de serviço só oferece suporte a Google Cloud APIs.
  • É possível usar a Cloud Service Mesh para configurar os seguintes protocolos de solicitação: HTTP (HTTP/1.1 ou HTTP/2), HTTPS, TCP e gRPC.
  • Quando você usa o Envoy como o proxy de plano de dados, o valor stream_idle_timeout tem o padrão 5 minutos. Isso não é configurável pelo Cloud Service Mesh.
  • Quando você usa o recurso TCPRoute para configurar o protocolo de solicitação TCP, não é possível usar os recursos avançados de gerenciamento de tráfego. O gerenciamento avançado do tráfego só está disponível quando você configura o plano de dados para processar as solicitações HTTP ou gRPC.
  • O Cloud Service Mesh oferece suporte ao peering de rede VPC com as APIs de roteamento de serviço.
  • O Cloud Service Mesh não oferece suporte a protocolos que priorizam o servidor.
  • Não é possível usar a Cloud Service Mesh com serviços em execução no Knative ou no Google Cloud Serverless Computing.
  • Neste documento, são abordados os proxies do Envoy. No entanto, é possível usar qualquer proxy de API de padrão aberto (xDS) com a Cloud Service Mesh. No entanto, o Google testou o Cloud Service Mesh apenas com o proxy do Envoy.
  • Para garantir que todas as vulnerabilidades de segurança conhecidas sejam reduzidas, recomendamos usar a versão mais recente do Envoy. Para mais informações sobre alertas de segurança do Envoy, acesse Consultas de segurança do Envoy.
  • O console do Google Cloud não é compatível com grupos de endpoints de rede de conectividade híbrida (NEGs). Para criar ou excluir NEGs de conectividade híbrida, use a CLI do Google Cloud.
  • Como o plano de dados gerencia as verificações de integridade, não é possível usar o console do Google Cloud , a API ou a CLI gcloud para recuperar o status da verificação de integridade.
  • Verifique o iptables e verifique se ele está configurado corretamente. Para mais informações sobre como configurar o iptables, consulte as observações do Envoy sobre a configuração da filtragem HTTP.

    • Se você usar o console do Google Cloud para criar instâncias de máquina virtual (VM), alguns módulos relacionados a ipv6 não serão instalados e não ficarão disponíveis antes da reinicialização. Como resultado, iptables.sh falha devido a dependências ausentes. Nesse caso, reinicie a VM e execute novamente o script run.sh.
    • Se você usa a CLI gcloud para criar VMs do Compute Engine, não tem esse problema.

Limitações avançadas de gerenciamento de tráfego

As limitações do gerenciamento avançado de tráfego incluem o seguinte:

  • Se o valor de BackendService.sessionAffinity não for NENHUM e BackendService.localityLbPolicy for definido como uma política de balanceamento de carga diferente de MAGLEV ou RING_HASH, as configurações de afinidade da sessão não terão efeito.
  • O comando gcloud import não exclui os campos de nível superior do recurso, como o serviço de back-end e o mapa de URL. Por exemplo, se um serviço de back-end for criado com configurações para circuitBreakers, será possível usar um comando gcloud import subsequente para atualizar essas configurações. No entanto, não é possível excluir essas configurações do serviço de back-end. É possível excluir e recriar o recurso sem as configurações de circuitBreakers.

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

  • O Diretório de serviços e a Cloud Service Mesh não garantem a acessibilidade da rede para clientes.
  • Um serviço de back-end só pode referir-se a um dos seguintes itens:

    • Grupo de instâncias gerenciadas ou não gerenciada
    • Grupo de endpoints de rede
    • Vinculações de serviço
  • Os serviços do Diretório de serviços só podem ser usados com serviços de back-end globais com load-balancing-scheme=INTERNAL_SELF_MANAGED.

  • Um serviço do Diretório de serviços referenciado por uma vinculação de serviço pode ser excluído. Se o serviço do Diretório de serviços subjacente ao serviço de back-end for excluído, os aplicativos que usam o Cloud Service Mesh não poderão enviar tráfego para esse serviço. Portanto, as solicitações falharão. Para ver as práticas recomendadas, consulte Observabilidade e depuração.

  • Quando você vincula um serviço do Diretório de serviços a um serviço de back-end, não é possível configurar uma verificação de integridade nesse serviço de back-end.

A seguir