Best practice di networking

Questo documento descrive le best practice per la creazione di un ambiente di rete sicuro e resiliente per i carichi di lavoro di AI Hypercomputer. Questi consigli sono destinati ad architetti di rete, ingegneri di rete e sviluppatori che vogliono configurare ed eseguire il deployment di carichi di lavoro di intelligenza artificiale (AI) e machine learning (ML) su AI Hypercomputer.

Stabilisci ruoli IAM chiari e limitati

La configurazione corretta di IAM contribuisce a migliorare la sicurezza e il successo dei deployment di AI Hypercomputer. Negli ambienti di produzione, autorizzazioni inadeguate o configurate in modo errato possono causare errori di deployment. I deployment di AI Hypercomputer, in particolare quelli che utilizzano Cluster Toolkit, spesso non riescono negli ambienti con posture di sicurezza rafforzate in cui l'account di servizio predefinito di Compute Engine non ha il ruolo ampio Editor.

Per contribuire a mitigare i problemi di deployment che potrebbero verificarsi a causa di problemi di autorizzazione, segui le best practice elencate in questa sezione.

Utilizza account di servizio dedicati

Per una maggiore sicurezza e un maggiore controllo, evita di utilizzare l'account di servizio predefinito di Compute Engine. Crea invece un account di servizio dedicato per il deployment di AI Hypercomputer.

Puoi utilizzare Managed Workload Identity per autenticare e autorizzare i carichi di lavoro anziché utilizzare i token degli account di servizio. Per ulteriori informazioni, consulta Autentica i carichi di lavoro utilizzando mTLS per Compute Engine o Workload Identity per GKE.

Concedi i ruoli IAM necessari

Concedi i seguenti ruoli IAM all'account di servizio dedicato che hai creato:

  • Compute Admin (roles/compute.admin): fornisce il controllo completo delle risorse di Compute Engine.
  • Service Account User (roles/iam.serviceAccountUser): consente di collegare l'account di servizio ad altre risorse, il che è fondamentale per strumenti come Packer durante la creazione di immagini personalizzate.
  • Storage Admin (roles/storage.admin): richiede l'accesso e la gestione dei bucket Cloud Storage, ad esempio per archiviare immagini Packer o altri artefatti.
  • Logging Admin (roles/logging.admin): consente all'account di servizio di configurare la registrazione e visualizzare i log, il che è essenziale per il debug.

Verifica le autorizzazioni prima del deployment

Prima di avviare un deployment, verifica che il tuo account di servizio disponga delle autorizzazioni necessarie. Esegui il gcloud projects get-iam-policy comando:

gcloud projects get-iam-policy PROJECT_ID \
    --flatten="bindings[].members" \ format='table(bindings.role)' \
    --filter="bindings.members:serviceAccount:SERVICE_ACCOUNT_EMAIL"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizio che vuoi verificare.

Questo comando elenca tutti i ruoli concessi al tuo account di servizio nel progetto specificato. Assicurati che i ruoli elencati in Concedi i ruoli IAM necessari siano visualizzati nell'output.

Limita l'accesso alla rete pubblica e rafforza le configurazioni del firewall

Limita l'accesso alla rete pubblica e rafforza le configurazioni del firewall per migliorare la sicurezza. Questa pratica di sicurezza fondamentale mitiga il rischio di regole firewall predefinite eccessivamente permissive.

In ambienti di produzione possono verificarsi errori di configurazione delle macchine virtuali (VM) a causa di configurazioni firewall restrittive non presenti nei test interni. Gli ingegneri potrebbero avere difficoltà a diagnosticare questi errori senza conoscere regole firewall specifiche.

Esamina e aggiorna le regole firewall per ridurre al minimo l'esposizione diretta a internet. Per ulteriori informazioni sulle regole firewall VPC, consulta Regole firewall VPC.

Standardizza le impostazioni predefinite di rete interne

