Dépannage

Cette page décrit les différents scénarios d'erreur, les messages d'erreur associés et la procédure de dépannage pour résoudre les erreurs.

Scénarios d'erreur de connectivité

Si votre instance rencontre des problèmes de connectivité, consultez les scénarios de cette section pour savoir si l'un d'eux est à l'origine du problème.

Si ce n'est pas le cas, connectez telnet à l'un de vos nœuds Redis et exécutez de simples commandes Redis pour vérifier si l'instance répond ou pas.

Erreur de connexion provoquée par des ressources provisionnées dans des régions ou des réseaux VPC différents

Pour vous connecter à une instance Memorystore à partir d'une ressource Google Cloud, telle qu'une VM Compute Engine, les ressources doivent être provisionnées dans la même région et dans le même réseau VPC.

Toute tentative de connexion à une instance Memorystore à partir d'une ressource située dans une région ou un réseau VPC différent entraîne le message d'erreur suivant :

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

Erreur de connexion provoquée par un appairage de réseaux VPC supprimé

La création d'une instance Memorystore pour Redis crée un appairage de VPC entre votre réseau VPC et un réseau VPC interne de Google.

L'appairage de réseaux utilise le format suivant :

redis-peer-############

Si cet appairage de réseaux est supprimé, la tentative de connexion Telnet vers l'instance Redis génère le message d'erreur suivant :

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

Le moyen le plus simple de rétablir l'appairage de réseaux supprimé consiste à créer une instance Memorystore pour Redis. La création d'une instance Redis rétablit l'appairage de réseaux supprimé, de sorte que vous puissiez la supprimer et que l'instance Redis d'origine dispose de l'appairage de réseaux dont elle a besoin.

Les règles de pare-feu bloquent les adresses IP de votre instance

Des problèmes de connectivité peuvent survenir si vous créez des règles de pare-feu de sortie qui bloquent le port Redis (6379) ou l'adresse IP de l'instance.

Veillez à ne pas créer de règles de pare-feu de réseau susceptibles de bloquer la plage d'adresses IP de vos instances Redis.

Scénarios d'erreur réseau

La plage d'adresses IP allouée est épuisée.

Memorystore pour Memcached nécessite d'utiliser une connexion d'accès aux services privés et une plage d'adresses IP associée pour cette connexion. Les adresses IP disponibles dans cette plage associées à des instances Redis et à d'autres ressources Google Cloud peuvent être épuisées.

Dans ce cas, la création d'une instance renvoie le message d'erreur suivant :

The IP ranges for the connection do not have enough available IPs. Allocate a new range or expand existing range and try again.

Pour résoudre ce problème, vous pouvez attribuer des adresses IP supplémentaires. Pour en savoir plus, consultez la section Épuisement de la plage d'adresses IP.

Aucune connexion d'accès aux services privés n'est établie pour votre réseau.

Si votre instance Redis utilise le mode de connexion d'accès aux services privés et qu'une connexion d'accès aux services privés n'existe pas pour votre réseau, l'erreur suivante peut s'afficher :

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

Pour résoudre ce problème, établissez une connexion d'accès aux services privés.

L'appairage de réseaux pour l'accès aux services privés est supprimé

L'établissement d'une connexion d'accès aux services privés crée une connexion d'appairage de réseaux appelée servicenetworking-googleapis-com, qui apparaît sur la page Appairage de réseaux VPC de votre projet.

La suppression de l'appairage de réseaux entraîne l'affichage de l'erreur suivante pour les instances Redis existantes :

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

La suppression de l'appairage de réseaux entraîne l'affichage de l'erreur suivante lors de la création d'une instance Redis :

  • Private services access is not configured correctly. For steps on how to verify the connection, check the documentation.

Pour résoudre ce problème, suivez la dernière étape des instructions gcloud de la section Établir une connexion d'accès aux services privés.

Options de mise en réseau en conflit lors de la création d'une instance Redis

Si vous utilisez les paramètres --reserved-ip-range et --connect-mode=private-service-access, le message d'erreur suivant s'affiche :

Reserved IP range is not supported for --connect-mode private services access

Pour résoudre ce problème, utilisez soit le paramètre --reserved-ip-range avec --connect-mode=direct-peering, soit le paramètre --connect-mode=PRIVATE_SERVICE_ACCESS.

