Limitazioni gRPC senza proxy

Questo documento descrive le limitazioni che si applicano a Traffic Director con applicazioni gRPC senza proxy. Per informazioni sui limiti, consulta Quote e limiti.

Limitazioni generali

Le limitazioni di Traffic Director con applicazioni gRPC senza proxy includono quanto segue:

  • Non puoi configurare i servizi di backend e le mappe di regole di routing con il protocollo gRPC nella console Google Cloud. Per queste risorse, la console Google Cloud è di sola lettura.

  • gRPC proxyless supporta il rilevamento degli endpoint, il routing, il bilanciamento del carico, la generazione di report sul carico e molte funzionalità avanzate di gestione del traffico.

    • Per la versione minima di gRPC necessaria per supportare alcune funzionalità di gestione avanzata del traffico, consulta Versioni e lingue di gRPC supportate.

    • Per le applicazioni gRPC che richiedono funzionalità avanzate per la gestione del traffico non supportate, utilizza il resolver dei nomi DNS anziché il resolver xDS ed esegui il deployment con i proxy sidecar supportati con Traffic Director. Nel proxy gRPC di destinazione, imposta il campo validateForProxyless su FALSE in modo da poter configurare funzionalità non ancora supportate da gRPC, ma disponibili in Traffic Director con l'uso di proxy sidecar.

  • gRPC senza proxy supporta solo i criteri di bilanciamento del carico con hash round robin e hash circolare. Altri criteri di bilanciamento del carico non sono supportati.

    • Traffic Director fornisce al client gRPC un elenco ponderato prioritario di località, ovvero un gruppo di istanze o un gruppo di endpoint di rete (NEG). Traffic Director calcola questo elenco in base alla zona disponibile più vicina, alla sua capacità e alla modalità di bilanciamento del servizio di backend.
    • Per una richiesta specifica, il client gRPC sceglie una o più località in base alla priorità e alla ponderazione ed esegue il bilanciamento del carico basato su hash round robin o ring verso i backend all'interno di quelle località.
  • Il failover da una zona (località) a un'altra inizia quando la capacità attuale della zona scende al di sotto del 50%. Non puoi configurare questa soglia.

  • In alcuni casi, i comandi di configurazione relativi a un proxy gRPC di destinazione e a una regola di forwarding che fa riferimento a un proxy gRPC di destinazione potrebbero richiedere fino a un minuto.

  • I NEG di connettività ibrida (NON_GCP_PRIVATE_IP_PORT NEG) non sono supportati con i client gRPC senza proxy.

Limitazioni delle mappe URL

Le seguenti funzionalità di gestione del traffico della mappa URL sono supportate con i servizi gRPC senza proxy.

Funzionalità supportate in pathMatcher di hostRules:

pathMatcher
  name
  description
  defaultService
  defaultRouteAction
     weightedBackendServices
       backendService
       weight
    retryPolicy
       retryConditions
       numRetries
    faultInjectionPolicy
    maxStreamDuration
  pathRules
    service
    routeAction
      weightedBackendServices
         backendService
         weight
      retryPolicy
         retryConditions
         numRetries
      faultInjectionPolicy
      maxStreamDuration
    paths
  routeRules
    priority
    description
    matchRules
        prefixMatch
        fullPathMatch
        headerMatches
        metadataFilters
    service
    routeAction
      weightedBackendServices
         backendService
         weight
      retryPolicy
         retryConditions
         numRetries
      faultInjectionPolicy
      maxStreamDuration

