Risoluzione dei problemi

Questa pagina spiega vari scenari di errore, i messaggi di errore relativi a questi scenari e la procedura per la risoluzione degli errori.

Scenari di errore di Networking

L'intervallo IP allocato è esaurito

Memorystore for Memcached richiede l'utilizzo di un accesso privato ai servizi e un intervallo di indirizzi IP associato per quella connessione. È possibile esaurire gli indirizzi IP disponibili in questo intervallo con istanze Memcached e altre risorse Google Cloud.

Se gli indirizzi IP sono esauriti, la creazione di un'istanza restituisce il seguente messaggio di errore:

ERROR: (gcloud.memcache.instances.create) { "code": 9, "message": "Unable to create instance. The allocated private IP address space is exhausted. For information on expanding the allocation, see https://cloud.google.com/vpc/docs/configure-private-services-access#modify-ip-range" }

Puoi risolvere il problema assegnando altri indirizzi IP. Per maggiori informazioni per informazioni su come eseguire questa operazione, consulta l'articolo Esaurimento dell'intervallo di indirizzi IP.

Non è stata stabilita una connessione di accesso privato ai servizi per la tua rete.

Se tenti di creare un'istanza Memorystore for Memcached senza una connessione di accesso ai servizi per la rete del progetto, la creazione non riuscirà e restituirà il seguente errore:

Google private service access is not enabled. Enable private service access and try again

Per creare un'istanza, segui le istruzioni di configurazione dell'accesso ai servizi privati riportate in Come stabilire una connessione di accesso a servizi privati.

Il peering di rete per l'accesso ai servizi privati viene eliminato

L'impostazione di una connessione di accesso privato ai servizi crea una connessione di peering di rete chiamata servicenetworking-googleapis-com, che viene visualizzata nella pagina Peering di rete VPC del progetto.

L'eliminazione di questo peering di rete potrebbe causare i seguenti errori:

  • telnet: Unable to connect to remote host: Connection timed out
  • Unable to create instance. Enable private service access for the authorized network and try again. For information on enabling private service access, see https://cloud.google.com/service-infrastructure/docs/enabling-private-services-access

Per risolvere il problema, segui l'ultimo passaggio delle istruzioni di gcloud in Come stabilire una connessione di accesso a servizi privati.

Le regole firewall bloccano gli indirizzi IP dell'istanza

Possono verificarsi problemi di connettività se crei regole firewall che bloccano gli indirizzi IP dell'intervallo IP allocato associato alla connessione di accesso ai servizi privati.

Assicurati di non creare regole firewall di rete che blocchino l'intervallo IP delle tue istanze Memcached.

Errori che si connettono all'istanza Memcached da altre risorse Google Cloud

Errori che si connettono all'istanza dall'ambiente standard App Engine o dalle funzioni Cloud Run

Se non riesci a connetterti a un'istanza Memcached utilizzando lo standard App Engine di Compute Engine o le funzioni di Cloud Run, è possibile che tu non abbia configurato Connettore di accesso VPC serverless per il tuo ambiente.

Per istruzioni sulla configurazione dell'accesso VPC serverless per nell'ambiente standard di App Engine, consulta Connessione a una rete VPC.

Per istruzioni su come configurare l'accesso VPC serverless per le funzioni Cloud Run, consulta Connessione a una rete VPC.

Errori durante la connessione all'istanza utilizzando un cluster Google Kubernetes Engine

Non puoi connetterti a un'istanza Memorystore for Memcached da una Cluster GKE senza aliasing IP/native VPC abilitato sul tuo in un cluster Kubernetes. È più facile abilitare l'aliasing IP/rete VPC nativa durante la creazione di un cluster GKE. Quando crei il cluster, seleziona Nativo VPC nelle opzioni avanzate. Per maggiori dettagli, consulta Creare cluster nativi di VPC.

Errori durante la connessione all'istanza utilizzando l'ambiente flessibile di App Engine o le VM di Compute Engine

Se la tua istanza presenta problemi di connettività, segui questi passaggi per la risoluzione dei problemi:

  1. Assicurati che l'istanza Memcached sia stata di cui è stato eseguito il provisioning nella stessa regione e nella stessa rete del client che sta tentando di accedervi.

  2. Verifica che nel progetto non siano presenti regole firewall di rete che bloccano la rete gli IP dei nodi della tua istanza Memcached.

    • Per visualizzare gli indirizzi IP dei nodi, visualizza la scheda dei nodi di Memcached nella console Google Cloud.
  3. Invia il Telnet a uno dei tuoi nodi memcached ed esegui alcuni semplici Memcachedset e get per vedere se l'istanza è reattiva o meno.

