En esta página se ofrecen directrices para diagnosticar y resolver problemas habituales de conectividad de red en cargas de trabajo por lotes y sesiones interactivas de Serverless para Apache Spark. Estos problemas pueden impedir que tus cargas de trabajo accedan a las fuentes de datos, los servicios externos o las APIs necesarios. Google Cloud
Síntomas y mensajes de error habituales
Cuando Serverless para Apache Spark tiene problemas de conectividad, es posible que se produzcan errores como los siguientes:
Unable to connect to service_name.googleapis.com
Could not reach required Google APIs
Connection refused
Host unreachable
Operation timed out
Permission denied
(a menudo, relacionado con la red si se bloquean las llamadas a la API)
También es posible que se produzcan errores relacionados con el acceso a datos de Cloud Storage, BigQuery u otras bases de datos.
Causas habituales y consejos para solucionar problemas
En esta sección se enumeran las causas habituales de los problemas de conectividad de Serverless para Apache Spark y se ofrecen consejos para solucionarlos.
Configuración de red
Los errores de configuración de la red son una causa frecuente de los fallos de conectividad. Las cargas de trabajo y las sesiones de Apache Spark sin servidor se ejecutan en máquinas virtuales con direcciones IP internas, con Acceso privado de Google (PGA) habilitado automáticamente en la subred de la carga de trabajo o de la sesión para acceder a las APIs y los servicios de Google. Para obtener más información, consulta Configuración de red de Serverless para Apache Spark.
Opciones de acceso:
Private Service Connect (PSC): puedes crear endpoints privados en tu red de VPC para acceder a APIs de Google específicas.
- En la consola de Google Cloud , ve a Private Service Connect > Endpoints.
Conecta los endpoints o confirma que están conectados a todas las APIs necesarias, como
storage.googleapis.com
ydataproc.googleapis.com
, y que se conectan a la carga de trabajo por lotes o a la red de nube privada virtual de la sesión.
- En la consola de Google Cloud , ve a Private Service Connect > Endpoints.
Conecta los endpoints o confirma que están conectados a todas las APIs necesarias, como
Cloud NAT: si tu carga de trabajo necesita acceder a Internet público, puedes configurar Cloud NAT para tu carga de trabajo por lotes o subred de sesión:
- En la Google Cloud consola, ve a la página Cloud NAT.
Configura una pasarela o confirma que se ha configurado una para la red de VPC, la región y la subred de la carga de trabajo o la sesión por lotes. Además, asegúrate de que las reglas del cortafuegos permitan el tráfico saliente a
0.0.0.0/0
. Para obtener más información, consulta Configurar Cloud NAT.
- En la Google Cloud consola, ve a la página Cloud NAT.
Configura una pasarela o confirma que se ha configurado una para la red de VPC, la región y la subred de la carga de trabajo o la sesión por lotes. Además, asegúrate de que las reglas del cortafuegos permitan el tráfico saliente a
Reglas de cortafuegos:
- Las reglas de cortafuegos de salida de tu red de VPC (o del proyecto host de la red de VPC compartida, si procede) no deben bloquear el tráfico saliente a los destinos necesarios.
- Si procede, las reglas de salida deben permitir el tráfico a servicios externos, como APIs públicas y bases de datos fuera de Google Cloud. Si tu carga de trabajo o sesión por lotes necesita acceso a Internet, puedes usar Cloud NAT para proporcionar salida de subred.
- Aunque no es una causa habitual de los problemas de conectividad, las reglas de entrada demasiado restrictivas pueden bloquear por error el tráfico de retorno necesario o las comunicaciones internas.
- Las reglas de cortafuegos de salida de tu red de VPC (o del proyecto host de la red de VPC compartida, si procede) no deben bloquear el tráfico saliente a los destinos necesarios.
Resolución de DNS:
- La resolución de DNS debe configurarse en la red VPC. Las cargas de trabajo y las sesiones deben poder resolver los nombres de host de las APIs de Google, como
storage.googleapis.com
obigquery.googleapis.com
, y de los servicios externos. - Los servidores DNS personalizados y las zonas privadas de Cloud DNS deben reenviar o resolver consultas de dominios de Google.
- Si usas Private Service Connect para acceder de forma privada a las APIs de Google, los registros DNS de los servicios de Google deben resolverse en direcciones IP privadas de tu red de VPC mediante el endpoint de PSC.
- La resolución de DNS debe configurarse en la red VPC. Las cargas de trabajo y las sesiones deben poder resolver los nombres de host de las APIs de Google, como
Consejos para solucionar problemas:
Identifica la configuración de la red y la subred:
- En los detalles de la sesión o del lote de Serverless para Apache Spark, consulta
networkUri
ysubnetUri
. - En la consola de Google Cloud , revisa los ajustes de la red de VPC y la subred.
- En los detalles de la sesión o del lote de Serverless para Apache Spark, consulta
Prueba la conectividad desde una VM proxy:
- Inicia una VM de Compute Engine de prueba en la subred de lote o de sesión con la cuenta de servicio de lote o de sesión.
- En la VM de prueba, realiza las siguientes pruebas de conectividad:
nslookup storage.googleapis.com
para verificar la resolución de DNS. Busca otros dominios de APIs de Google, comobigquery.googleapis.com
ydataproc.googleapis.com
. Con el acceso privado de Google, que se habilita automáticamente en las subredes de Serverless para Apache Spark, o con Private Service Connect, los dominios deben resolverse en direcciones IP privadas.curl -v https://storage.googleapis.com
para verificar la conectividad HTTPS con las APIs de Google. Prueba también a conectarte a otros servicios de Google.ping 8.8.8.8
para probar la conectividad a Internet si tu lote o sesión lo requiere. Pruebacurl -v https://example.com
si se espera Cloud NAT.
- Ejecuta Google Cloud pruebas de conectividad de Network Intelligence Center para diagnosticar las rutas de red desde tu subred hasta los endpoints pertinentes, como las APIs de Google y las direcciones IP externas.
Revisa Cloud Logging para ver si hay errores de red:
- Revisa el registro de tu carga de trabajo o sesión de Serverless para Apache Spark. Busca mensajes
ERROR
oWARNING
relacionados con tiempos de espera de la red, rechazos de conexión o fallos de llamadas a la API. Filtra porjsonPayload.component="driver"
ojsonPayload.component="executor"
para ver problemas de red específicos de Spark.
- Revisa el registro de tu carga de trabajo o sesión de Serverless para Apache Spark. Busca mensajes
Permisos de gestión de identidades y accesos
Si no se tienen suficientes permisos de gestión de identidades y accesos, las cargas de trabajo o las sesiones no podrán acceder a los recursos, lo que provocará errores de red si se deniegan las llamadas a las APIs.
La cuenta de servicio que use tu carga de trabajo o sesión por lotes debe tener los roles necesarios:
- Rol Trabajador de Dataproc (
roles/dataproc.worker
). - Roles de acceso a datos, como
roles/storage.objectViewer
oroles/bigquery.dataViewer
. - Registro: (
roles/logging.logWriter
).
Consejos para solucionar problemas:
- Identifica la carga de trabajo o la sesión por lotes de la cuenta de servicio. Si no se especifica, se usa la cuenta de servicio predeterminada de Compute Engine.
- Ve a la página IAM y administración > IAM de la consola Google Cloud , busca la cuenta de servicio de la carga de trabajo o sesión por lotes y comprueba que tenga los roles necesarios para las operaciones de la carga de trabajo. Asigna los roles que falten.
Configuración de servicios externos
Si tu carga de trabajo se conecta a bases de datos o servicios externos a Google Cloud, comprueba su configuración:
- Verifica que el cortafuegos o el grupo de seguridad del servicio externo permitan las conexiones entrantes de los intervalos de IP de tu red VPC. Si procede, comprueba las direcciones IP internas mediante el peering de VPC, Cloud VPN o Cloud Interconnect, o las direcciones IP de Cloud NAT.
- Revisa las credenciales de la base de datos o las cadenas de conectividad. Comprueba los detalles de la conexión, los nombres de usuario y las contraseñas.
Siguientes pasos
- Consulta información sobre las redes de Serverless para Apache Spark.
- Consulta las cuentas de servicio de Serverless para Apache Spark.
- Consulta las guías generales para solucionar problemas de red: