Risoluzione dei problemi

In questa pagina vengono descritti vari scenari di errore, i relativi messaggi e i passaggi per la risoluzione dei problemi.

Scenari di errore di Networking

L'intervallo IP allocato è esaurito

Memorystore for Memcached richiede l'utilizzo di una connessione di accesso privato ai servizi e di un intervallo di indirizzi IP associato per la connessione. È possibile esaurire gli indirizzi IP disponibili nell'intervallo con le 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 ulteriori informazioni su come eseguire questa operazione, vedi Esaurimento dell'intervallo di indirizzi IP.

Non hai stabilito una connessione di accesso privato ai servizi per la tua rete

Se tenti di creare un'istanza Memorystore for Memcached senza che sia stata stabilita una connessione di accesso privato ai servizi per la rete del progetto, la creazione non andrà a buon fine con il seguente errore:

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

Per creare correttamente un'istanza, segui le istruzioni di configurazione dell'accesso privato ai servizi in Stabilire una connessione di accesso privato ai servizi.

Il peering di rete per l'accesso privato ai servizi è stato eliminato

Se stabilisci una connessione di accesso privato ai servizi, viene creata una connessione in peering di rete denominata servicenetworking-googleapis-com, che viene visualizzata nella pagina Peering di rete VPC del progetto.

Se elimini questo peering di rete, potresti ricevere 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 Stabilire una connessione di accesso privato ai servizi.

Le regole firewall bloccano gli indirizzi IP dell'istanza

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

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

Errori di connessione all'istanza Memcached da altre risorse Google Cloud

Errori di connessione all'istanza dall'ambiente standard App Engine o da Cloud Functions

Se non riesci a connetterti a un'istanza Memcached utilizzando l'ambiente standard App Engine o Cloud Functions, è possibile che tu non abbia configurato un connettore di accesso VPC serverless per il tuo ambiente.

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

Per istruzioni sulla configurazione dell'accesso VPC serverless per Cloud Functions, consulta Connessione a una rete VPC.

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

Non puoi connetterti a un'istanza Memorystore for Memcached da un cluster GKE senza aver abilitato l'aliasing VPC nativo/IP sul tuo cluster. Abilitare il VPC nativo/alias IP durante la creazione dei cluster GKE è più semplice. Quando crei il cluster, seleziona Nativo VPC nelle opzioni avanzate. Per maggiori dettagli, consulta Creazione di cluster nativi di VPC.

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

Se si verificano problemi di connettività con l'istanza, segui questi passaggi per la risoluzione dei problemi:

  1. Assicurati che il provisioning dell'istanza Memcached sia stato eseguito nella stessa regione e nella stessa rete del client che tenta di accedervi.

  2. Verifica che il progetto non abbia regole firewall di rete che bloccano gli IP dei nodi dell'istanza Memcached.

    • Per visualizzare gli indirizzi IP dei nodi, visualizza la scheda Nodi dell'istanza Memcached nella console Google Cloud.
  3. Esegui il Telnet su uno dei tuoi nodi memcached ed esegui alcuni semplici comandi Memcached set e get per verificare se l'istanza è reattiva.

Scenari di errore IAM ( Identity and Access Management)

Ripristinare un account di servizio eliminato

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

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

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

Se provi a creare un'istanza Memcached utilizzando gcloud in questo scenario, potresti ricevere 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 comandi seguenti, 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 generano un'istanza Memcached che non risponde 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 la perdita della connessione all'istanza, con un errore di timeout.

Una volta che Google Cloud avrà 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 scenario, 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 l'assistenza Google Cloud.

Riferimento dell'applicazione improprio agli IP dei nodi

Se il client si verifica il timeout durante il tentativo di connessione 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 la tua applicazione punti agli indirizzi IP dei nodi nel tuo cluster.

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

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

Per risolvere il problema, cerca gli indirizzi IP dei nodi e assicurati che l'applicazione rimandi con precisione agli indirizzi dei nodi.

Ulteriori scenari di errore

Intervalli di indirizzi IP di Compute Engine non supportati

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

Distribuzione dei nodi non bilanciata tra le zone di una regione

Se una zona in una regione Google Cloud non è disponibile al momento del provisioning di un'istanza Memcached, i nodi vengono creati nelle zone disponibili. Ciò può portare a una distribuzione sbilanciata dei nodi di Memached tra le zone di un'area geografica.

Ciò non dovrebbe avere un impatto significativo sulle prestazioni dell'applicazione. Tuttavia, teoricamente, i tuoi nodi dovrebbero essere distribuiti tra 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 crei un'istanza, puoi attendere che la zona sia di nuovo online per creare l'istanza oppure puoi utilizzare la seguente strategia per tentare di ridistribuire i nodi tra le zone in un secondo momento:

Per ridistribuire i nodi Memcached tra i nodi disponibili in una zona, fai lo scale up dell'istanza, quindi fai lo scale down al numero desiderato di nodi. 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à causa lo svuotamento della cache per i dati dell'istanza Memcached.