Scenari di errore di Identity and Access Management (IAM)

Ripristino di un account di servizio eliminato

Memorystore for Memcached utilizza i seguenti account di servizio per gestire le tue istanze Memcached:

  • service-project-number@service-networking.iam.gserviceaccount.com
  • service-project-number@cloud-memcache-sa.iam.gserviceaccount.com

L'eliminazione delle associazioni dei criteri per questi account di servizio ti impedisce di creare nuove istanze.

Se tenti di creare un'istanza Memcached utilizzando gcloud in questo scenario, potrebbe essere visualizzato il seguente messaggio di errore:

ERROR: (gcloud.memcache.instances.create) { "code": 13, "message": "an internal error has occurred" }

Per ristabilire l'associazione dei criteri per questi account di servizio, esegui uno dei seguenti comandi, sostituendo variables con i valori appropriati. Esegui il comando associato all'account di servizio eliminato.

gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@service-networking.iam.gserviceaccount.com' --role='roles/servicenetworking.serviceAgent'
gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@cloud-memcache-sa.iam.gserviceaccount.com' --role='roles/memcache.serviceAgent'

Errori di timeout dell'operazione

I seguenti scenari di errore comportano che un'istanza Memcached non risponda e/o timeout delle operazioni di istanza/nodo.

Errore di partizione di rete

A volte le risorse Google Cloud non possono comunicare tra zone all'interno di una regione a causa di un errore di partizione di rete nei server Google Cloud. Ciò può causare all'istanza di perdere la connessione, causando un errore di timeout.

Dopo che Google Cloud ha risolto l'errore di partizione di rete per la regione o la zona in cui è stato eseguito il provisioning dell'istanza, la connettività dovrebbe riprendere normalmente.

In questo caso, potresti visualizzare un messaggio di errore di connettività come il seguente:

telnet: Unable to connect to remote host: Connection timed out

Se non riesci a identificare la causa dell'errore di timeout, contatta Assistenza Google Cloud.

Riferimento improprio dell'applicazione agli IP dei nodi

Se il client scade quando tenta di connettersi a uno o più nodi, un potenziale problema è che l'applicazione potrebbe non specificare l'indirizzo IP corretto dei nodi a cui stai tentando di connetterti. Verifica che un'applicazione punta agli indirizzi IP dei nodi nel tuo cluster.

In questo caso, potresti visualizzare un messaggio di errore di connettività, ad esempio il seguente:

telnet: Unable to connect to remote host: Connection timed out

Per risolvere il problema, cerca gli indirizzi IP dei tuoi nodi e assicurati che la tua applicazione indichi con precisione gli indirizzi dei nodi.

Altri scenari di errore

Intervalli di indirizzi IP di Compute Engine non supportati

Non puoi accedere a Memorystore for Memcached dalle VM di Compute Engine che hanno un indirizzo IP nell'intervallo 172.17.0.0/16, perché è riservato a un componente interno.

Distribuzione dei nodi non bilanciata nelle zone di una regione

Se una zona in una regione Google Cloud non è disponibile nel momento in cui eseguire il provisioning di un'istanza Memcached, i nodi vengono creati nelle zone disponibili. Ciò può portare a una distribuzione non equilibrata dei nodi Memached nelle zone di una regione.

Ciò non dovrebbe influire in modo significativo sul rendimento dell'applicazione. Tuttavia, idealmente, i nodi dovrebbero essere distribuiti in tutte le zone di una regione per proteggere i tuoi dati da interruzioni a livello di zona.

Se non sei soddisfatto della distribuzione dei nodi nelle zone quando creare un'istanza, puoi attendere che la zona sia di nuovo online per creare la tua istanza oppure puoi utilizzare la seguente strategia per tentare di ridistribuire nodi tra le zone in un secondo momento:

Per ridistribuire i nodi Memcached tra i nodi disponibili in una zona, esegui lo scale up della tua istanza, quindi riduci il numero di nodi al numero desiderato. Se le zone desiderate sono di nuovo online, il processo di scalabilità ridistribuirà i nodi in modo uniforme tra le zone disponibili. Inoltre, tieni presente che la scalabilità provoca lo svuotamento della cache i dati nell'istanza Memcached.