Puoi controllare le connessioni per le VM che eseguono un job specificando una rete con l'accesso desiderato. Ad esempio, potresti specificare una rete che consente un job per accedere alle risorse richieste o ne limita l'accesso per migliorare la sicurezza. In alternativa, se non hai requisiti di rete e configurare il networking per un job, salta la specifica della rete utilizza la configurazione di rete predefinita.
Per ulteriori informazioni sui concetti di networking e su quando configurarla, consulta la panoramica del networking in batch.
Prima di iniziare
- Se non hai mai utilizzato Batch, rivedi Inizia a utilizzare Batch e abilita Batch, completando prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job che viene eseguito su una rete specifica, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Editor job batch (
roles/batch.jobsEditor
) del progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito -
Per identificare la rete e la subnet:
Compute Network Viewer (
roles/compute.networkViewer
) nel progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Editor job batch (
-
Identifica la rete che vuoi utilizzare per il job. La rete specificata per un job deve soddisfare i seguenti requisiti
requisiti:
- La rete è un Rete Virtual Private Cloud (VPC) stesso progetto del job o è una Rete VPC condivisa ospitato o condiviso con il progetto relativo al job.
- La rete include una subnet nella località in cui vuoi eseguire il job.
-
La rete consente l'accesso necessario per il job. Ad esempio, se
un job richiede la comunicazione tra VM, come
che utilizza le librerie MPI
per comunicare tra attività ad alto accoppiamento: assicurati che la rete
ha una regola firewall che consente le connessioni tra le VM del job.
Scopri come Configura le regole firewall VPC per i casi d'uso comuni.
-
Se vuoi che un job venga eseguito su una subnet di una rete VPC condiviso
ospitato da un altro progetto,
Agente di servizio batch
gli utenti devono avere l'autorizzazione
per utilizzare questa subnet.
Per assicurarti che l'agente di servizio Batch del tuo progetto disponga dei necessari autorizzazioni per creare un job che viene eseguito su una subnet di una rete VPC condiviso, chiedi all'amministratore di concedere all'agente di servizio Batch del tuo progetto Ruolo IAM Utente di rete Compute (
roles/compute.networkUser
) sulla subnet VPC condiviso.Per saperne di più, consulta la documentazione relativa alla configurazione del VPC condiviso per gli account di servizio.
Creare un job che viene eseguito su una rete specifica
Specifica la rete per un job al momento della creazione. In particolare, devi specificare una rete VPC e una subnet situate dove vuoi eseguire il job.
Se vuoi utilizzare un modello di istanza VM durante la creazione di questo job, devi specificare la rete nel modello di istanza VM. In caso contrario, segui i passaggi riportati di seguito per specificare la rete per un job utilizzando l'interfaccia a riga di comando gcloud o l'API Batch.
gcloud
Per creare un job che viene eseguito su una rete specifica utilizzando gcloud CLI, seleziona una delle opzioni seguenti:
- Utilizzare i flag gcloud per specificare la rete per un job
- Utilizzare i campi JSON per specificare la rete per un job
Utilizza i flag gcloud per specificare la rete per un job
Per creare un job e utilizzare i flag gcloud per specificare la rete per il job, completa i seguenti passaggi:
Crea un file JSON che specifichi i dettagli di configurazione del job.
Ad esempio, per creare un job di script di base, crea un file JSON con i seguenti contenuti.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ] }, "taskCount": 3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Crea il job utilizzando il comando
gcloud batch jobs submit
. Per specificare la rete del job, includi Flag--network
e--subnetwork
.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE \ --network projects/HOST_PROJECT_ID/global/networks/NETWORK \ --subnetwork projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Sostituisci quanto segue:
JOB_NAME
: il nome di questo job.LOCATION
: il location per questo lavoro.JSON_CONFIGURATION_FILE
: il percorso file JSON con i dettagli di configurazione del job.HOST_PROJECT_ID
: il ID progetto del progetto per la rete specificata:- Se utilizzi una rete VPC condiviso, specifica l'host progetto.
- In caso contrario, specifica il progetto corrente.
NETWORK
: il nome di una rete VPC nel progetto corrente o di una rete VPC condivisa in hosting o condivisa con il progetto corrente.REGION
: il region in cui la subnet e le VM per il job si trovano:- Se includi il parametro
Campo
allowedLocations
specificare la località consentita per le VM per il job, deve specificare la stessa regione qui. - In caso contrario, la regione deve corrispondere alla regione
località selezionata per il lavoro
(
LOCATION
).
- Se includi il parametro
Campo
SUBNET
: il nome di una subnet che fa parte della rete VPC e si trova nella stessa regione delle VM per il job.
Utilizza i campi JSON per specificare la rete per un job
Per creare un job e utilizzare i campi del file di configurazione JSON per specificare rete per il job, completa questi passaggi:
Crea un file JSON che specifichi i dettagli di configurazione del job. Per specificare la rete per il job, includi i campi
network
esubnetwork
.Ad esempio, per creare un job di script di base che viene eseguito su una specifica rete, crea un file JSON con il contenuto seguente.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ] }, "taskCount": 3 } ], "allocationPolicy": { "network": { "networkInterfaces": [ { "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET" } ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Sostituisci quanto segue:
HOST_PROJECT_ID
: il ID progetto del progetto per la rete specificata:- Se utilizzi una rete VPC condiviso, specifica l'host progetto.
- In caso contrario, specifica il progetto corrente.
NETWORK
: il nome di una rete VPC nel progetto corrente o di una rete VPC condivisa in hosting o condivisa con il progetto corrente.REGION
: il region in cui la subnet e le VM per il job si trovano:- Se includi il parametro
Campo
allowedLocations
specificare la località consentita per le VM per il job, deve specificare la stessa regione qui. - In caso contrario, la regione deve corrispondere alla regione
località selezionata per il lavoro
(
LOCATION
).
- Se includi il parametro
Campo
SUBNET
: il nome di una subnet che fa parte della rete VPC e si trova nella stessa regione delle VM per il job.
Crea il job utilizzando il comando
gcloud batch jobs submit
.gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Sostituisci quanto segue:
JOB_NAME
: il nome di questo job.LOCATION
: il località per questo lavoro.JSON_CONFIGURATION_FILE
: il percorso file JSON con i dettagli di configurazione del job.
Java
Node.js
Python
API
Per creare un job utilizzando l'API Batch, utilizza il
metodo jobs.create
e specifica i dettagli di configurazione del job.
Per specificare la rete per il job, includi il parametro
Campi network
e subnetwork
:
Ad esempio, per creare un job di script di base che viene eseguito su una rete specifica, effettua la seguente richiesta POST
:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"network": {
"networkInterfaces": [
{
"network": "projects/HOST_PROJECT_ID/global/networks/NETWORK",
"subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET"
}
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Sostituisci quanto segue:
PROJECT_ID
: il ID progetto del tuo progetto.LOCATION
: la località per questo lavoro.JOB_NAME
: il nome di questo job.HOST_PROJECT_ID
: il ID progetto del progetto per la rete specificata:- Se utilizzi una rete VPC condiviso, specifica l'host progetto.
- In caso contrario, specifica il progetto attuale (
PROJECT_ID
).
NETWORK
: il nome di una rete VPC nel progetto corrente o di una rete VPC condivisa in hosting o condivisa con il progetto corrente.REGION
: il region in cui la subnet e le VM per il job si trovano:- Se includi il
campo
allowedLocations
per specificare la posizione consentita per le VM del job, devi specificare la stessa regione qui. - In caso contrario, la regione deve corrispondere alla
località selezionata per il job
(
LOCATION
).
- Se includi il
campo
SUBNET
: il nome di una subnet che fa parte della rete VPC e si trova nella stessa regione delle VM per il job.
Passaggi successivi
- Se hai problemi a creare o eseguire un job, consulta la sezione Risoluzione dei problemi.
- Scopri di più sul networking.
- Scopri di più sulla creazione di un job.
- Scopri come visualizzare lavori e attività.