Soluciona problemas

En esta página, se explican varios casos de error, los mensajes de error para esas situaciones y los pasos para solucionar problemas de error.

Situaciones de error de conectividad

Si tu instancia experimenta problemas de conectividad, comprueba las situaciones en esta sección para ver si alguna de ellas es la causa del problema.

Si no es así, ejecuta Telnet a uno de tus nodos de Redis y ejecuta algunos comandos simples de Redis para ver si la instancia responde o no.

Error de conexión provocado por recursos aprovisionados en diferentes regiones o diferentes redes de VPC

Para conectarse a una instancia de Memorystore desde un recurso de Google Cloud, como una VM de Compute Engine, los recursos deben aprovisionarse en la misma región y en la misma red de VPC.

Intentar ejecutar Telnet a una instancia de Memorystore desde un recurso en una región o red de VPC diferente da como resultado el siguiente mensaje de error:

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

Error de conexión provocado por el intercambio de tráfico entre redes de VPC borrado

La creación de una instancia de Memorystore para Redis crea un intercambio de tráfico de VPC entre tu red de VPC y una red de VPC interna de Google.

El intercambio de tráfico de red usa el siguiente formato:

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

Si se borra este intercambio de tráfico de red, cuando intentes ejecutar Telnet a la instancia de Redis, aparecerá el siguiente mensaje de error:

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

La manera más fácil de restablecer el intercambio de tráfico de la red borrada es crear una instancia nueva de Memorystore para Redis. La creación de una nueva instancia de Redis restablece el intercambio de tráfico entre redes borrado, por lo que puedes borrarla y tu instancia de Redis original tiene el intercambio de tráfico entre redes que necesita.

Las reglas de firewall bloquean las direcciones IP de la instancia

Pueden surgir problemas de conectividad si creas reglas de firewall de salida que bloquean el puerto de Redis (6379) o la dirección IP de la instancia.

Asegúrate de no crear reglas de firewall de red que bloqueen el rango de IP de tu instancia de Redis.

Situaciones de error de uso de CPU elevado

La falta de respuesta de instancia de Redis se debe a un uso inadecuado de comandos costosos de Redis

Si tu instancia de Redis experimenta problemas de latencia alta, de falta de respuesta o de conectividad alta, los problemas pueden deberse al uso inadecuado de los siguientes comandos costosos de Redis:

Estos comandos pueden aumentar la presión de la CPU en tu instancia. Discos de Redis de código abierto que ejecutan KEYS en entornos de producción El uso de LRANGE para consultar todo o un subconjunto grande de tu espacio de claves puede requerir recursos de CPU altos. El uso de una secuencia de comandos Lua compleja con EVAL puede causar un alto uso de la CPU.

Si la instancia experimenta una latencia alta o no responde, revisa los registros del lado del cliente para buscar si se ejecutó algún comando costoso. Si es así, indica la hora. A continuación, usa Cloud Monitoring para ver la métrica redis.googleapis.com/stats/cpu_utilization. Verifica si los períodos de uso de CPU elevado coinciden con los mismos períodos cuando se ejecutaron los comandos costosos.

Recomendamos usar el comando de KEYS en entornos de producción. Para EVAL, usa secuencias de comandos Lua menos complejas. En LRANGE, reduce la cantidad de claves en el conjunto de claves que se consultan en una sola operación.

Situaciones de error de Herramientas de redes

El rango de IP asignado está agotado

Memorystore para Redis requiere que uses una conexión de acceso privado a servicios y un rango de direcciones IP asociado para esa conexión. Es posible agotar las direcciones IP disponibles en ese rango con instancias de Redis y otros recursos de Google Cloud.

Si las direcciones IP se agotan, la creación de una instancia muestra el siguiente mensaje de error:

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

Para resolver este problema, asigna direcciones IP adicionales. Para obtener más información sobre cómo hacerlo, consulta Interrupción del rango de direcciones IP.

No tienes una conexión de acceso a servicios privados establecida para tu red.

