Limitações do Cloud Service Mesh com o Envoy

Neste documento, descrevemos as limitações que se aplicam ao Cloud Service Mesh com as APIs do Google Cloud, incluindo limitações avançadas de gerenciamento de tráfego. Ele não se aplica ao Cloud Service Mesh com as APIs do Istio.

Para saber mais 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 às APIs do Google Cloud.
  • É possível usar o 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 utilizar os recursos avançados de gerenciamento de tráfego. O gerenciamento de tráfego avançado só fica disponível quando você configura o plano de dados para processar 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 o Cloud Service Mesh com serviços em execução no Knative ou na computação sem servidor do Google Cloud.
  • Neste documento, falamos sobre os proxies Envoy, mas é possível usar qualquer proxy de API de padrão aberto (xDS, na sigla em inglês) com o Cloud Service Mesh. No entanto, o Google testou o Cloud Service Mesh somente com o proxy 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 NONE e BackendService.localityLbPolicy estiver 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 vão entrar em vigor.
  • 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 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 subjacente do Diretório de serviços ao qual o serviço de back-end está anexado 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 nele.

A seguir