Cette page explique comment diagnostiquer et résoudre les problèmes de connectivité réseau courants 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, aux services externes ou aux API Google Cloud requises.
Problèmes constatés et messages d'erreur courants
Lorsque Serverless pour Apache Spark rencontre des problèmes de connectivité, vous pouvez rencontrer 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 liste 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 réseau sont une cause fréquente d'échec de connexion. 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 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 console Google Cloud , 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
etdataproc.googleapis.com
, et qu'ils se connectent au réseau VPC (Virtual Private Cloud) de la charge de travail par lot ou de la session.
- Dans la console Google Cloud , 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 votre charge de travail par lot ou le sous-réseau de session :
- Dans la console Google Cloud , accédez à la page Cloud NAT.
Configurez une passerelle ou vérifiez qu'une passerelle est configurée pour le réseau, la région et le sous-réseau VPC de la charge de travail ou de la session par lot. Assurez-vous également que les règles de pare-feu autorisent la sortie vers
0.0.0.0/0
. Pour en savoir plus, consultez Configurer Cloud NAT.
- Dans la console Google Cloud , accédez à la page Cloud NAT.
Configurez une passerelle ou vérifiez qu'une passerelle est configurée pour le réseau, la région et le sous-réseau VPC de la charge de travail ou de la session par lot. Assurez-vous également que les règles de pare-feu autorisent la sortie vers
Règles de pare-feu :
- Les règles de pare-feu de sortie de votre réseau VPC (ou du projet hôte de 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 trafic sortant doivent autoriser le trafic vers les 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 ont besoin d'un accès à Internet, vous pouvez utiliser Cloud NAT pour fournir une sortie de sous-réseau.
- Bien que ce ne soit pas une cause courante de problèmes de connectivité, des règles d'entrée trop restrictives peuvent bloquer par inadvertance le trafic de retour nécessaire ou les communications internes.
- Les règles de pare-feu de sortie de votre réseau VPC (ou du projet hôte de 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.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 accéder de manière privée aux API Google, les enregistrements DNS des services Google doivent être résolus en adresses IP privées au sein de 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
Identifiez la configuration du réseau et du sous-réseau :
- Dans les détails des sessions ou des lots Serverless pour Apache Spark, examinez les
networkUri
etsubnetUri
. - Dans la console Google Cloud , vérifiez les paramètres du réseau et du sous-réseau VPC.
- Dans les détails des sessions ou des lots Serverless pour Apache Spark, examinez les
Testez la connectivité à partir d'une VM proxy :
- Lancez une VM Compute Engine de test dans le sous-réseau de lot ou de session à l'aide du compte de service de lot ou de 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 quebigquery.googleapis.com
etdataproc.googleapis.com
. Avec l'accès privé à Google, qui est automatiquement activé sur les sous-réseaux Serverless pour Apache Spark, ou avec Private Service Connect, les domaines doivent être associés à des 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. Essayezcurl -v https://example.com
si Cloud NAT est attendu.
- Exécutez les tests de connectivité Network Intelligence Center pour diagnostiquer les chemins réseau de votre sous-réseau vers les points de terminaison concernés, tels que les API Google et les adresses IP externes. Google Cloud
Consultez Cloud Logging pour détecter les erreurs réseau :
- Consultez la journalisation de votre charge de travail ou session Serverless pour Apache Spark. Recherchez les messages
ERROR
ouWARNING
liés aux délais d'attente du réseau, aux refus de connexion ou aux échecs d'appels d'API. Filtrez parjsonPayload.component="driver"
oujsonPayload.component="executor"
pour les problèmes de réseau spécifiques à Spark.
- Consultez la journalisation de votre charge de travail ou 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 peut entraîner 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
ouroles/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 Compute Engine par défaut est utilisé.
- Accédez à la page IAM et administration > IAM de la console Google Cloud , 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 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 depuis les 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 réseaux VPC, de Cloud VPN ou de Cloud Interconnect, ou les adresses IP Cloud NAT.
- Vérifiez les identifiants ou les chaînes de connectivité de la base de données. Vérifiez les informations de connexion, les noms d'utilisateur et les mots de passe.
Étapes suivantes
- En savoir plus sur la mise en réseau de Serverless pour Apache Spark
- Consultez Comptes de service pour Serverless pour Apache Spark.
- Consultez les guides de dépannage réseau généraux :