Limitações do Cloud Service Mesh com o Envoy

Neste documento, descrevemos as limitações que se aplicam ao Cloud Service Mesh com 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 APIs do Google Cloud.
  • É possível usar o Cloud Service Mesh para configurar a solicitação a seguir protocolos: 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 a solicitação TCP não será possível usar 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 HTTP ou gRPC solicitações.
  • 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.
  • Este documento aborda os proxies Envoy, mas é possível usar qualquer Proxy de API aberta padrão (xDS) 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 está definida como uma política de balanceamento de carga diferente MAGLEV ou RING_HASH, as configurações de afinidade da sessão não levam 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 Diretório de serviços subjacente ao qual o serviço de back-end está anexado é excluído, os aplicativos que usam o Cloud Service Mesh não podem enviar tráfego para esse serviço. Portanto, as solicitações falharem. 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 back-end não será possível configurar uma verificação de integridade nesse serviço de back-end.

A seguir