Si tu instancia de Redis usa el modo de conexión de acceso privado a servicios y no existe una conexión de acceso a servicios privados para tu red, es posible que recibas el siguiente error:

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

Para solucionar este problema, establece una conexión de acceso a servicios privados.

Se borra el intercambio de tráfico de red para el acceso privado a servicios

Establecer una conexión de acceso a servicios privados crea una conexión de intercambio de tráfico de red llamada servicenetworking-googleapis-com, que aparece en la página Intercambio de tráfico entre redes de VPC de tu proyecto.

Borrar el intercambio de tráfico entre redes genera el siguiente error para las instancias de Redis existentes:

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

Borrar el intercambio de tráfico entre redes genera el siguiente error cuando creas una instancia de Redis:

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

Para resolver este problema, sigue el último paso de las instrucciones de gcloud en Establece una conexión de acceso privado a servicios.

Marcas de herramientas de red en conflicto durante la creación de la instancia de Redis

Si usas el parámetro --reserved-ip-range y el de --connect-mode=private-service-access, recibirás el siguiente error:

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

Para resolver este problema, usa --reserved-ip-range con --connect-mode=direct-peering o usa --connect-mode=PRIVATE_SERVICE_ACCESS.

No puedes usar ambos al mismo tiempo, porque el parámetro --reserved-ip-range no es compatible con el modo de conexión de acceso privado a servicios.

Se supera la cuota de subred para tu proyecto

Existe un límite para la cantidad de subredes que se pueden crear dentro de tu proyecto. Si superas esta cuota, recibirás el siguiente mensaje de error:

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

Para resolver el problema, llena el formulario del mensaje de error o comunícate con el equipo de Asistencia de Google Cloud.

El proyecto de servicio no está conectado al proyecto host

Si usas la VPC compartida, tu proyecto de servicio no se conectará a tu proyecto host si recibes el siguiente error:

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

Para resolver este problema, conecta tu proyecto de servicio a tu proyecto host.

Uso incompatible del modo de conexión de intercambio de tráfico directo y la red de VPC compartida durante la creación de la instancia

No puedes crear una instancia de Redis en un proyecto de servicio con el modo de conexión de intercambio de tráfico directo mientras designas una red de VPC compartida desde el proyecto host para la instancia.

El modo de conexión se establece en direct-peering de forma predeterminada si no estableces un valor para --connection-mode. Si intentas usar el modo de conexión de intercambio de tráfico directo durante la creación de la instancia y, también, eliges una red de VPC compartida desde el proyecto host como valor para --authorized-network, recibirás el siguiente error:

Authorized_network must exist in the same project as redis instance

Para resolver este problema, asegúrate de especificar --connect-mode=PRIVATE_SERVICE_ACCESS en tu comando de creación de instancias de Redis o elige una red de VPC normal en el mismo proyecto que tu instancia de Redis.

Rangos de direcciones IP de Compute Engine no compatibles

No puedes acceder a Memorystore para Redis desde las VM de Compute Engine que tienen una dirección IP dentro del rango 172.17.0.0/16, porque ese rango está reservado para un componente interno.

Errores de conexión a tu instancia de Redis desde otros recursos de GCP

Errores de conexión a tu instancia desde entornos sin servidores que requieren un conector de Acceso a VPC sin servidores

Si no puedes conectarte a una instancia de Redis mediante uno de los entornos sin servidores que requieren un conector de acceso a VPC sin servidores , es posible que no hayas configurado un conector de acceso a VPC sin servidores para tu entorno.

Consulta el requisito de acceso a VPC sin servidores para obtener más detalles.

Errores cuando te conectas a tu instancia mediante un clúster de Google Kubernetes Engine

No puedes conectarte a una instancia de Memorystore para Redis desde un clúster de GKE sin una VPC nativa o un alias de IP habilitada en tu clúster. Es más sencillo habilitar la VPC nativa o el alias de IP durante la creación del clúster de GKE. Cuando crees tu clúster, selecciona VPC nativa en las opciones avanzadas. Para obtener más detalles, consulta Crea clústeres nativos de la VPC.

