Résoudre les problèmes de connectivité des sessions et des lots

Cette page fournit des conseils pour diagnostiquer et résoudre les problèmes courants de connectivité réseau pour les charges de travail par lot et les sessions interactives Serverless pour Apache Spark. Ces problèmes peuvent empêcher vos charges de travail d'accéder aux sources de données, services externes ou Google Cloud API requis.

Problèmes constatés et messages d'erreur courants

Lorsque Serverless pour Apache Spark rencontre des problèmes de connectivité, vous pouvez recevoir des erreurs telles que :

  • Unable to connect to service_name.googleapis.com
  • Could not reach required Google APIs
  • Connection refused
  • Host unreachable
  • Operation timed out
  • Permission denied (souvent lié au réseau si les appels d'API sont bloqués)

Vous pouvez également rencontrer des erreurs liées à l'accès aux données dans Cloud Storage, BigQuery ou d'autres bases de données.

Causes courantes et conseils de dépannage

Cette section répertorie les causes courantes des problèmes de connectivité de Serverless pour Apache Spark et fournit des conseils de dépannage pour vous aider à les résoudre.

Configuration du réseau

Les erreurs de configuration du réseau sont une cause fréquente d'échec de la connectivité. Les charges de travail et les sessions Serverless pour Apache Spark s'exécutent sur des VM avec des adresses IP internes, avec l'accès privé à Google (PGA) automatiquement activé sur le sous-réseau de la charge de travail ou de la session pour accéder aux API et services Google. Pour en savoir plus, consultez Configuration du réseau Serverless pour Apache Spark.

  • Options d'accès :

    • Private Service Connect (PSC) : vous pouvez créer des points de terminaison privés dans votre réseau VPC pour accéder à des API Google spécifiques.

      • Dans la Google Cloud console, accédez à Private Service Connect > Points de terminaison. Connectez les points de terminaison ou vérifiez qu'ils sont connectés pour toutes les API requises, telles que storage.googleapis.com et dataproc.googleapis.com et qu'ils se connectent au réseau Virtual Private Cloud de la charge de travail par lot ou de la session.
    • Cloud NAT : si votre charge de travail doit accéder à l'Internet public, vous pouvez configurer Cloud NAT pour le sous-réseau de votre charge de travail par lot ou de votre session :

      • Dans la Google Cloud console, accédez à la page Cloud NAT. Configurez une passerelle ou vérifiez qu'une passerelle est configurée pour le réseau VPC, la région et le sous-réseau de la charge de travail par lot ou de la session. Assurez-vous également que les règles de pare-feu autorisent le trafic sortant vers 0.0.0.0/0. Pour en savoir plus, consultez Configurer Cloud NAT.
  • Règles de pare-feu :

    • Les règles de pare-feu de sortie de votre réseau VPC (ou du projet hôte du réseau VPC partagé, le cas échéant) ne doivent pas bloquer le trafic sortant vers les destinations requises.
      • Le cas échéant, les règles de sortie doivent autoriser le trafic vers des services externes, tels que les API publiques et les bases de données en dehors de Google Cloud. Si votre charge de travail par lot ou votre session a besoin d'un accès à Internet, vous pouvez utiliser un Cloud NAT pour fournir une sortie de sous-réseau.
    • Bien qu'elles ne soient pas une cause fréquente de problèmes de connectivité, des règles d'entrée trop restrictives peuvent bloquer par inadvertance le trafic de retour ou les communications internes nécessaires.
  • Résolution DNS :

    • La résolution DNS doit être configurée dans le réseau VPC. Les charges de travail et les sessions doivent pouvoir résoudre les noms d'hôte pour les API Google, telles que storage.googleapis.com oubigquery.googleapis.com et les services externes.
    • Les serveurs DNS personnalisés et les zones privées Cloud DNS doivent transférer ou résoudre les requêtes pour les domaines Google.
    • Si vous utilisez Private Service Connect pour un accès privé aux API Google, les enregistrements DNS des services Google doivent être résolus en adresses IP privées dans votre réseau VPC à l'aide du point de terminaison PSC.

Conseils de dépannage

  • Identifier la configuration du réseau et du sous-réseau :

    • Dans les détails du lot ou de la session Serverless pour Apache Spark, examinez les networkUri et subnetUri.
    • Dans la Google Cloud console, examinez les paramètres du réseau VPC et du sous-réseau.
  • Tester la connectivité à partir d'une VM proxy :

    • Lancez une VM Compute Engine de test dans le sous-réseau du lot ou de la session à l'aide du compte de service du lot ou de la session.
    • À partir de la VM de test, effectuez les tests de connectivité suivants :
      • nslookup storage.googleapis.com pour vérifier la résolution DNS. Recherchez d'autres domaines d'API Google, tels que bigquery.googleapis.com et dataproc.googleapis.com. Avec l'accès privé à Google, qui est automatiquement activé sur les sous-réseaux Serverless pour Apache Spark, ou Private Service Connect, les domaines doivent être résolus en adresses IP privées.
      • curl -v https://storage.googleapis.com pour vérifier la connectivité HTTPS aux API Google. Essayez également de vous connecter à d'autres services Google.
      • ping 8.8.8.8 pour tester la connectivité Internet si votre lot ou votre session l'exige. Essayez curl -v https://example.com si Cloud NAT est attendu.
    • Exécutez Google Cloud des tests de connectivité du centre Network Intelligence pour diagnostiquer les chemins réseau de votre sous-réseau vers les points de terminaison pertinents, tels que les API Google et les adresses IP externes.
  • Examiner Cloud Logging pour détecter les erreurs réseau :

    • Examinez la journalisation de votre charge de travail ou de votre session Serverless pour Apache Spark. Recherchez les messages ERROR ou WARNING liés aux délais d'attente du réseau, aux refus de connexion ou aux échecs d'appel d'API. Filtrez par jsonPayload.component="driver" ou jsonPayload.component="executor" pour les problèmes réseau spécifiques à Spark.

Autorisations IAM

Des autorisations IAM insuffisantes peuvent empêcher les charges de travail ou les sessions d' accéder aux ressources, ce qui entraîne des échecs réseau si les appels d'API sont refusés.

Le compte de service utilisé par votre charge de travail par lot ou votre session doit disposer des rôles requis :

  • Rôle Nœud de calcul Dataproc (roles/dataproc.worker).
  • Rôles d'accès aux données, tels que roles/storage.objectViewer ou roles/bigquery.dataViewer).
  • Journalisation : (roles/logging.logWriter).

Conseils de dépannage

  • Identifiez le compte de service de la charge de travail par lot ou de la session . S'il n'est pas spécifié, le compte de service par défaut de Compute Engine est utilisé par défaut.
  • Accédez à la page **IAM et administration > IAM** dans la Google Cloud console, recherchez le compte de service de la charge de travail par lot ou de la session, puis vérifiez qu'il dispose des rôles nécessaires aux opérations de la charge de travail. Attribuez les rôles manquants.

Configuration des services externes

Si votre charge de travail se connecte à des bases de données ou à des services en dehors de Google Cloud, vérifiez leur configuration :

  • Vérifiez que le pare-feu ou le groupe de sécurité du service externe autorise les connexions entrantes à partir des plages d'adresses IP de votre réseau VPC : le cas échéant, vérifiez les adresses IP internes à l'aide de l'appairage de VPC, de Cloud VPN ou de Cloud Interconnect, ou les adresses IP Cloud NAT.
  • Vérifiez les identifiants de base de données ou les chaînes de connectivité. Vérifiez les informations de connexion , les noms d'utilisateur et les mots de passe.

Étape suivante