Questa pagina fornisce indicazioni per la diagnosi e la risoluzione dei problemi comuni di connettività di rete per i carichi di lavoro batch e le sessioni interattive di Serverless per Apache Spark. Questi problemi possono impedire ai tuoi workload di accedere alle origini dati richieste, ai servizi esterni o alle API Google Cloud .
Sintomi e messaggi di errore comuni
Quando Serverless per Apache Spark rileva problemi di connettività, potresti riscontrare errori come:
Unable to connect to service_name.googleapis.com
Could not reach required Google APIs
Connection refused
Host unreachable
Operation timed out
Permission denied
(spesso correlato alla rete se blocca le chiamate API)
Potresti anche riscontrare errori relativi all'accesso ai dati in Cloud Storage, BigQuery o altri database.
Cause comuni e suggerimenti per la risoluzione dei problemi
Questa sezione elenca le cause comuni dei problemi di connettività di Serverless per Apache Spark e fornisce suggerimenti per la risoluzione dei problemi per aiutarti a risolverli.
Configurazione di rete
Le configurazioni errate della rete sono una causa frequente di errori di connettività. I workload e le sessioni di Serverless per Apache Spark vengono eseguiti su VM con indirizzi IP interni, con l'accesso privato Google (PGA) abilitato automaticamente nella subnet del workload o della sessione per accedere a servizi e API Google. Per maggiori informazioni, vedi Configurazione di rete di Serverless per Apache Spark.
Opzioni di accesso:
Private Service Connect (PSC): puoi creare endpoint privati all'interno della tua rete VPC per accedere a specifiche API di Google.
- Nella console Google Cloud , vai a
Private Service Connect > Endpoint.
Connetti gli endpoint o conferma che siano connessi per tutte le API richieste, ad esempio
storage.googleapis.com
edataproc.googleapis.com
, e che si connettano al batch workload o alla rete Virtual Private Cloud della sessione.
- Nella console Google Cloud , vai a
Private Service Connect > Endpoint.
Connetti gli endpoint o conferma che siano connessi per tutte le API richieste, ad esempio
Cloud NAT: se il tuo workload deve accedere a internet pubblico, puoi configurare Cloud NAT per il tuo workload batch o la subnet della sessione:
- Nella console Google Cloud , vai alla pagina
Cloud NAT.
Configura un gateway o verifica che un gateway sia configurato per la rete VPC, la regione e la subnet del workload batch o della sessione. Inoltre,
assicurati che le regole firewall consentano
l'uscita a
0.0.0.0/0
. Per saperne di più, vedi Configurare Cloud NAT.
- Nella console Google Cloud , vai alla pagina
Cloud NAT.
Configura un gateway o verifica che un gateway sia configurato per la rete VPC, la regione e la subnet del workload batch o della sessione. Inoltre,
assicurati che le regole firewall consentano
l'uscita a
Regole firewall:
- Le regole firewall in uscita nella rete VPC (o nel progetto host della rete VPC condivisa, se applicabile) non devono bloccare il traffico in uscita verso le destinazioni richieste.
- Se applicabile, le regole di uscita devono consentire il traffico verso servizi esterni, come API e database pubblici al di fuori di Google Cloud. Se il tuo batch o la tua sessione ha bisogno dell'accesso a internet, puoi utilizzare Cloud NAT per fornire l'uscita della subnet.
- Sebbene non sia una causa comune di problemi di connettività, regole di ingresso eccessivamente restrittive potrebbero bloccare inavvertitamente il traffico di ritorno necessario o le comunicazioni interne.
- Le regole firewall in uscita nella rete VPC (o nel progetto host della rete VPC condivisa, se applicabile) non devono bloccare il traffico in uscita verso le destinazioni richieste.
Risoluzione DNS:
- La risoluzione DNS deve essere configurata all'interno della rete VPC. I carichi di lavoro e le sessioni devono essere in grado di risolvere i nomi host per
le API di Google, come
storage.googleapis.com
obigquery.googleapis.com
e i servizi esterni. - I server DNS personalizzati e le zone private di Cloud DNS devono inoltrare o risolvere le query per i domini Google.
- Se utilizzi Private Service Connect per l'accesso privato alle API di Google, i record DNS per i servizi Google devono essere risolti in indirizzi IP privati all'interno della tua rete VPC utilizzando l'endpoint PSC.
- La risoluzione DNS deve essere configurata all'interno della rete VPC. I carichi di lavoro e le sessioni devono essere in grado di risolvere i nomi host per
le API di Google, come
Suggerimenti per la risoluzione dei problemi:
Identifica la configurazione di rete e subnet:
- Dai dettagli del batch o della sessione di Serverless per Apache Spark, esamina
networkUri
esubnetUri
. - Nella console Google Cloud , esamina le impostazioni della rete VPC e della subnet.
- Dai dettagli del batch o della sessione di Serverless per Apache Spark, esamina
Testa la connettività da una VM proxy:
- Avvia una VM Compute Engine di test nella subnet batch o sessione utilizzando ilaccount di serviziot batch o sessione.
- Dalla VM di test, esegui i seguenti test di connettività:
nslookup storage.googleapis.com
per verificare la risoluzione DNS. Cerca altri domini API Google, comebigquery.googleapis.com
edataproc.googleapis.com
. Con l'accesso privato Google, che viene abilitato automaticamente nelle subnet Serverless per Apache Spark o Private Service Connect, i domini devono essere risolti in indirizzi IP privati.curl -v https://storage.googleapis.com
per verificare la connettività HTTPS alle API di Google. Prova anche a connetterti ad altri servizi Google.ping 8.8.8.8
per testare la connettività a internet, se richiesta dal batch o dalla sessione. Provacurl -v https://example.com
se è previsto Cloud NAT.
- Esegui i Google Cloud test di connettività di Network Intelligence Center per diagnosticare i percorsi di rete dalla tua subnet agli endpoint pertinenti, come le API di Google e gli indirizzi IP esterni.
Controlla Cloud Logging per gli errori di rete:
- Esamina la registrazione per il tuo workload o la tua sessione Serverless per Apache Spark. Cerca messaggi
ERROR
oWARNING
relativi a timeout di rete, rifiuti di connessione o errori di chiamata API. Filtra perjsonPayload.component="driver"
ojsonPayload.component="executor"
per problemi di rete specifici di Spark.
- Esamina la registrazione per il tuo workload o la tua sessione Serverless per Apache Spark. Cerca messaggi
Autorizzazioni IAM
Autorizzazioni IAM insufficienti possono impedire ai workload o alle sessioni di accedere alle risorse, causando errori di rete se le chiamate API vengono negate.
Il account di servizio utilizzato dal batch o dalla sessione deve disporre dei ruoli richiesti:
- Ruolo Dataproc Worker (
roles/dataproc.worker
). - Ruoli di accesso ai dati, ad esempio
roles/storage.objectViewer
oroles/bigquery.dataViewer
). - Logging: (
roles/logging.logWriter
).
Suggerimenti per la risoluzione dei problemi:
- Identifica il service account del batch workload o della sessione. Se non specificato, il valore predefinito è l'account di servizio Compute Engine predefinito.
- Vai alla pagina IAM e amministrazione > IAM nella console Google Cloud , individua il account di servizio del batch o della sessione e verifica che disponga dei ruoli necessari per le operazioni del workload. Concedi i ruoli mancanti.
Configurazione del servizio esterno
Se il tuo workload si connette a database o servizi esterni a Google Cloud, verifica la loro configurazione:
- Verifica che il firewall del servizio esterno o il gruppo di sicurezza consenta le connessioni in entrata dagli intervalli IP della tua rete VPC: se applicabile, controlla gli indirizzi IP interni utilizzando il peering VPC, Cloud VPN o Cloud Interconnect oppure gli indirizzi IP Cloud NAT.
- Controlla le credenziali del database o le stringhe di connettività. Controlla i dettagli della connessione, i nomi utente e le password.
Passaggi successivi
- Scopri di più sul networking di Serverless per Apache Spark.
- Esamina i service account Serverless per Apache Spark.
- Consulta le guide generali alla risoluzione dei problemi di rete: