Configura la connettività da Vertex AI ad altre reti

Assicurati di avere familiarità con il materiale relativo ai peering VPC prima di leggere questa guida.

Per impostazione predefinita, la configurazione del peering consente alla rete Vertex AI in peering solo di raggiungere gli endpoint nelle subnet locali. L'esportazione di route personalizzate consente alla rete del producer di raggiungere altre reti a cui la tua rete ha route statiche o dinamiche.

Poiché il peering transitivo non è supportato, le connessioni da Vertex AI non sono in grado di raggiungere gli endpoint in altre reti che sono direttamente in peering con la tua rete, anche se l'opzione "Esporta route personalizzate" è abilitata. Nell'esempio mostrato nel diagramma seguente, i pacchetti possono attraversare la connessione di peering 1, ma non la connessione in peering 2.

Con il peering transitivo

Per consentire a Vertex AI di raggiungere la rete utente n. 2, sostituisci la connessione in peering 2 con la VPN 2, come mostrato nel diagramma seguente.

Senza peering transitivo

L'abilitazione di route personalizzate nella connessione di peering 1 consente ai pacchetti IP dalla rete Vertex AI di raggiungere la rete utente 2.

Per consentire il routing dei pacchetti di risposta dalla rete utente n. 2 alla rete Vertex AI, è necessario che anche la route di ritorno sia presente nella tabella di routing per la rete utente n. 2. Le route VPN vengono scambiate utilizzando il protocollo BGP (Border Gateway Protocol) sui router Cloud. Possiamo personalizzare la configurazione BGP nell'utente 1 per pubblicizzare una route all'intervallo della rete Vertex AI pari a 10.1.0.0/16 verso la rete utente peer 2.

Tieni presente che puoi modificare entrambi i lati della configurazione BGP della VPN 1 per consentire alla rete on-premise e alla rete Vertex AI di apprendere le route l'una verso l'altra. Poiché non c'è alcun tentativo di trasmettere i pacchetti con percorso di inoltro dalla rete Vertex AI, né i pacchetti di risposta su connessioni di peering sequenziale rispetto a una singola rete, nessuno di questi tentativi di inoltro viene bloccato esplicitamente.

Configura la connettività da Vertex AI a internet

Se non viene specificata alcuna rete all'avvio di un carico di lavoro, quest'ultimo viene eseguito in un progetto producer separato gestito da Google.

Se viene specificata una rete, il carico di lavoro viene eseguito in un progetto producer connesso in peering al progetto consumer.

Per impostazione predefinita, la rete Vertex AI ha la propria route a internet e la rete del producer ha una propria route predefinita a internet.

Per forzare il routing delle connessioni in uscita dalla rete del producer attraverso la rete, puoi abilitare Controlli di servizio VPC per i peering. Tieni presente che questa è una configurazione separata dai Controlli di servizio VPC.

L'abilitazione dei Controlli di servizio VPC per i peering provoca le seguenti modifiche nella rete Vertex AI:

  • Elimina la route internet predefinita.
  • Crea una route per la destinazione 199.36.153.4/30 con l'hop successivo del gateway internet predefinito.
  • Crea una zona privata gestita di Cloud DNS per *.googleapis.com con record appropriati per mappare i nomi host a uno di questi quattro indirizzi.
  • Autorizza la zona all'utilizzo della rete VPC servicenetworking.

Con questa modifica, puoi esportare la route predefinita dalla tua rete per garantire che le connessioni in uscita verso internet vengano instradate attraverso la rete VPC. Questa modifica consente anche di applicare i criteri necessari al traffico in uscita da Vertex AI.

Utilizzo dei Controlli di servizio VPC

Se è specificata una rete per il carico di lavoro e sono abilitati Controlli di servizio VPC, il carico di lavoro viene eseguito in una rete producer connessa in peering con il progetto consumer e soggetta agli stessi criteri della rete consumer.

Se questi criteri bloccano il traffico in uscita, il carico di lavoro non sarà in grado di connettersi a internet in modo analogo. In questo caso, devi seguire i passaggi nella sezione precedente per forzare il traffico in uscita dal carico di lavoro a passare attraverso un'istanza NAT nella tua rete VPC.

Configura la connettività da Vertex AI utilizzando i proxy

Un altro pattern per controllare l'IP in uscita da Vertex AI è forzare le connessioni in uscita dai carichi di lavoro a passare attraverso un proxy web che controlli. Ciò consente anche di controllare la conformità delle connessioni in uscita.

Tuttavia, l'utilizzo di un proxy di terze parti obbliga l'utente a gestire il certificato del proxy per i reclami relativi all'autenticazione. Inoltre, questi proxy potrebbero non proporre un elenco di suite di crittografia che si intersecano con le aspettative degli SDK e delle API Vertex AI.

Google Cloud ora offre un proxy web sicuro per facilitare questo pattern. Ora puoi seguire la guida rapida Deployment di un'istanza di proxy web sicuro e adattare i carichi di lavoro in modo da utilizzarli per le connessioni in uscita. Queste connessioni sembreranno provenire dall'indirizzo IP di origine del proxy.

Se la libreria KFP non è già installata nell'immagine del componente, la pipeline tenta di installarla prima di eseguire qualsiasi codice in cui potresti aver specificato un proxy.

Se la pipeline dipende dal proxy per installare i pacchetti da internet, questo tentativo non andrà a buon fine e potrebbe essere visualizzato un errore come il seguente:

Could not find a version that satisfies the requirement kfp==2.7.0

In questi casi, se non riesci a installare KFP prima di eseguire il codice, devi utilizzare un'immagine in cui KFP è già installato.

Puoi aggiungere KFP a qualsiasi immagine di base ed eseguirne il push nel repository.

Il seguente esempio di Dockerfile aggiunge KFP all'immagine di base python:3.8.

FROM python:3.8
RUN pip install kfp==2.7.0

Puoi quindi configurare la pipeline @component per utilizzare questa immagine:

@component(base_image="$PATH_TO_YOUR_REPOSITORY:YOUR_IMAGE")

Quando il componente della pipeline è in esecuzione, il codice può installare liberamente altri pacchetti utilizzando il proxy. L'esempio seguente installa numpy utilizzando un proxy in https://10.10.10.10:443.

import subprocess
subprocess.call(['pip', 'install', '--proxy', 'https://10.10.10.10:443', 'numpy'])`

Configura liste consentite per l'accesso API

Per le transazioni tra i carichi di lavoro Vertex AI e le API di Google, devi consentire l'accesso dai carichi di lavoro agli intervalli IP utilizzati dalle API di Google. A questo scopo, puoi eseguire lo script fornito per restituire gli indirizzi IP per i domini predefiniti.