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.comCould not reach required Google APIsConnection refusedHost unreachableOperation timed outPermission 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.cometdataproc.googleapis.comet qu'ils se connectent au réseau Virtual Private Cloud de la charge de travail par lot ou de la session.
- 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
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.
- 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
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.
- 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.
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.comoubigquery.googleapis.comet 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.
- 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
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
networkUrietsubnetUri. - Dans la Google Cloud console, examinez les paramètres du réseau VPC et du sous-réseau.
- Dans les détails du lot ou de la session Serverless pour Apache Spark, examinez
les
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.compour vérifier la résolution DNS. Recherchez d'autres domaines d'API Google, tels quebigquery.googleapis.cometdataproc.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.compour vérifier la connectivité HTTPS aux API Google. Essayez également de vous connecter à d'autres services Google.ping 8.8.8.8pour tester la connectivité Internet si votre lot ou votre session l'exige. Essayezcurl -v https://example.comsi 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
ERRORouWARNINGliés aux délais d'attente du réseau, aux refus de connexion ou aux échecs d'appel d'API. Filtrez parjsonPayload.component="driver"oujsonPayload.component="executor"pour les problèmes réseau spécifiques à Spark.
- Examinez la journalisation de votre charge de travail ou de votre session Serverless pour Apache Spark. Recherchez les messages
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.objectViewerouroles/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
- En savoir plus sur la mise en réseau Serverless pour Apache Spark.
- Consultez les comptes de service Serverless pour Apache Spark.
- Consultez les guides de dépannage réseau généraux :