Vous ne pouvez pas utiliser les deux en même temps, car le paramètre --reserved-ip-range n'est pas compatible avec le mode de connexion d'accès aux services privés.

Dépassement du quota de sous-réseaux pour votre projet

Le nombre de sous-réseaux pouvant être créés dans votre projet est limité. Si vous dépassez ce quota, le message d'erreur suivant s'affiche :

Internal network quota exceeded. Please request higher limit here: https://forms.gle/ZfVduUGq2iSYcYGm8

Pour résoudre ce problème, remplissez le formulaire dans le message d'erreur ou contactez l'assistance Google Cloud.

Projet de service non associé au projet hôte

Si vous utilisez un VPC partagé, votre projet de service n'est pas associé à votre projet hôte si vous recevez l'erreur suivante :

Invalid network name <network-name>. Project <project-name> referenced is not the host project for <service-project-name>.

Pour résoudre ce problème, associez votre projet de service à votre projet hôte.

Utilisation incompatible du mode de connexion par appairage direct et du réseau VPC partagé lors de la création de l'instance

Vous ne pouvez pas créer d'instance Redis dans un projet de service avec le mode de connexion par appairage direct tout en désignant un réseau VPC partagé à partir du projet hôte pour l'instance.

Le mode de connexion est défini par défaut sur direct-peering si vous ne définissez pas de valeur pour --connection-mode. Si vous essayez d'utiliser le mode de connexion par appairage direct lors de la création de l'instance et que vous choisissez également un réseau VPC partagé à partir du projet hôte comme valeur pour --authorized-network, l'erreur suivante s'affiche :

Authorized_network must exist in the same project as redis instance

Pour résoudre ce problème, veillez à spécifier le paramètre --connect-mode=PRIVATE_SERVICE_ACCESS dans votre commande de création d'instance Redis ou à choisir un réseau VPC standard dans le même projet que votre instance Redis.

Plages d'adresses IP Compute Engine non compatibles

Vous ne pouvez pas accéder à Memorystore pour Redis à partir de VM Compute Engine dont l'adresse IP est comprise dans la plage 172.17.0.0/16, car celle-ci est réservée à un composant interne.

Erreurs de connexion à votre instance Redis à partir d'autres ressources GCP

Erreurs de connexion à votre instance depuis l'environnement standard App Engine ou Cloud Functions

Si vous ne pouvez pas vous connecter à une instance Redis à l'aide de l'environnement standard App Engine ou de Cloud Functions, il est possible que vous n'ayez pas configuré de connecteur d'accès au VPC sans serveur pour votre environnement.

Pour obtenir des instructions sur la configuration de l'accès au VPC sans serveur pour l'environnement standard App Engine, consultez la page Se connecter à un réseau VPC.

Pour obtenir des instructions sur la configuration de l'accès au VPC sans serveur pour Cloud Functions, consultez la page Se connecter à un réseau VPC.

Erreurs lors de la connexion à votre instance à l'aide d'un cluster Google Kubernetes Engine

Vous ne pouvez pas vous connecter à une instance Memorystore pour Redis à partir d'un cluster GKE sans activer le VPC natif/les adresses IP d'alias sur votre cluster. Il est plus simple d'activer le VPC natif/les adresses IP d'alias lors de la création du cluster GKE. Lors de la création du cluster, sélectionnez VPC natif sous Options avancées. Pour en savoir plus, consultez la page Créer des clusters de VPC natif.

Scénarios d'erreur Cloud Identity and Access Management (Cloud IAM)

Restaurer une liaison de stratégie supprimée pour un compte de service

Memorystore pour Redis utilise les comptes de service suivants pour gérer vos instances Redis :

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

La suppression des liaisons de stratégie pour ces comptes de service vous empêche de créer des instances.

Si vous essayez de créer une instance Redis à l'aide de gcloud dans ce scénario, le message d'erreur suivant peut s'afficher :

