Solucionar problemas de conectividad de lotes y sesiones

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 y dataproc.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.
    • 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.
  • 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.
  • 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 o bigquery.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.

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 y subnetUri.
    • En la consola de Google Cloud , revisa los ajustes de la red de VPC y la subred.
  • 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, como bigquery.googleapis.com y dataproc.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. Prueba curl -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 o WARNING relacionados con tiempos de espera de la red, rechazos de conexión o fallos de llamadas a la API. Filtra por jsonPayload.component="driver" o jsonPayload.component="executor" para ver problemas de red específicos de Spark.

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 o roles/bigquery.dataViewer.
  • Registro: (roles/logging.logWriter).

Consejos para solucionar problemas:

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