Risoluzione dei problemi

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

Scenari di errori di Networking

L'intervallo IP allocato è esaurito

Memorystore for Memcached richiede l'utilizzo di una connessione con accesso ai servizi privati e di un intervallo di indirizzi IP associato per la 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 allocando indirizzi IP aggiuntivi. Per ulteriori informazioni su come eseguire questa operazione, consulta Esaurimento degli intervalli 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 una connessione di accesso privato ai servizi stabilita per la rete del tuo 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 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 privato ai servizi viene eliminato

L'impostazione di una connessione di accesso privato ai servizi crea una connessione di peering di rete denominata servicenetworking-googleapis-com, che viene visualizzata nella pagina Peering della 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 delle istanze

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 di connessione all'istanza Memcached da altre risorse Google Cloud

Errori di connessione all'istanza dall'ambiente standard di App Engine o dalle funzioni Cloud Run

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

Per istruzioni su come configurare l'accesso VPC serverless per l'ambiente standard 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 un cluster GKE senza l'aliasing IP/VPC nativo abilitato sul cluster. È più semplice attivare l'aliasing IP/VPC nativo durante la creazione del 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 il progetto non abbia regole firewall di rete che blocchino gli indirizzi IP dei nodi dell'istanza Memcached.

    • Per visualizzare gli indirizzi IP dei nodi, visualizza la scheda Nodi della tua istanza Memcached nella console Google Cloud.
  3. Esegui Telnet su uno dei tuoi nodi memcached e esegui alcuni semplici comandi Memcached set e get per verificare 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 ai criteri per questi account di servizio ti impedisce di creare nuove istanze.

Se in questo scenario tenti di creare un'istanza Memcached utilizzando gcloud, 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 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 un'istanza Memcached non rispondente e/o timeout delle operazioni di istanza/nodo.

Errore di partizione di rete

A volte le risorse Google Cloud non riescono a comunicare tra le zone all'interno di una regione a causa di un errore di partizione di rete nei server Google Cloud. Ciò può causare la perdita di connessione dell'istanza, con conseguente 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 l'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 la tua applicazione indichi gli indirizzi IP dei nodi del 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 Compute Engine con un indirizzo IP compreso nell'intervallo 172.17.0.0/16, perché questo intervallo è riservato a un componente interno.

Distribuzione non bilanciata dei nodi nelle 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 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 devono essere distribuiti in tutte le zone di una regione per proteggere i dati dalle interruzioni zonali.

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 utilizzare la seguente strategia per tentare di ridistribuire i nodi nelle 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. Tieni inoltre presente che il ridimensionamento causa uno svuotamento della cache per i dati nell'istanza Memcached.