In diesem Dokument wird beschrieben, wie Sie Arbeitslasten mit dem TPU All Capacity-Modus in GKE bereitstellen und verwalten. Alle Reservierungen im Kapazitätsmodus bieten eine bessere Kontrolle über Ihre TPU-Ressourcen. So können Sie Ihre Arbeitslasten mit detaillierter Steuerung in Ihrer reservierten Kapazität platzieren.
Dieses Dokument richtet sich an Entwickler von maschinellem Lernen (ML) sowie an Plattformadministratoren und ‑operatoren, die die Kubernetes-Containerorchestrierung mit detaillierter Steuerung von TPU-Bereitstellungen verwenden möchten.
Bevor Sie dieses Dokument lesen, sollten Sie mit Folgendem vertraut sein:
Was ist der Modus „TPU – Gesamtkapazität“?
Im Modus „TPU – Gesamtkapazität“, der durch TPU Cluster Director aktiviert wird, haben Sie die vollständige Kontrolle über Ihre reservierte TPU-Kapazität. TPU Cluster Director ist ein Verwaltungsdienst, mit dem Sie Ihre TPUs reservierungsbasiert steuern können.
Im Gegensatz zum vorherigen verwalteten Modus, in dem Google Cloud einen Teil Ihrer Kapazität für Hardwarefehler reserviert, erhalten Sie im Modus „Alle Kapazitäten“ Zugriff auf alle Ihre reservierten TPU-Ressourcen. In diesem Modus haben Sie vollständigen Einblick in den Hardwarestatus, sind aber auch für die Verwaltung von Knotenausfällen und geplanten Wartungsarbeiten verantwortlich.
Weitere Informationen zu den wichtigsten Funktionen des Modus „All Capacity“ finden Sie unter Modus „All Capacity“ in der Übersicht über TPU Cluster Director.
Terminologie in Bezug auf den Modus „Alle Kapazitäten“ in GKE
Die folgende Tabelle enthält die Begriffe und Entsprechungen, die durch die Größe eines Blocks, Unterblocks und Würfels in der Ironwood-Version (TPU7x) definiert werden. Ein Würfel ist eine 4x4x4-Topologie miteinander verbundener TPU-Chips, die nur für Topologien in 3-Tupeln ({A} × {B} × {C}) gilt.
| TPU-Ressource | Kerne | Chips | Hosts | Cubes |
|---|---|---|---|---|
| 1 Chip | 2 | 1 | - | - |
| 1 Organisator | 8 | 4 | 1 | - |
| 1 Unterblock | 128 | 64 | 16 | 1 |
| Ein Block enthält 144 Unterblöcke. | 18432 | 9216 | 2304 | 144 |
Weitere Informationen zu den zulässigen Topologien in einem Block finden Sie unter Topologie auswählen.
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem Befehl
gcloud components updateab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.
- Sie benötigen einen Standardcluster mit Version 1.34.0-gke.2201000 oder höher. Informationen zum Erstellen eines neuen Clusters finden Sie unter Regionalen Cluster erstellen.
- Prüfen Sie, ob Sie ein ausreichendes Kontingent für TPUs in der Region haben, die Sie verwenden möchten.
- Installieren Sie JobSet v0.2.3 oder höher.
Beschränkungen
Der TPU-Modus „All Capacity“ in GKE unterstützt nur Ironwood-Versionen (TPU7x).
TPU-Modus „Alle Kapazitäten“ in GKE verwenden
In diesem Abschnitt wird der Workflow für die Verwendung des TPU-Modus „All Capacity“ in GKE beschrieben.
- Machen Sie sich mit TPU Cluster Director vertraut.
- TPU-Kapazität im Modus „All Capacity“ anfordern
- Topologie und Zustand von Reservierungen im Modus „Alle Kapazitäten“ ansehen
- Führen Sie den Schritt in diesem Dokument aus:
- Wartungsereignisse mit TPUs im Modus „Alle Kapazitäten“ verwalten
- Fehlerhafte Hosts mit TPUs im Modus „Alle Kapazitäten“ melden und reparieren
Knotenpool in einer Reservierung im Modus „Alle Kapazitäten“ erstellen
Mit „All Capacity“ in GKE können Sie Knotenpools auf folgende Arten erstellen:
- Ein Knotenpool, in dem GKE den Block oder Unterblock in Ihrer TPU-Reservierung für die gesamte Kapazität auswählt.
- Ein Knotenpool, der auf einen bestimmten Block oder Unterblock innerhalb einer TPU-Reservierung im Modus „Alle Kapazitäten“ ausgerichtet ist.
GKE wählt den Block oder Unterblock in Ihrer TPU-Reservierung „All Capacity“ aus.
In diesem Modus wählt GKE die Platzierung des Knotenpools in Ihrer TPU-Reservierung für die gesamte Kapazität aus. Dieser Prozess ähnelt dem Erstellen von Knotenpools mit anderen TPU-Bereitstellungsoptionen wie On-Demand- oder Spot-VMs.
Verwenden Sie zum Erstellen eines Knotenpools den Befehl gcloud container node-pools create mit dem Flag --reservation.
Geben Sie den vollständigen Ressourcennamen Ihrer TPU-Reservierung als Wert für das Flag --reservation an.
Ein Beispiel für einen Befehl zum Erstellen eines Knotenpools finden Sie unter Knotenpool manuell erstellen.
Block oder Unterblock in einer Reservierung auswählen
Im Modus „TPU All Capacity“ können Sie einen bestimmten Block oder Unterblock in Ihrer TPU-Reservierung für parallele Arbeitslasten festlegen. Diese Funktion ist nützlich für Arbeitslasten, die eine geringe Latenz erfordern, da die TPU-Chips nahe beieinander platziert werden.
Hier finden Sie die verfügbaren Block-, Unterblock- und Hostkonfigurationen. Führen Sie die Schritte im Dokument Topologie und Integritätsstatus von Reservierungen im Modus „Alle Kapazitäten“ ansehen aus.
Arbeitslastrichtlinie erstellen:
können Sie die Liste der Arbeitslastrichtlinien aufrufen.gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \ --type=HIGH_THROUGHPUT \ --accelerator-topology=TPU_TOPOLOGY \ --project=PROJECT_ID \ --region=REGIONErsetzen Sie Folgendes:
WORKLOAD_POLICY_NAME: ein Name für Ihre Arbeitslastrichtlinie.TPU_TOPOLOGY: Die TPU Ironwood-Topologie (TPU7x). Beispiel:2x2x2. Eine Liste aller unterstützten Ironwood-Topologien (TPU7x) finden Sie unter TPUs in GKE planen.PROJECT_ID: Projekt-ID in Google Cloud .REGION: die Region für die Arbeitslastrichtlinie. Eine Arbeitslastrichtlinie ist eine regionale Ressource und kann für Knotenpools mit derselben Topologie wiederverwendet werden.
Wenn Sie einen Knotenpool erstellen und auf einen bestimmten Block oder Unterblock der Reservierung ausrichten möchten, verwenden Sie das Flag
--reservation, um den vollständigen Ressourcennamen des Zielblocks oder ‑unterblocks in Ihrer Reservierung anzugeben.Wenn Sie einen bestimmten Block in Ihrer Reservierung ansprechen möchten, verwenden Sie den folgenden Befehl:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --machine-type=tpu7x-standard-4t \ --placement-policy=WORKLOAD_POLICY_NAME \ --zone=ZONE \ --reservation=project/PROJECT/reservation/RESERVATION_NAME/reservationBlocks/BLOCK_NAMEWenn Sie einen bestimmten Unterblock innerhalb eines Blocks ansprechen möchten, verwenden Sie den folgenden Befehl:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --machine-type=tpu7x-standard-4t \ --placement-policy=WORKLOAD_POLICY_NAME \ --zone=ZONE \ --reservation=project/PROJECT/reservation/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAMEErsetzen Sie Folgendes:
NODE_POOL_NAMEist der Name des neuen Knotenpools.CLUSTER_NAME: der Name Ihres GKE-Clusters.WORKLOAD_POLICY_NAME: der Name der von Ihnen erstellten Workload-Richtlinie.ZONE: die Zone für den Knotenpool, z. B.us-central1-a.PROJECT: Projekt-ID in Google Cloud .RESERVATION_NAME: Der Name Ihrer TPU-Reservierung.BLOCK_NAME: der spezifische Block in Ihrer Reservierung.SUB_BLOCK_NAME: der spezifische Unterblock innerhalb Ihrer Reservierung.
In den vorherigen Befehlen
Arbeitslasten planen
Nachdem Sie einen Knotenpool mit TPU-VMs im Modus „All Capacity“ erstellt haben, können Sie Ihre Arbeitslast wie bei jedem anderen TPU-Knotenpool bereitstellen. Im TPU-Modus „All Capacity“ gibt es keine zusätzlichen Unterschiede bei der Planung von Arbeitslasten im Vergleich zu Knotenpools, die standardmäßige SLO-basierte Reservierungen verwenden.
Weitere Informationen und Beispiele für Arbeitslasten, die TPUs verwenden, finden Sie unter Arbeitslast auf TPU-Slice-Knoten ausführen und Multislice-Arbeitslast ausführen.
Knotenfehler verwalten
Reservierungen im TPU-Modus „Alle Kapazitäten“ sind Reservierungen ohne Holdback. Keine Zurückbehaltung bedeutet, dass Sie die volle TPU-Kapazität erhalten, einschließlich des Teils, der normalerweise im Modus für verwaltete Kapazität für Failover zurückbehalten wird.Google Cloud
Wenn eine VM im Modus „TPU – Alle Kapazitäten“ aufgrund von Problemen wie Hardwarefehlern ausfällt, wird versucht,die VM auf demselben Host wiederherzustellen (In-Place-Reparatur). Google Cloud Wir empfehlen daher, Reservekapazität vorzuhalten, um Arbeitslasten bei Infrastrukturausfällen neu zu planen.
Knotenausfall und ‑wiederherstellung
Wenn ein Knoten in einer Reservierung im TPU-Modus „Alle Kapazitäten“ ausfällt, treten die folgenden Ereignisse ein:
- Google Cloud
löst ein Reparaturereignis für die fehlerhafte Compute Engine-VM-Instanz aus. Bei diesem Vorgang wird versucht, die VM in den Status
RUNNINGzurückzusetzen und den GKE-Knotenstatus aufREADYzurückzusetzen. - Die TPU-VM wechselt in den Status „Wird repariert“ und alle Arbeitslasten, die auf diesem Knoten ausgeführt werden, können je nach Failover-Richtlinie fehlschlagen. Der Status des Knotenpools ändert sich nicht in
ERROR, auch wenn bei einer oder mehreren seiner VMs Fehler auftreten.
So überwachen Sie den Systemstatus Ihrer Knoten:
Knoten im Knotenpool auflisten:
kubectl get nodesFehlgeschlagene Knoten haben den Status
NotReady.Status des Compute Engine-Knotens überwachen:
Verwenden Sie für TPU-VMs im Modus „All Capacity“ (Alle Kapazitäten)
gcloud compute instances describe. Dieser Befehl liefert auch den physischen Status der Topologie, um Host-, Unterblock- und Blockdetails zu finden.gcloud compute instances describe VM_NAME \ --format="table[box,title=VM-Position](resourceStatus.physical_host_topology:label=location)" \ --zone=ZONEErsetzen Sie Folgendes:
VM_NAME: Der Name der TPU-VM-Instanz.ZONE: die Zone der VM, z. B.us-central1-a.
Weitere Informationen zum Abrufen von Topologie- und Integritätsinformationen zu Ihrer Kapazität im Modus „Alle Kapazitäten“ finden Sie unter Topologie und Integritätsstatus von Reservierungen im Modus „Alle Kapazitäten“ ansehen.
Wartung verwalten
Um potenzielle Störungen zu minimieren und dafür zu sorgen, dass Ihre Arbeitslasten weiterhin stabil bleiben, können Sie die Wartung für einzelne Knoten mit GKE-Wartungsrichtlinien verwalten. Weitere Informationen finden Sie unter Wartungsfenster und ‑ausschlüsse.
GKE unterstützt keine Gruppenwartung für TPU-VMs in einer Reservierung im Modus „Alle Kapazitäten“. Verwenden Sie Compute Engine APIs, um die Gruppenwartung auf Unterblock-, Block- oder Reservierungsebene durchzuführen. Weitere Informationen finden Sie unter Wartungsereignisse mit TPUs im Modus „All Capacity“ verwalten.
Bereinigen
Damit Ihrem Google Cloud -Konto keine unerwünschten Gebühren in Rechnung gestellt werden, sollten Sie die TPU-Knotenpools löschen, die keine geplanten Arbeitslasten mehr haben. Wenn die ausgeführten Arbeitslasten ordnungsgemäß beendet werden müssen, verwenden Sie den Befehl kubectl drain, um die Arbeitslasten zu bereinigen, bevor Sie den Knotenpool löschen.
Löschen Sie einen TPU-Knotenpool:
gcloud container node-pools delete NODE_POOL_NAME \ --location=LOCATION \ --cluster=CLUSTER_NAMEErsetzen Sie Folgendes:
NODE_POOL_NAMEist der Name des Knotenpools.CLUSTER_NAMEist der Name des Clusters.LOCATION: Der Compute-Standort des Clusters.
Nächste Schritte
- Mehr über TPUs in GKE erfahren
- Informationen zum Bereitstellen von TPU-Arbeitslasten in GKE Standard
- Weitere Informationen zu TPU Cluster Director