Risoluzione dei problemi

Questa pagina spiega vari scenari di errore, i messaggi di errore per questi scenari e i passaggi per la risoluzione dei problemi per risolvere gli errori.

Scenari di errore di Networking

L'intervallo IP allocato è esaurito

Memorystore for Memcached richiede l'utilizzo di una connessione di accesso al servizio privato e di un intervallo di indirizzi IP associato per questa connessione. È possibile esaurire gli indirizzi IP disponibili in questo 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 allocando indirizzi IP aggiuntivi. Per saperne di più su come eseguire questa operazione, consulta 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 una connessione di accesso privato ai servizi stabilita per la rete del tuo progetto, la creazione non andrà a buon fine e verrà visualizzato 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 riportate in Stabilire una connessione di accesso a servizi privati.

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

La creazione 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 tuo progetto.

L'eliminazione di questo peering di rete potrebbe causare la visualizzazione dei 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 riportate 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 di connessione all'istanza Memcached da altre risorse Google Cloud

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

Se non riesci a connetterti a un'istanza Memcached utilizzando l'ambiente standard App Engine o le funzioni Cloud Run, è 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, vedi Connessione a una rete VPC.

Per istruzioni sulla configurazione dell'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 che sia abilitato l'aliasing IP/VPC nativo sul tuo cluster. Il modo più semplice per abilitare la rete VPC nativa/l'IP aliasing è durante la creazione del cluster GKE. Quando crei il cluster, seleziona VPC nativa in Opzioni avanzate. Per ulteriori dettagli, consulta Creazione di cluster nativi di VPC.

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

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

  1. Assicurati che l'istanza Memcached venga sottoposta a provisioning nella stessa regione e 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 dei nodi dell'istanza Memcached nella console Google Cloud .
  3. Esegui Telnet su uno dei tuoi nodi Memcached ed esegui alcuni semplici comandi Memcached set e get per verificare se l'istanza risponde o meno.

Scenari di errore di Identity and Access Management ( IAM)

Ripristino di un account di servizio eliminato

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

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

L'eliminazione dei binding dei criteri per questi service account impedisce la creazione di nuove istanze.

Se tenti di 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 service account, esegui uno dei seguenti comandi, sostituendo variables con i valori appropriati. Esegui il comando associato al 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 operazione

I seguenti scenari di errore comportano una mancata risposta dell'istanza Memcached e/o timeout dell'operazione di istanza/nodo.

Errore di partizione di rete

A volte le risorse Google Cloud non possono 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 risolve l'errore di partizione di rete per la regione o la zona in cui viene 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'Google Cloud assistenza.

Riferimento all'applicazione improprio agli IP dei nodi

Se il client va in 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 cluster.

In questo scenario, 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 nodi e assicurati che l'applicazione punti con precisione agli indirizzi dei nodi.

Scenari di errore aggiuntivi

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é questo intervallo è riservato a un componente interno.

Distribuzione non bilanciata dei nodi 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 non uniforme dei nodi Memcached nelle zone di una regione.

Ciò non dovrebbe avere un impatto significativo sulle prestazioni dell'applicazione. Tuttavia, idealmente, i nodi devono essere distribuiti in tutte le zone di una regione per proteggere i dati da interruzioni zonali.

Se non sei soddisfatto della distribuzione dei nodi tra le zone quando crei un'istanza, puoi attendere che la zona torni 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, aumenta la scalabilità dell'istanza, quindi riduci di nuovo la scalabilità al numero di nodi 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 lo scaling causa lo svuotamento della cache per i dati nell'istanza Memcached.