Auf dieser Seite erfahren Plattformadministratoren und ML-Entwickler, wie sie einen GKE-Cluster (Google Kubernetes Engine) erstellen, der für Pathways-basierte Arbeitslasten konfiguriert ist. Sie können vorkonfigurierte Cluster automatisch mit dem Cluster Toolkit bereitstellen oder Cluster manuell mit der Google Cloud CLI erstellen.
Hinweis
Bevor Sie fortfahren, müssen die folgenden Voraussetzungen erfüllt sein:
- Installieren Sie die gcloud CLI.
- Installieren Sie
kubectlundgke-gcloud-auth-plugin. - Wenn Sie das Cluster Toolkit verwenden, richten Sie es ein und aktualisieren Sie es auf die neueste Version.
- Aktivieren Sie die Kubernetes Engine API.
- Prüfen Sie, ob Sie ein ausreichendes TPU-Kontingent oder eine TPU-Reservierung für die TPU-Slices haben, die Sie erstellen möchten.
Lokale Umgebung einrichten
Melden Sie sich mit Ihren Anmeldedaten für Google Cloud in der gcloud CLI an:
gcloud auth login
Wenn Sie das Cluster Toolkit verwenden, generieren Sie auch Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), die von Terraform verwendet werden:
gcloud auth application-default login
GKE-Cluster erstellen
Im folgenden Beispiel erstellen Sie einen Cluster mit TPU v6e-2x4-Knotenpools. Sie können einen Cluster mit dem Cluster Toolkit oder der gcloud CLI erstellen.
Cluster Toolkit
Stellen Sie einen GKE-TPU-Cluster bereit, indem Sie der Anleitung unter GKE-TPU-v6e-Cluster bereitstellen folgen. Eine Übersicht über alle TPU-Bereitstellungsoptionen finden Sie unter Cloud TPU-Bereitstellungen – Übersicht.
Gehen Sie beim Konfigurieren des Bereitstellungs-Blueprints so vor:
- Setzen Sie
enable_pathways_for_tpusauftrue(in Cluster Toolkit-TPU-Blueprints standardmäßig aktiviert). Mit dieser Einstellung werden automatisch der erforderlichecpu-np-CPU-Knotenpool (n4-standard-64) und die Kueue-Konfigurationen für den Pathways-Controller bereitgestellt. Das Cluster Toolkit wendet die Standardkonfiguration für Pathways Kueue nur an, wenn Sie in der Variablekueue_configuration_pathkeine benutzerdefinierte Kueue-Konfigurationsdatei angeben. - Legen Sie für
num_slicesdie Anzahl der TPU-Slice-Knotenpools fest, die für Ihre Arbeitslast erforderlich sind. - Legen Sie
tpu_topologyauf die ausgewählte TPU-Slice-Topologie fest (z. B.2x4oder4x4). - Wählen Sie eine Option für die Nutzung aus. Standardmäßig wird in der TPU v6e-Bereitstellungsdatei eine bestimmte TPU-Reservierung verwendet. Geben Sie daher den Reservierungsnamen in der Variable
reservation_affinityan. Wenn Sie eine andere Nutzungsoption verwenden möchten, finden Sie weitere Informationen unter GKE-Nutzungsoptionen.
- Setzen Sie
Prüfen Sie, ob die Clusterknoten den
STATUSReadyhaben:kubectl get nodesNachdem Sie den Cluster erstellt haben, können Sie Pathways-Arbeitslasten mit dem Befehl
gcluster job submitund den Flags--pathwaysund--pathways-gcs-locationeinreichen. Weitere Informationen finden Sie unter Arbeitslasten mit Pathways ausführen.
gcloud
So erstellen Sie einen GKE-Cluster und richten ihn für die Ausführung von Pathways-Arbeitslasten ein:
Legen Sie die folgenden Umgebungsvariablen fest:
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
Ersetzen Sie Folgendes:
GKE_CLUSTER_NAME: Name Ihres GKE-Clusters.PROJECT_ID: Ihre Projekt-ID in Google Cloud .ZONE: die Zone, in der Sie den Cluster erstellen. Wählen Sie eine Zone aus, in der TPU v6e verfügbar ist. Weitere Informationen finden Sie unter Cloud TPU-Regionen und -Zonen.REGION: Optional: Die Region, in der Sie Ressourcen erstellen, wenn Sie einen regionalen Cluster verwenden.GKE_CLUSTER_VERSION: Optional: die GKE-Clusterversion. Verwenden Sie1.32.2-gke.1475000oder höher und wählen Sie eine Version aus, die im Standardsupport enthalten ist. Weitere Informationen finden Sie im GKE-Release-Zeitplan. Wenn Sie keine Version angeben, entfernen Sie das Flag--cluster-versionaus dem folgendengcloud container clusters create-Befehl.NETWORK: Optional: der Name eines VPC-Netzwerks (Virtual Private Cloud). Das Netzwerk muss vorhanden sein, bevor Sie den Cluster erstellen. Wenn Sie kein Netzwerk angeben, entfernen Sie das Flag--networkaus dem folgendengcloud container clusters create-Befehl.SUB_NETWORK(optional): Der Name eines Subnetzwerks. Das Subnetzwerk muss vorhanden sein, bevor Sie den Cluster erstellen. Wenn Sie kein Subnetzwerk angeben, entfernen Sie das Flag--subnetworkaus dem folgendengcloud container clusters create-Befehl.
In diesem Beispiel werden Standardwerte für die verbleibenden Variablen festgelegt, die Sie für Ihre Arbeitslast ändern können:
PW_CPU_MACHINE_TYPE: der Maschinentyp für den Standardknotenpool des Clusters und für den CPU-Knotenpool, auf dem der Pathways-Head (der Pathways-Ressourcenmanager und -Proxy) ausgeführt wird.NUM_CPU_NODES: die Anzahl der Knoten im CPU-Knotenpool.CLUSTER_NODEPOOL_COUNT: die Anzahl der TPU-Slices. Jedes Slice ist ein separater Knotenpool.TPU_MACHINE_TYPEundTOPOLOGY: der TPU-Maschinentyp und die TPU-Topologie jedes Slices.WORKERS_PER_SLICE: die Anzahl der Knoten in jedem Slice, also die Anzahl der TPU-Chips in der Topologie geteilt durch die Anzahl der Chips pro Knoten. Eine2x4-Topologie hat beispielsweise 8 Chips und einct6e-standard-4t-Knoten hat 4 Chips. Jedes Slice hat also 2 Knoten.
Erstellen Sie einen GKE-Cluster mit dem Befehl
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}Erstellen Sie die TPU-Slice-Knotenpools mit dem Befehl
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 doneDiese Befehle sind nicht auf eine bestimmte Reservierung ausgerichtet. Wenn Sie eine TPU-Reservierung nutzen möchten, fügen Sie die Flags
--reservation-affinity=specificund--reservation=RESERVATION_NAMEhinzu, wobeiRESERVATION_NAMEder Name Ihrer TPU-Reservierung ist. Wenn Sie Spot-VMs verwenden möchten, fügen Sie das Flag--spothinzu.Erstellen Sie einen CPU-Knotenpool für den Pathways-Head, auf dem der Pathways-Ressourcenmanager und der Proxy ausgeführt werden. Geben Sie dem Knotenpool den Namen
cpu-np, damit er vom Befehlgcluster job submit --pathwayserkannt werden kann: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_METADATARufen Sie Anmeldedaten für den Cluster ab und legen Sie den Standard-Namespace für
kubectlfest:gcloud container clusters get-credentials ${CLUSTER} \ --zone=${ZONE} \ --project=${PROJECT} \ && kubectl config set-context --current --namespace=defaultWenn Sie die Pathways-Architektur in Ihrem GKE-Cluster verwenden möchten, installieren Sie die
JobSetAPI:kubectl apply --server-side -f https://github.com/kubernetes-sigs/jobset/releases/download/v0.12.0/manifests.yamlPrüfen Sie, ob die Knoten den
STATUSReadyhaben und ob der Podjobset-controller-managerdenSTATUSRunninghat:kubectl get nodes kubectl get pods --namespace=jobset-systemDie Ausgabe sieht etwa so aus:
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
Bereinigen
Löschen Sie den Cluster, wenn Sie fertig sind, damit Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden:
Cluster Toolkit: Löschen Sie die Bereitstellung mit dem folgenden Befehl:
./gcluster destroy DEPLOYMENT_FOLDER_NAME
Ersetzen Sie
DEPLOYMENT_FOLDER_NAMEdurch den Namen Ihres Bereitstellungsordners.gcloud CLI: Löschen Sie den GKE-Cluster und seine Knotenpools mit dem folgenden Befehl:
gcloud container clusters delete ${CLUSTER} \ --project=${PROJECT} \ --zone=${ZONE}