Limitações do Traffic Director com o Envoy

Neste documento, descrevemos as limitações que se aplicam ao Traffic Director, incluindo limitações avançadas de gerenciamento de tráfego. Para mais informações sobre limites, consulte Cotas e limites.

Limitações gerais

As limitações do Traffic Director incluem o seguinte:

  • O Traffic Director é compatível apenas com as APIs do Google Cloud. O Traffic Director não é compatível com APIs do Istio.
  • É possível usar o Traffic Director para configurar os seguintes protocolos de solicitação: HTTP (HTTP/1.1 ou HTTP/2), 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 Traffic Director.
  • Quando você usa o recurso de proxy TCP de destino 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 Traffic Director é compatível com a VPC compartilhada. Observações:

    • Com as APIs de balanceamento de carga, uma regra de encaminhamento e seu proxy de destino, mapa de URL, serviço de back-end e back-end associados precisam estar em um único projeto, que pode ser de host ou de serviço. Se você tiver vários projetos de serviço, cada um poderá ter o próprio conjunto desses recursos.
    • Com as APIs de balanceamento de carga, por padrão, uma regra de encaminhamento que faz referência a uma rede VPC compartilhada é anunciada para todos os proxies Envoy nos projetos host e de serviço anexados ao projeto host, desde que esses proxies especifique a rede VPC compartilhada nos arquivos bootstrap/sidecar.env. Para adaptar esse comportamento, use a filtragem de configuração.
    • Só é possível acessar o Traffic Director pelas contas de serviço de projetos que têm pelo menos uma regra de encaminhamento com o esquema de balanceamento de carga INTERNAL_SELF_MANAGED associado à rede VPC compartilhada.
  • O Traffic Director oferece suporte ao peering de rede VPC com as APIs de roteamento de serviço, mas não às APIs de balanceamento de carga.

  • O Traffic Director não é oferece suporte aos protocolos que priorizam o servidor.

  • Não é possível usar o Traffic Director 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 o Traffic Director. No entanto, o Google testou o Traffic Director apenas com o proxy do Envoy.

  • Para trabalhar com o Traffic Director, use o Envoy versão 1.9.1 ou posterior.

  • Para usar a expressão regular, use o Envoy versão 1.12.0 ou posterior. As versões do Envoy anteriores à 1.12.0 não são compatíveis com expressões regulares.

  • 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 é NENHUM e BackendService.localityLbPolicy está definida como uma política de balanceamento de carga diferente de MAGLEV, 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.
  • A importação para regras de encaminhamento não funciona corretamente. não é possível reimportar um arquivo YAML exportado. A solução alternativa é exportar o arquivo de configuração, fazer alterações, excluir a regra de encaminhamento e importar o arquivo de configuração.

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

  • O Diretório de serviços e o Traffic Director 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 estiver anexado, os aplicativos que usam o Traffic Director 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.

Verificações de integridade

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 no serviço de back-end.

A seguir