Soluciona problemas de Private Service Connect
No se puede conectar a la base de datos de destino: EOF
Ejecutar una prueba de conectividad muestra el mensaje de error [DATABASE] unable to connect to the destination database: EOF
.
Posible causa: El archivo adjunto del servicio está configurado de forma incorrecta.
Qué puedes probar: Asegúrate de que enable_proxy_protocol
esté configurado como false
en el archivo de configuración de Terraform del archivo adjunto del servicio. El protocolo de proxy solo es compatible con servidores HTTP, como NGINX y Apache.
Cuando se usa gcloud
para crear la configuración de Private Service Connect, el protocolo de proxy se inhabilita de forma predeterminada.
Se agotó el tiempo de espera de la conexión, se rechazó la conexión
La ejecución de la prueba de conectividad falla o se agota el tiempo de espera. Es probable que esto se deba a una configuración de enrutamiento incorrecta en la configuración de Private Service Connect. Esto puede deberse a varios motivos.
Posible causa: Falta una regla de firewall que permita que el rango de CIDR de NAT de Private Service Connect acceda a la subred de Private Service Connect en la que se encuentra el bastión, específicamente, la interfaz nic0
de la VM del bastión.
Qué puedes probar: Asegúrate de que la política de tu organización no restrinja las reglas de firewall internas, como la regla de firewall psc_sp_in_fw
definida en la secuencia de comandos de Terraform de ejemplo para configurar el productor de Private Service Connect.
Causa posible: El proxy no está disponible. No hay un objeto de escucha en el puerto proporcionado y, por lo tanto, la conexión se bloquea.
Qué puedes probar: Puedes intentar establecer una conexión SSH a la VM de bastión y buscar el proxy con el siguiente comando:
netstat -tunalp | grep PORT
Analiza las respuestas al comando:
Si obtienes una respuesta vacía, significa que el proxy no está disponible. Ejecuta el siguiente comando:
sudo su; cd /
y ejecutasudo dpkg -s dante-server
para verificar si el servidor Dante está instalado:Si el proxy está instalado, recibirás el siguiente mensaje:
Status: install ok installed
Si el proxy no está instalado, es probable que falte un router. Agrega un router y ejecuta
apt-get install dante-server
para verificar si puedes descargar el proxy.
Si el proxy se está ejecutando y está escuchando en el puerto proporcionado, intenta abrir una conexión a él de la siguiente manera:
Instala el cliente de PostgreSQL:
sudo apt-get install postgresql-client
Conéctate a la base de datos de PostgreSQL:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W
(se te pedirá que ingreses la contraseña).Reemplaza lo siguiente:
PORT
: Es el número de puerto de la base de datos.DBUSERNAME
: Es el nombre de usuario que se usa para conectarse a la base de datos de PostgreSQL.
Instala el cliente telnet:
sudo apt-get install telnet
Conéctate al cliente telnet:
telnet 127.0.0.1 PORT
Reemplaza
PORT
por el número de puerto de la base de datos.
Según los resultados de los comandos, ocurrirá lo siguiente:
Si los comandos no abren una conexión, intenta consultar los registros del proxy para ubicar la causa raíz. La causa raíz puede variar según la configuración del clúster de AlloyDB para PostgreSQL.
Si la conexión se abre con telnet, pero se bloquea en el cliente nativo, es probable que el problema sea el enrutamiento de la dirección IP del bastión. En la VM, escribe
ip route
en la terminal. Comprueba si puedes encontrar una regla de enrutamiento que enrute las conexiones a la dirección IP privada del clúster de AlloyDB para PostgreSQL con elnic
secundario (nic1
, la dirección IPDB_SUBNETWORK_GATEWAY
).
Causa posible: El adjunto de servicio no acepta la conexión del extremo que proviene de Database Migration Service. El archivo adjunto del servicio contiene una lista de los proyectos aceptados, y el proyecto de Database Migration Service no se incluye en la lista.
Qué puedes probar: Para resolver el problema, prueba una de las siguientes opciones:
En la consola de Google Cloud , ve a Private Service Connect.
En la pestaña Servicios publicados, acepta la conexión de Database Migration Service para el archivo adjunto del servicio (si está pendiente).
Agrega el proyecto solicitante a los proyectos de la lista de entidades permitidas en el adjunto de servicio (si se rechaza).
Para obtener más información sobre cómo agregar un proyecto a la lista de entidades permitidas en Terraform, consulta la documentación de Terraform.
Para obtener más información sobre cómo agregar un proyecto a la lista de entidades permitidas en
gcloud
, consulta la documentación de referencia de gcloud.
Si el problema persiste, vuelve a crear el perfil de conexión.
Borra el perfil de conexión asociado con la conectividad de Private Service Connect y vuelve a crearlo.