Soluciona problemas de conectividad de lotes y sesiones

En esta página, se proporciona orientación para diagnosticar y resolver problemas comunes de conectividad de red para cargas de trabajo por lotes y sesiones interactivas de Serverless for Apache Spark. Estos problemas pueden impedir que tus cargas de trabajo accedan a las fuentes de datos requeridas, servicios externos o Google Cloud APIs.

Síntomas y mensajes de error comunes

Cuando Serverless for Apache Spark encuentra problemas de conectividad, es posible que veas 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 veas errores relacionados con el acceso a los datos en Cloud Storage, BigQuery o en otras bases de datos.

Causas comunes y sugerencias para solucionar problemas

En esta sección, se enumeran las causas comunes de los problemas de conectividad de Serverless for Apache Spark y se proporcionan sugerencias para solucionar problemas que te ayudarán a resolverlos.

Configuración de red

Las configuraciones erróneas de la red son una causa frecuente de fallas de conectividad. Las cargas de trabajo y las sesiones de Serverless for Apache Spark se ejecutan en VMs con direcciones IP internas, con el Acceso privado a Google (PGA) habilitado automáticamente en la carga de trabajo o la subred de la sesión para acceder a los servicios y las APIs de Google. Para obtener más información, consulta Configuración de red de Serverless for Apache Spark.

  • Opciones de acceso:

    • Private Service Connect (PSC): Puedes crear extremos privados dentro de tu red de VPC para acceder a APIs de Google específicas.

      • En la Google Cloud consola, ve a Private Service Connect > Endpoints. Conecta extremos o confirma que los extremos estén conectados para todas las APIs requeridas, como storage.googleapis.com y dataproc.googleapis.com y que se conecten a la carga de trabajo por lotes o a la red de Virtual Private Cloud de la sesión.
    • Cloud NAT: Si tu carga de trabajo necesita acceder a Internet pública, puedes configurar Cloud NAT para tu carga de trabajo por lotes o la subred de la sesión:

      • En la Google Cloud consola, ve a la página Cloud NAT. Configura una puerta de enlace o confirma que se haya configurado una para la carga de trabajo por lotes o la red de VPC, la región y la subred de la sesión. Además, asegúrate de que las reglas de firewall permitan la salida a 0.0.0.0/0. Para obtener más información, consulta Configura Cloud NAT.
  • Reglas de firewall:

    • Las reglas de firewall de salida de tu red de VPC (o del proyecto host de la red de VPC compartida, si corresponde) no deben bloquear el tráfico saliente a los destinos requeridos.
      • Si corresponde, las reglas de salida deben permitir el tráfico a servicios externos, como las APIs públicas y las bases de datos fuera de Google Cloud. Si tu carga de trabajo por lotes o sesión necesita acceso a Internet, puedes usar un Cloud NAT para proporcionar salida de subred.
    • Aunque no es una causa común de problemas de conectividad, las reglas de entrada demasiado restrictivas pueden bloquear de forma involuntaria el tráfico de retorno necesario o las comunicaciones internas.
  • Resolución de DNS:

    • La resolución de DNS debe configurarse dentro de la red de VPC. Las cargas de trabajo y las sesiones deben poder resolver los nombres de host para las APIs de Google, como storage.googleapis.com obigquery.googleapis.com y los servicios externos.
    • Los servidores DNS personalizados y las zonas privadas de Cloud DNS deben reenviar o resolver consultas para los dominios de Google.
    • Si usas Private Service Connect para el acceso privado a las APIs de Google, los registros DNS de los servicios de Google deben resolverse en direcciones IP privadas dentro de tu red de VPC con el extremo de PSC.

Sugerencias para solucionar problemas:

  • Identifica la configuración de la red y la subred:

    • En los detalles de la carga de trabajo por lotes o la sesión de Serverless for Apache Spark, revisa networkUri y subnetUri.
    • En la Google Cloud consola, revisa la configuración de la red de VPC y la subred.
  • Prueba la conectividad desde una VM de proxy:

    • Inicia una VM de Compute Engine de prueba en la subred de la carga de trabajo por lotes o la sesión con la cuenta de servicio de la carga de trabajo por lotes o la sesión.
    • Desde 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 la API de Google, como bigquery.googleapis.com y dataproc.googleapis.com. Con el Acceso privado a Google, que se habilita automáticamente en las subredes de Serverless for Apache Spark, o Private Service Connect, los dominios deben resolverse en direcciones IP privadas.
      • curl -v https://storage.googleapis.com para verificar la conectividad HTTPS a las APIs de Google. También intenta conectarte a otros servicios de Google.
      • ping 8.8.8.8 para probar la conectividad a Internet si tu carga de trabajo por lotes 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 extremos pertinentes, como las APIs de Google y las direcciones IP externas.
  • Revisa Cloud Logging para ver errores de red:

    • Revisa Logging para tu carga de trabajo por lotes o sesión de Serverless for Apache Spark. Busca mensajes ERROR o WARNING relacionados con tiempos de espera de la red, rechazos de conexión o fallas de llamadas a la API. Filtra por jsonPayload.component="driver" o jsonPayload.component="executor" para problemas de red específicos de Spark.

Permisos de IAM

Los permisos de IAM insuficientes pueden impedir que las cargas de trabajo o las sesiones accedan a los recursos, lo que provoca fallas de red si se rechazan las llamadas a la API.

La cuenta de servicio que usa tu carga de trabajo por lotes o sesión debe tener los roles requeridos:

  • Rol de trabajador de Dataproc (roles/dataproc.worker).
  • Roles de acceso a los datos, como roles/storage.objectViewer o roles/bigquery.dataViewer).
  • Logging (roles/logging.logWriter).

Sugerencias para solucionar problemas:

  • Identifica la cuenta de servicio de la carga de trabajo por lotes o la sesión . Si no se especifica, se usa automáticamente la cuenta de servicio predeterminada de Compute Engine.
  • Ve a la página **IAM y administración > IAM** en la Google Cloud consola, busca la cuenta de servicio de la carga de trabajo por lotes o la sesión y, luego, verifica que tenga los roles necesarios para las operaciones de la carga de trabajo. Otorga los roles faltantes.

Configuración del servicio externo

Si tu carga de trabajo se conecta a bases de datos o servicios fuera de Google Cloud, verifica su configuración:

  • Verifica que el firewall o el grupo de seguridad del servicio externo permitan las conexiones entrantes desde los rangos de IP de tu red de VPC: si corresponde, verifica las direcciones IP internas con el Intercambio de tráfico entre 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. Verifica los detalles de la conexión , los nombres de usuario y las contraseñas.

¿Qué sigue?