Limitazioni gRPC senza proxy

Questo documento descrive le limitazioni che si applicano a Cloud Service Mesh con e applicazioni gRPC senza proxy. Per informazioni sui limiti, vedi Quote e limiti.

Le limitazioni relative a regole di forwarding, mappe URL e proxy di destinazione si applicano solo a Cloud Service Mesh con le API di bilanciamento del carico di Google Cloud.

Limitazioni generali

Limitazioni di Cloud Service Mesh con applicazioni gRPC senza proxy include:

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

  • gRPC senza proxy supporta rilevamento, routing, bilanciamento del carico, carico report e molte funzionalità avanzate di gestione del traffico.

    • Per la versione minima di gRPC richiesta per supportare alcune gestione avanzata del traffico vedi le funzioni, Versioni e linguaggi di gRPC supportati.

    • Per le tue applicazioni gRPC che richiedono traffico avanzato non supportato funzionalità di gestione, usa il resolver dei nomi DNS anziché il resolver xDS ed eseguire il deployment con proxy sidecar supportati con Cloud Service Mesh. Nel proxy gRPC di destinazione, imposta il campo validateForProxyless su FALSE in modo da poter configurare funzionalità che non sono ancora supportate da gRPC, disponibili in Cloud Service Mesh con l'uso di proxy sidecar.

  • gRPC senza proxy supporta solo il bilanciamento del carico con hash round-robin e hash circolare criteri. Altro Criteri di bilanciamento del carico non sono supportati.

    • Cloud Service Mesh fornisce un elenco ponderato in base alle priorità località: un gruppo di istanze o un gruppo di endpoint di rete (NEG): al client gRPC. Cloud Service Mesh calcola questo elenco in base sulla zona più vicina disponibile, sulla sua capacità di bilanciamento del carico del servizio di backend.
    • Per una richiesta specifica, il cliente sceglie una o più località in base alla priorità, al peso e il bilanciamento del carico basato su hash "round-robin" o "ring ring" verso i backend quelle località.
  • Il failover da una zona (località) a un'altra inizia quando l'attuale capacità 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 una regola di forwarding che fa riferimento a un proxy gRPC di destinazione potrebbe richiedere fino a minuto.

  • NEG connettività ibrida (NON_GCP_PRIVATE_IP_PORT NEG) non sono supportati dai client gRPC senza proxy.

Limitazioni delle mappe URL

Il seguente traffico della mappa URL le funzionalità di gestione 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 di URL:

  • Caratteri jolly nelle regole host e nelle regole predefinite di una mappa URL. inclusa la regola host * creata implicitamente di una mappa URL, non sono supportate. Queste voci vengono ignorate quando viene eseguita la corrispondenza dell'host.

  • Le seguenti funzionalità non sono supportate:

    • queryParameterMatches in routeRules
    • headerAction, urlRewrite, requestMirrorPolicy, corsPolicy e Azioni percorso urlRedirect
    • Azione route timeout; usa 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 una regola host corrispondente non viene trovata quando un client gRPC senza proxy cerca un nome del servizio, Cloud Service Mesh restituisce un errore di ricerca del nome invece di utilizzando l'azione o il servizio predefinito della mappa URL.
    • headerAction in weightedBackendServices
  • Nelle regole di corrispondenza dell'intestazione della mappa URL, solo l'elemento non binario specificato dall'utente metadati personalizzati e l'intestazione content-type. Il seguente livello di trasporto Non è possibile utilizzare intestazioni 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 host di una mappa URL per passare da un servizio di backend a un'altra, il traffico potrebbe essere interrotto temporaneamente mentre la nuova configurazione viene inviato ai client. Per evitare questa limitazione, configura suddivisione del traffico con servizi di backend ponderati. Dopo aver configurato la suddivisione del traffico, sposta lentamente il traffico dal backend precedente al nuovo servizio di backend.

Limitazioni del proxy gRPC di destinazione

Quando un proxy gRPC di destinazione fa riferimento a una mappa URL, non puoi configurare il seguenti elementi della mappa URL. Questo vale se utilizzi un file collaterale o un servizio gRPC proxyless perché queste specifiche 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à del servizio di backend non sono supportate con proxyless Servizi gRPC 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

Tieni presente che un client gRPC eseguirà l'NACK della configurazione da Cloud Service Mesh se sono configurati valori non supportati. Questo causerà la configurazione devono essere rifiutati dal client perché il protocollo xDS richiede rifiutare tutte le risorse in una determinata risposta, anziché poter rifiutare solo una singola risorsa dalla risposta. Questo fa sì che il client il canale passa in stato di errore temporaneo fino alla correzione della configurazione. Scadenza a questa limitazione, devi assicurarti che tutti i clienti supportino il valore richiesto prima di configurare una funzionalità per un servizio. Ad esempio, se modifichi ROUND_ROBIN per RING_HASH, devi assicurarti che tutti i clienti siano a una versione che supporta RING_HASH.

Limitazioni per la gestione avanzata del traffico

Non puoi configurare alcune funzionalità di gestione avanzata del traffico per il proxyless Servizi gRPC con Cloud Service Mesh. Per le funzionalità supportate, consulta seguenti:

Limitazioni con Service Directory

  • Service Directory e Cloud Service Mesh non garantire la connettività di rete ai clienti.
  • Un servizio di backend può fare riferimento solo a uno dei seguenti elementi:

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

  • Un servizio Service Directory a cui fa riferimento un servizio l'associazione può essere eliminata. Se il servizio Service Directory sottostante viene eliminato il servizio di backend a cui è collegato il servizio di backend, che utilizzano Cloud Service Mesh non possono inviare traffico a questo servizio, pertanto non vanno a buon fine. Per le best practice, consulta Osservabilità e debug.

  • Quando associ un servizio Service Directory a un backend non puoi configurare un controllo di integrità per quel servizio di backend.

Passaggi successivi