Quando utilizzi servizi gRPC senza proxy, si applicano le seguenti limitazioni delle mappe URL:

  • I caratteri jolly nelle regole host e nelle regole predefinite di una mappa URL, inclusa la regola host * creata implicitamente per una mappa URL, non sono supportati. Queste voci vengono ignorate una volta completata la corrispondenza dell'host.

  • Le seguenti funzionalità non sono supportate:

    • queryParameterMatches in routeRules
    • Azioni di route headerAction, urlRewrite, requestMirrorPolicy, corsPolicy e urlRedirect
    • Azione di route timeout; utilizza maxStreamDuration anziché timeout
    • perTryTimeout in retryPolicy
    • retryConditions in retryPolicy tranne una o più condizioni di cancelled, deadline-exceeded, internal, resource-exhausted e unavailable
    • defaultService, defaultRouteAction, defaultUrlRedirect e headerAction della mappa URL non vengono utilizzati dai servizi gRPC senza proxy. Se non viene trovata una regola host corrispondente quando un client gRPC senza proxy cerca il nome di un servizio, Traffic Director restituisce un errore di ricerca del nome anziché utilizzare il servizio o l'azione predefiniti della mappa URL.
    • headerAction in weightedBackendServices
  • Nelle regole di corrispondenza dell'intestazione della mappa URL, sono supportati solo i metadati personalizzati e l'intestazione content-type non binari. Le seguenti intestazioni a livello di trasporto non possono essere utilizzate nelle regole di corrispondenza delle intestazioni: :authority, :method, :path, :scheme, user-agent, accept-encoding, content-encoding, grpc-accept-encoding, grpc-encoding, grpc-previous-rpc-attempts, grpc-tags-bin, grpc-timeout e grpc-trace-bin.

  • Quando aggiorni una regola dell'host della mappa URL in modo da passare da un servizio di backend a un altro, il traffico potrebbe essere perso temporaneamente mentre la nuova configurazione viene inviata ai client. Per evitare questo limite, configura la suddivisione del traffico con i servizi di backend ponderati. Dopo aver configurato la suddivisione del traffico, sposta lentamente il traffico dal servizio di backend precedente a quello nuovo.

Limitazioni del proxy gRPC di destinazione

Quando un proxy gRPC di destinazione fa riferimento a una mappa URL, non puoi configurare le seguenti funzionalità della mappa URL. Questo vale sia che utilizzi un proxy sidecar o un servizio gRPC proxyless, perché queste funzionalità specifiche del protocollo HTTP non si applicano al protocollo gRPC:

  • queryParameterMatches regola di corrispondenza
  • urlRewrite azione route
  • urlRedirect azione route
  • corsPolicy azione

Limitazioni del servizio di backend

Le seguenti funzionalità servizio di backend non sono supportate con i servizi gRPC senza proxy supportati con un proxy sidecar:

  • localityLbPolicy tranne LEAST_REQUEST (solo con client Java), ROUND_ROBIN e RING_HASH
  • sessionAffinity tranne HEADER_FIELD e NONE
  • consistentHash tranne i campi httpHeaderName e minimumRingSize
  • affinityCookieTtlSec
  • timeoutSec; usa invece maxStreamDuration
  • circuitBreakers tranne il campo maxRequests

Limitazioni alla gestione avanzata del traffico

Non è possibile configurare alcune funzionalità avanzate di gestione del traffico per i servizi gRPC proxyless con Traffic Director. Per le funzionalità supportate, vedi:

Limitazioni con Service Directory

  • Service Directory e Traffic Director non garantiscono la connettività di rete per i client.
  • Un servizio di backend può fare riferimento solo a uno dei seguenti elementi:

    • Gruppo di istanze gestite o gruppo di istanze non gestite
    • Gruppo di endpoint di rete
    • Associazioni dei servizi
  • I servizi Service Directory possono essere utilizzati solo con i servizi di backend globali con load-balancing-scheme=INTERNAL_SELF_MANAGED.

  • È possibile eliminare un servizio Service Directory a cui fa riferimento un'associazione di servizi. Se il servizio Service Directory sottostante a cui è collegato il servizio di backend viene eliminato, le applicazioni che utilizzano Traffic Director non possono inviare traffico a questo servizio e, di conseguenza, le richieste non andranno a buon fine. Per le best practice, consulta Osservabilità e debug.

Controlli di integrità

Quando associ un servizio Service Directory a un servizio di backend, non puoi configurare un controllo di integrità sul servizio di backend.

Passaggi successivi