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 do Google Cloud, incluindo limitações avançadas de gerenciamento de tráfego. Isso não se aplica ao Cloud Service Mesh com as APIs do 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 APIs do Google Cloud.
  • É 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 na computação sem servidor do Google Cloud.
  • 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, na sigla em inglês). Para criar ou excluir NEGs de conectividade híbrida, use a CLI do Google Cloud.
  • Como seu plano de dados lida com 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 o Cloud Service Mesh não têm garantir a acessibilidade da rede para os 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