(gcloud.redis.instances.create) FAILED_PRECONDITION: A required IAM policy might be missing. Please run this command:"gcloud projects add-iam-policy-binding <YOUR-PROJECT-ID> --member='serviceAccount:service-<YOUR-PROJECT-NUMBER>@cloud-redis.iam.gserviceaccount.com' --role='roles/redis.serviceAgent'" and try again. com.google.apps.framework.request.StatusException: <eye3 title='FAILED_PRECONDITION'/> generic::FAILED_PRECONDITION: A required IAM policy might be missing. Please run this command:"gcloud projects add-iam-policy-binding <YOUR-PROJECT-ID> --member='serviceAccount:service-<YOUR-PROJECT-NUMBER>@cloud-redis.iam.gserviceaccount.com' --role='roles/redis.serviceAgent'" and try again.

Pour rétablir la liaison de stratégie pour ces comptes de service, exécutez l'une des commandes suivantes en remplaçant les variables par les valeurs appropriées. Exécutez la commande associée au compte de service supprimé.

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-redis.iam.gserviceaccount.com' --role='roles/redis.serviceAgent'

Erreurs de délai d'attente d'une opération

Les scénarios d'erreur suivants entraînent une absence de réponse de l'instance Redis et/ou des délais d'attente d'une opération instance/nœud.

Erreur de partition réseau

Parfois, les ressources Google Cloud ne peuvent pas communiquer entre les zones d'une région en raison d'une erreur de partition réseau sur les serveurs Google Cloud. Cela peut entraîner une perte de connexion de l'instance et renvoyer une erreur de délai d'attente.

Une fois que Google Cloud a résolu l'erreur de partition réseau pour la région ou la zone où votre instance est provisionnée, la connectivité doit reprendre normalement.

Dans ce scénario, un message d'erreur de connectivité peut s'afficher :

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

Si vous ne parvenez pas à identifier la cause de l'erreur de délai d'attente, contactez l'assistance Google Cloud.

Projet de service et projet hôte ne faisant pas partie du même périmètre de contrôle de service VPC

Si vous utilisez un VPC partagé et un périmètre de contrôle de service VPC, et que votre opération de création d'instance Redis expire, cela peut indiquer que votre projet de service et votre projet hôte ne se trouvent pas dans le même périmètre de service. Votre projet de service et votre projet hôte doivent se trouver dans le même périmètre pour que votre instance Redis puisse communiquer avec les clients se connectant via le réseau VPC partagé.

Pour vérifier la présence de ce problème, consultez les journaux d'audit de votre instance Redis pour rechercher l'erreur suivante :

violationReason: "NETWORK_NOT_IN_SAME_SERVICE_PERIMETER"

Pour résoudre ce problème, placez votre réseau hôte et votre réseau de service dans le même périmètre de service.

Résoudre les problèmes d'importation et d'exportation

Cette section décrit certains problèmes courants que vous pouvez rencontrer lors de l'utilisation de l'importation et de l'exportation pour Memorystore pour Redis.

Les boutons d'importation et d'exportation sont désactivés dans Cloud Console.

Problème : l'utilisateur connecté à la console ne dispose pas des autorisations redis.instances.import et/ou redis.instances.export requises pour importer et/ou exporter des fichiers RDB.

Solution : accordez les autorisations à l'utilisateur et actualisez la page des détails de l'instance.

L'opération d'importation est terminée, mais les données n'ont pas été restaurées.

Si une opération d'importation se termine, mais que les données ne sont pas restaurées, recherchez d'abord un message d'erreur dans Cloud Console ou la ligne de commande, puis résolvez les problèmes décrits par ce message.

En cas d'échec pendant le processus d'importation, l'instance est récupérée à l'aide d'un fichier RDB vide. Vous pouvez essayer de restaurer les données en important à nouveau le même fichier RDB ou en utilisant un autre fichier RDB.

L'importation a échoué, car le fichier RDB était trop volumineux.

Si le message d'erreur "La taille d'un fichier d'importation RDB gs://bucket/object.rdb dépasse la mémoire maximale de 10 Go" s'affiche, vous devez augmenter la taille de votre instance et relancer l'importation. Vous pouvez également essayer d'importer un fichier RDB plus petit dans votre instance.

Résoudre les problèmes liés à l'outil de ligne de commande gcloud

Si vous rencontrez un problème lié à l'indisponibilité d'une commande de l'outil gcloud ou à un comportement de la commande différent de celui documenté, essayez de mettre à jour le SDK gcloud :

gcloud components update