Flotten-Arbeitsbelastungen
IBM Cloud® Code Engine ist eine vollständig verwaltete, serverlose Plattform, auf der Ihre containerisierten Workloads, einschließlich Flotten-Workloads, ausgeführt werden. Erfahren Sie mehr über den Betrieb von Flotten in Code Engine.
Was sind Flotten?
Eine Flotte, auch serverlose Flotte genannt, ist eine Code Engine Rechenkomponente, die eine oder mehrere Instanzen von Benutzercode parallel ausführt, um eine große Warteschlange rechenintensiver Aufgaben zu erledigen. Flotten können sich mit Virtual Private Clouds verbinden, um Benutzerdaten sicher auszutauschen, wenn sie sich mit anderen Diensten verbinden. Im Gegensatz zu Batch-Aufträgen bieten Fleets dynamisches Task-Queuing und Single-Tenant-Isolation und sind sowohl mit vCPU als auch mit GPUs kompatibel.
Wie funktionieren die Flotten?
Flotten bestehen aus drei Hauptelementen: Aufgaben, Instanzen und Arbeitsknoten. Eine einzelne Aufgabe wird von einer einzelnen Instanz von Benutzercode erledigt, die auf einem Arbeitsknoten läuft. Jeder Arbeitsknoten kann mehrere Aufgaben gleichzeitig ausführen, so dass viele Aufgaben parallel erledigt werden können. Wenn eine Aufgabe abgeschlossen ist, wird eine neue Instanz auf dem Arbeitsknoten gestartet, um die nächste verfügbare Aufgabe in der Warteschlange zu erledigen. Dieser Vorgang wiederholt sich auf jedem Arbeitsknoten, bis alle Aufgaben abgeschlossen sind. Dann werden die Arbeitsknoten automatisch deprovisioniert.
Wie unterscheiden sich Flotten von Arbeitsplätzen?
Im Gegensatz zu Batch-Aufträgen, die in erster Linie für kleine bis mittelgroße Aufgaben gedacht sind, sind Flotten für die Ausführung großer, rechenintensiver Aufgaben konzipiert. In der nachstehenden Tabelle finden Sie die spezifischen Unterschiede zwischen Arbeitsplätzen und Flotten.
| Merkmal | Flotten | Jobs |
|---|---|---|
| Isolation | Single-Tenant | Multi-Tenant |
| Größe der Aufgabe | Große Aufgaben | Kleine bis mittelgroße Aufgaben |
| Bereitstellung | Dynamische Warteschlange | Statische Anordnung |
| Konfiguration der Maschine | Volle Kontrolle über das Maschinenprofil | Keine Kontrolle über das Maschinenprofil |
| VPC-Verbindung | Verbindet sich nativ mit einer bestehenden VPC | Erfordert privaten Pfad |
Was sind die wichtigsten Merkmale der Arbeit mit Code Engine Flotten?
Lesen Sie die folgenden Themen, um mehr über die Arbeit mit Flotten in Code Engine zu erfahren.
Automatische Skalierung
Mit einer Flotte können Sie die Vorteile der Großparallelität nutzen, um große, rechenintensive Aufgaben zu erledigen. Code Engine skaliert die Arbeitsknoten in Ihrer Flotte automatisch, um die Ressourcenanforderungen möglichst effizient zu erfüllen. Sie können Code Engine die Profile der bereitgestellten Worker bestimmen lassen oder ein bestimmtes Profil auswählen, z. B. einen GPU-Typ. In jedem Fall skaliert Code Engine automatisch die Anzahl der Mitarbeiter, um die größtmögliche Effizienz zu erreichen.
Die Anzahl der eingesetzten Worker richtet sich nach der Anzahl der zu erledigenden Aufgaben, den für eine Instanz Ihres Codes erforderlichen Ressourcen und der maximalen Anzahl gleichzeitiger Instanzen, die Sie gleichzeitig ausführen möchten. Durch die Anpassung dieser Einstellungen können Sie Ihre Flotte so skalieren, dass sie sowohl 1 als auch mehrere Millionen Aufgaben erledigen kann.
Stellen Sie sich zum Beispiel vor, Sie haben 4 Aufgaben zu erledigen. Für jede Instanz des Codes zur Erfüllung einer Aufgabe wird 1 vCPU and 2 GB memory benötigt, so dass sich ein Gesamtbedarf von 4 vCPU and 8GB memory ergibt. Wenn Sie die maximale Anzahl gleichzeitiger Instanzen auf 2 festlegen, kann Code Engine einen Arbeitsknoten mit 2 vCPU and 4 GB memory bereitstellen, um 2 Instanzen gleichzeitig auszuführen. Wenn Sie die maximale Anzahl
gleichzeitiger Instanzen auf 4 festlegen, kann Code Engine 2 der gleichen Worker-Knoten einsetzen, um alle 4 Instanzen gleichzeitig auf beiden Workern auszuführen. Im zweiten Szenario wird die Flotte schneller fertig, aber es müssen mehr
Arbeitskräfte eingesetzt werden. Denken Sie daran, dass es eine unendliche Anzahl von Kombinationen für die automatische Bereitstellung von Arbeitsknoten gibt und dass Arbeitsknoten mit verschiedenen Profilen bereitgestellt werden können.
Die automatische Skalierung ist für GPUs nicht verfügbar. Um GPUs für eine Flotte bereitzustellen, müssen Sie den Typ des bereitzustellenden GPU-Workers angeben.
Spezifikation von Aufgaben und Instanzen
Bei der Bereitstellung einer Flotte können die Benutzer die Anzahl der zu erledigenden Aufgaben, die Anzahl der gleichzeitig auszuführenden Instanzen und die Reihenfolge, in der die Aufgaben erledigt werden, angeben. Flotten können an vielen Aufgaben parallel arbeiten, indem sie mehrere Instanzen gleichzeitig starten. Alle Instanzen werden mit der gleichen Menge an vCPU und Speicher wie in der Spezifikation der Flotte erstellt. Zusätzlich können Benutzer eine Aufgabenspezifikationsdatei erstellen, um spezifische Befehle und Argumente für jede Aufgabe bereitzustellen oder um benutzerdefinierte Aufgabenindizes zu erstellen.
Aufgabenspeicherung in COS
Sie können einen COS-Bucket verwenden, um die Aufgaben für Ihre Flotte bereitzustellen, indem Sie beim Erstellen der Flotte einen dauerhaften Datenspeicher und einen Bucket-Unterpfad angeben. Jedes Objekt im COS-Eimer steht für eine einzelne Aufgabe.
Isolation
Im Gegensatz zu Batch-Aufträgen bieten Flotten eine mandantenunabhängige Isolierung. Ihre Flottenmitarbeiter werden nicht mit anderen Nutzern geteilt.
Retries
Jede Flotteninstanz läuft bis zum Ende. Im Falle eines Fehlers startet Code Engine die Instanz jedoch neu. Sie können die maximale Anzahl der Wiederholungsversuche begrenzen, um einen Neustart der fehlgeschlagenen Instanzen zu vermeiden.
Status
Eine Flotte befindet sich im Status Running, wenn mindestens ein Arbeitsknoten bereitgestellt wird. Wenn die Flotte nicht mehr läuft, befindet sie sich im Status Succeeded, wenn alle Aufgaben erfolgreich abgeschlossen
wurden, oder Failed, wenn eine oder mehrere Aufgaben fehlgeschlagen sind. Sie können auch eine Flotte stornieren.
Weitere Informationen finden Sie unter Den Status Ihrer Flotte verstehen.
Profil des Arbeitnehmers
Sie können optional das Profil für Ihren Fleet Worker auswählen. Wenn Sie kein Profil angeben, wird Code Engine ein Profil für Sie auswählen.
Code Engine flotten unterstützen die folgenden Profilfamilien:
| Instanzprofil |
|---|
| bx2-2x8 |
| bx2-4x16 |
| bx2-8x32 |
| bx2-16x64 |
| bx2-32x128 |
| bx2-48x192 |
| bx2-64x256 |
| bx2-96x384 |
| bx2-128x512 |
| bx2a-2x8 |
| bx2a-4x16 |
| bx2a-8x32 |
| bx2a-16x64 |
| bx2a-32x128 |
| bx2a-48x192 |
| bx2a-64x256 |
| bx2a-96x384 |
| bx2a-128x512 |
| bx2a-228x912 |
| bx2d-2x8 |
| bx2d-8x32 |
| bx2d-16x64 |
| bx3d-2x10 |
| bx3d-4x20 |
| bx3d-8x40 |
| bx3d-16x80 |
| bx3d-24x120 |
| bx3d-32x160 |
| bx3d-48x240 |
| bx3d-64x320 |
| Instanzprofil |
|---|
| cx2-2x4 |
| cx2-4x8 |
| cx2-8x16 |
| cx2-16x32 |
| cx2-32x64 |
| cx2-48x96 |
| cx2-64x128 |
| cx2-96x192 |
| cx2-128x256 |
| cx3d-2x5 |
| cx3d-4x10 |
| cx3d-8x20 |
| cx3d-16x40 |
| cx3d-24x60 |
| cx3d-32x80 |
| cx3d-48x120 |
| cx3d-64x160 |
| Instanzprofil |
|---|
| mx2-2x16 |
| mx2-4x32 |
| mx2-8x64 |
| mx2-16x128 |
| mx2-32x256 |
| mx2-48x384 |
| mx2-64x512 |
| mx2-96x768 |
| mx2-128x1024 |
| mx2d-16x128 |
| mx2d-64x512 |
| mx2d-96x768 |
| mx3d-2x20 |
| mx3d-4x40 |
| mx3d-8x16 |
| mx3d-16x160 |
| mx3d-24x240 |
| mx3d-32x320 |
| mx3d-48x480 |
| mx3d-64x640 |
| Instanzprofil |
|---|
| gx3-16x80x1l4 |
| gx3-32x160x2l4 |
| gx3-64x320x4l4 |
| gx3-24x120x1l40s |
| gx3-48x240x2l40s |
| gx2-8x64x1v100 |
| gx2-16x128x1v100 |
| gx2-16x128x2v100 |
| gx2-32x256x2v100 |
| gx3d-24x120x1a100p |
| gx3d-48x240x2a100p |
| gx3d-160x1792x8h100 |
| gx3d-160x1792x8h200 |
| gx4d-232x3840x8b300 |
| Instanzprofil |
|---|
| nxf-2x1 |
| nxf-2x2 |
| bxf-2x8 |
| bxf-4x16 |
| bxf-8x32 |
| bxf-16x64 |
| bxf-24x96 |
| bxf-32x128 |
| bxf-48x192 |
| bxf-64x256 |
| cxf-2x4 |
| cxf-4x8 |
| cxf-8x16 |
| cxf-16x32 |
| cxf-24x48 |
| cxf-32x64 |
| cxf-48x96 |
| cxf-64x128 |
| mxf-2x16 |
| mxf-4x32 |
| mxf-8x64 |
| mxf-16x128 |
| mxf-24x192 |
| mxf-32x256 |
| mxf-48x384 |
| mxf-64x512 |
Einige Profile sind möglicherweise nicht in allen VPC-Netzwerkzonen verfügbar. Sie können den folgenden CLI-Befehl verwenden, um die von Code Engine unterstützten Worker-Profile für serverlose Flotten in einer Region aufzulisten.
ibmcloud ce fleet worker profiles
- Wenn Sie die zonale Verfügbarkeit und Kapazität bestimmter Profile wie H100 und L40s wissen möchten, öffnen Sie einen Support-Fall und wählen Sie "Virtual Private Cloud (VPC)" als Thema.
- Wenn Sie ein bestimmtes VPC-Profil benötigen, das derzeit nicht von Flotten unterstützt wird, öffnen Sie einen Support-Fall und wählen Sie als Thema " Code Engine ".
Wie kann ich mit Flotten beginnen?
Um eine einfache Code Engine Flotte mit dem icr.io/codeengine/helloworld Beispiel-Image zu erstellen und auszuführen, siehe Ausführen Ihrer ersten Code Engine Flotte.