Standardizza le impostazioni predefinite di rete interne per ridurre i rischi e le difficoltà di configurazione. I comportamenti di rete predefiniti possono creare rischi o difficoltà di configurazione in ambienti complessi o con sicurezza rafforzata. Google consiglia le seguenti configurazioni:

  • Utilizza il DNS di zona:per i nuovi progetti, imposta il DNS (Domain Name System) interno su DNS di zona. Questo approccio contribuisce a ridurre l'impatto di una potenziale interruzione del DNS globale. Per ulteriori informazioni sull'utilizzo del DNS di zona, consulta Panoramica dell'utilizzo del DNS di zona.
  • Disattiva gli indirizzi IP esterni:se possibile, disattiva gli indirizzi IP esterni. Prima di disattivare gli indirizzi IP, devi pianificare e testare attentamente in un ambiente di staging, poiché alcuni servizi come i gruppi di istanze gestite (MIG) o i cluster GKE con nodi pubblici si basano su di essi. Per ulteriori informazioni sulla limitazione degli indirizzi IP pubblici, consulta Limitazione degli indirizzi IP pubblici su Google Cloud.

Ottimizza la rete in base all'infrastruttura

Le best practice di rete per il deployment variano a seconda della scelta dell'infrastruttura: GPU generali o GPU in cluster.

Best practice per le GPU generali

Quando utilizzi le GPU generali, segui queste best practice di rete:

  • Utilizza i criteri di posizionamento compatti: se le istanze GPU generali non segnalano un ID physicalHost, utilizza i criteri di posizionamento compatti per identificare i raggruppamenti di istanze e ottimizzare il rendimento di queste risorse. Per ulteriori informazioni, consulta Definire il posizionamento delle istanze.
  • Utilizza Google Virtual NIC (gVNIC) per la comunicazione host: per un rendimento coerente utilizza TCP/IP standard su gVNIC per tutte le comunicazioni host-host. Per ulteriori informazioni su gVNIC, consulta Utilizzo di Google Virtual NIC.
  • Semplifica con un'architettura a singolo VPC: a meno che i requisiti di isolamento non richiedano diversamente, utilizza una rete VPC standard e singola per tutte le comunicazioni. Questo consiglio per un singolo VPC si applica alle serie G2, G4, A2 e N1; A3 Edge è un'eccezione che richiede quattro VPC di dati e GPUDirect-TCPX. Per ulteriori informazioni, consulta Massimizzare la larghezza di banda di rete GPU nei cluster in modalità standard.

Best practice per le GPU in cluster

Quando utilizzi le GPU in cluster, segui queste best practice di rete:

  • Implementa un ambiente multi-VPC: per garantire che il traffico GPU-GPU sia isolato su VPC dedicati a larghezza di banda elevata per impedire che il traffico host o di archiviazione competa per la larghezza di banda. Per ulteriori informazioni, consulta Ambiente multi-VPC environment.
  • Applica profili di rete ottimizzati per RDMA: utilizza i profili di rete gestiti da Google per configurare automaticamente il VPC per la bassa latenza richiesta da RDMA su Converged Ethernet (RoCE). Per ulteriori informazioni, consulta Profili di rete per casi d'uso specifici.
  • Offload delle attività dell'infrastruttura: utilizza le NIC Titanium personalizzate per offload delle attività, come l'elaborazione dei pacchetti di rete e la virtualizzazione per l'archiviazione, riservando i cicli della CPU per l'applicazione AI.

Riepilogo delle best practice

La tabella seguente riassume le best practice consigliate in questo documento:

Argomento Attività
IAM Stabilisci ruoli IAM chiari e limitati
Firewall Limita l'accesso alla rete pubblica e rafforza le configurazioni del firewall
Impostazioni predefinite di rete Standardizza le impostazioni predefinite di rete interne
Infrastruttura Ottimizza la rete in base all'infrastruttura

Passaggi successivi