Situaciones de error de administración de identidades y accesos ( IAM)

Restablece que se borró de una vinculación de política para una cuenta de servicio

Memorystore para Redis usa las siguientes cuentas de servicio a fin de administrar tus instancias de Redis:

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

Borrar las vinculaciones de políticas para estas cuentas de servicio te impide poder crear instancias nuevas.

Si intentas crear una instancia de Redis mediante gcloud en esta situación, es posible que recibas el siguiente mensaje de error:

(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.

Para restablecer la vinculación de política a estas cuentas de servicio, ejecuta uno de los siguientes comandos y reemplaza variables por los valores apropiados. Ejecuta el comando asociado a la cuenta de servicio borrada.

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'

Errores de tiempo de espera de la operación

Las siguientes situaciones de error dan como resultado una instancia de Redis que no responde o tiempos de espera de operación de instancia o nodo.

Error de partición de red

En ocasiones, los recursos de Google Cloud no pueden comunicarse entre zonas dentro de una región debido a un error en la partición de red en los servidores de Google Cloud. Esto puede hacer que tu instancia pierda conexión, lo que genera un error de tiempo de espera.

Después de que Google Cloud resuelva el error de partición de red para la región o zona en la que se aprovisiona tu instancia, la conectividad debería reanudarse normalmente.

En este caso, es posible que veas un mensaje de error de conectividad como el siguiente:

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

Si no puedes identificar la causa del error del tiempo de espera, comunícate con la Asistencia de Google Cloud.

El proyecto de servicio y el proyecto host no están en el mismo perímetro de los Controles del servicio de VPC

Si usas la VPC compartida y un perímetro de control de servicio de VPC, y se agota el tiempo de espera de la operación de creación de la instancia de Redis, esto puede indicar que tu proyecto de servicio y El proyecto host no está en el mismo perímetro de servicio. Tu proyecto de servicio y proyecto host deben estar en el mismo perímetro para que tu instancia de Redis se comunique con los clientes conectados a través de la red de VPC compartida.

Para comprobar si tienes este problema, verifica los registros de auditoría de tu instancia de Redis en busca del siguiente error:

violationReason: "NETWORK_NOT_IN_SAME_SERVICE_PERIMETER"

Para resolver este problema, coloca tu red de host y tu red de servicios en el mismo perímetro de servicio.

Solución de problemas de importación y exportación

En esta sección se describen algunos problemas comunes que pueden surgir cuando usas la importación y la exportación para Memorystore para Redis.

Los botones de importación y exportación están inhabilitados en Cloud Console

Problema: El usuario que accedió a la consola no tiene los permisos redis.instances.import o redis.instances.export necesarios para importar o exportar archivos RDB.

Solución: otorga los permisos al usuario y actualiza la página de detalles de la instancia.

La operación de importación se completó, pero los datos no se restablecieron

Si se completa una operación de importación, pero los datos no se restablecen, primero revisa Cloud Console o la línea de comandos en busca de un mensaje de error y resuelve cualquier problema descrito en el mensaje de error.

Si ocurre un error durante el proceso de importación, la instancia se recupera mediante un archivo RDB vacío. Puedes intentar restablecer los datos si importas el mismo archivo RDB de nuevo o con un archivo RDB diferente.

La importación falló porque el archivo RDB era demasiado grande

Si recibiste el mensaje de error "Import RDB file gs://bucket/object.rdb size exceeded max memory 10GB", debes escalar tu instancia y volver a intentar la importación. También puedes intentar importar un archivo RDB más pequeño a tu instancia.

Solución de problemas de la herramienta de línea de comandos de gcloud

Si te encuentras con un problema en el que un comando de la herramienta gcloud no está disponible o si el comando se comporta de forma diferente a la que se documenta, intenta actualizar el SDK de gcloud:

gcloud components update