Questa pagina mostra agli amministratori della piattaforma e agli ingegneri di machine learning (ML) come creare un cluster Google Kubernetes Engine (GKE) configurato per i workload basati su Pathways. Puoi eseguire il provisioning automatico dei cluster preconfigurati utilizzando Cluster Toolkit o creare i cluster manualmente utilizzando Google Cloud CLI.
Prima di iniziare
Prima di procedere, completa i seguenti prerequisiti:
- Installa gcloud CLI.
- Installa
kubectlegke-gcloud-auth-plugin. - Se utilizzi Cluster Toolkit, configuralo e aggiornalo all'ultima versione.
- Abilita l'API Kubernetes Engine.
- Verifica di disporre di una quota TPU sufficiente o di una prenotazione TPU per le sezioni TPU che vuoi creare.
Configura l'ambiente locale
Accedi a gcloud CLI con le tue credenziali Google Cloud :
gcloud auth login
Se utilizzi Cluster Toolkit, genera anche le credenziali predefinite dell'applicazione (ADC), utilizzate da Terraform:
gcloud auth application-default login
Crea un cluster GKE
Nell'esempio seguente, crei un cluster con pool di nodi TPU v6e 2x4. Puoi creare un cluster utilizzando Cluster Toolkit o gcloud CLI.
Cluster Toolkit
Esegui il deployment di un cluster GKE TPU seguendo le istruzioni riportate in Esegui il deployment di un cluster GKE TPU v6e. Per una panoramica di tutte le opzioni di deployment di TPU, consulta la panoramica dei deployment di Cloud TPU.
Quando configuri il progetto di deployment, segui questi passaggi:
- Imposta
enable_pathways_for_tpussutrue(attivato per impostazione predefinita nei progetti TPU di Cluster Toolkit). Questa impostazione esegue automaticamente il provisioning del pool di nodi CPUcpu-np(n4-standard-64) e delle configurazioni Kueue richiesti per il controller Pathways. Cluster Toolkit applica la configurazione Kueue predefinita di Pathways solo se non specifichi un file di configurazione Kueue personalizzato nella variabilekueue_configuration_path. - Imposta
num_slicessul numero di pool di nodi di sezioni TPU richiesti per il tuo workload. - Imposta
tpu_topologysulla topologia della sezione TPU selezionata (ad esempio,2x4o4x4). - Scegli un'opzione di consumo. Per impostazione predefinita, il file di deployment di TPU v6e utilizza una prenotazione TPU specifica, quindi specifica il nome della prenotazione nella variabile
reservation_affinity. Per utilizzare un'opzione di consumo diversa, consulta Opzioni di consumo di GKE.
- Imposta
Verifica che i nodi del cluster abbiano un
STATUSdiReady:kubectl get nodesDopo aver creato il cluster, puoi inviare i workload Pathways utilizzando il comando
gcluster job submitcon i flag--pathwayse--pathways-gcs-location. Per saperne di più, consulta Esegui i workload con Pathways.
gcloud
Per creare un cluster GKE e configurarlo per l'esecuzione dei workload Pathways, segui questi passaggi:
Imposta le seguenti variabili di ambiente:
CLUSTER=GKE_CLUSTER_NAME PROJECT=PROJECT_ID ZONE=ZONE REGION=REGION CLUSTER_VERSION=GKE_CLUSTER_VERSION PW_CPU_MACHINE_TYPE="n2-standard-64" NETWORK=NETWORK SUBNETWORK=SUB_NETWORK CLUSTER_NODEPOOL_COUNT=3 TPU_MACHINE_TYPE="ct6e-standard-4t" WORKERS_PER_SLICE=2 TOPOLOGY="2x4" NUM_CPU_NODES=1
Sostituisci quanto segue:
GKE_CLUSTER_NAME: il nome del tuo cluster GKE.PROJECT_ID: il tuo ID progetto Google Cloud .ZONE: la zona in cui crei il cluster. Scegli una zona in cui è disponibile TPU v6e. Per saperne di più, consulta Regioni e zone di Cloud TPU.REGION: (Facoltativo) la regione in cui crei le risorse se utilizzi un cluster a livello di regione.GKE_CLUSTER_VERSION: (facoltativo) la versione del cluster GKE. Utilizza1.32.2-gke.1475000o versioni successive e scegli una versione con assistenza standard. Per maggiori informazioni, consulta la programmazione delle release di GKE. Se non specifichi una versione, rimuovi il flag--cluster-versiondal seguente comandogcloud container clusters create.NETWORK: (facoltativo) il nome di una rete Virtual Private Cloud (VPC). La rete deve esistere prima di creare il cluster. Se non specifichi una rete, rimuovi il flag--networkdal seguente comandogcloud container clusters create.SUB_NETWORK: (Facoltativo) il nome di una subnet. La subnet deve esistere prima di creare il cluster. Se non specifichi una subnet, rimuovi il flag--subnetworkdal seguente comandogcloud container clusters create.
Questo esempio imposta i valori predefiniti per le variabili rimanenti, che puoi modificare per il tuo workload:
PW_CPU_MACHINE_TYPE: il tipo di macchina per il pool di nodi predefinito del cluster e per il pool di nodi della CPU che esegue l'head di Pathways (il gestore delle risorse e il proxy di Pathways).NUM_CPU_NODES: il numero di nodi nel pool di nodi della CPU.CLUSTER_NODEPOOL_COUNT: il numero di sezioni TPU. Ogni sezione è un pool di nodi separato.TPU_MACHINE_TYPEeTOPOLOGY: il tipo di macchina TPU e la topologia TPU di ogni sezione.WORKERS_PER_SLICE: il numero di nodi in ogni sezione, ovvero il numero di chip TPU nella topologia diviso per il numero di chip per nodo. Ad esempio, una topologia2x4ha 8 chip e un nodoct6e-standard-4tha 4 chip, quindi ogni sezione ha 2 nodi.
Crea un cluster GKE utilizzando il comando
gcloud container clusters create:gcloud container clusters create ${CLUSTER} \ --project=${PROJECT} \ --zone=${ZONE} \ --cluster-version=${CLUSTER_VERSION} \ --scopes=storage-full,gke-default,cloud-platform \ --machine-type=${PW_CPU_MACHINE_TYPE} \ --network=${NETWORK} \ --subnetwork=${SUBNETWORK}Crea i node pool di sezioni TPU utilizzando il comando
gcloud container node-pools create:for i in $(seq 1 ${CLUSTER_NODEPOOL_COUNT}); do gcloud container node-pools create "tpu-np-${i}" \ --project=${PROJECT} \ --zone=${ZONE} \ --cluster=${CLUSTER} \ --machine-type=${TPU_MACHINE_TYPE} \ --num-nodes=${WORKERS_PER_SLICE} \ --placement-type=COMPACT \ --tpu-topology=${TOPOLOGY} \ --scopes=storage-full,gke-default,cloud-platform \ --workload-metadata=GCE_METADATA doneQuesti comandi non hanno come target una prenotazione specifica. Per utilizzare una prenotazione TPU, aggiungi i flag
--reservation-affinity=specifice--reservation=RESERVATION_NAME, doveRESERVATION_NAMEè il nome della prenotazione TPU. Per utilizzare le VM spot, aggiungi il flag--spot.Crea un pool di nodi di CPU per l'head Pathways, che esegue il gestore delle risorse e il proxy Pathways. Assegna al pool di nodi il nome
cpu-npin modo che il comandogcluster job submit --pathwayspossa rilevarlo:gcloud container node-pools create cpu-np \ --project=${PROJECT} \ --zone=${ZONE} \ --cluster=${CLUSTER} \ --machine-type=${PW_CPU_MACHINE_TYPE} \ --num-nodes=${NUM_CPU_NODES} \ --scopes=storage-full,gke-default,cloud-platform \ --workload-metadata=GCE_METADATARecupera le credenziali per il cluster e imposta lo spazio dei nomi predefinito per
kubectl:gcloud container clusters get-credentials ${CLUSTER} \ --zone=${ZONE} \ --project=${PROJECT} \ && kubectl config set-context --current --namespace=defaultPer utilizzare l'architettura Pathways sul tuo cluster GKE, installa l'API
JobSet:kubectl apply --server-side -f https://github.com/kubernetes-sigs/jobset/releases/download/v0.12.0/manifests.yamlVerifica che i nodi abbiano un
STATUSdiReadye che il podjobset-controller-managerabbia unSTATUSdiRunning:kubectl get nodes kubectl get pods --namespace=jobset-systemL'output è simile al seguente:
NAME STATUS ROLES AGE VERSION gke-cluster-cpu-np-12345678-abcd Ready <none> 5m v1.32.2-gke.1475000 gke-cluster-tpu-np-1-12345678-efgh Ready <none> 5m v1.32.2-gke.1475000 ... NAME READY STATUS RESTARTS AGE jobset-controller-manager-6f7b8c9d4-xyz12 1/1 Running 0 2m
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il cluster al termine:
Cluster Toolkit: elimina il deployment eseguendo il seguente comando:
./gcluster destroy DEPLOYMENT_FOLDER_NAME
Sostituisci
DEPLOYMENT_FOLDER_NAMEcon il nome della cartella di deployment.gcloud CLI: elimina il cluster GKE e i relativi pool di nodi eseguendo questo comando:
gcloud container clusters delete ${CLUSTER} \ --project=${PROJECT} \ --zone=${ZONE}