Bring Your Own Container (BYOC) für Pipelines
Neben der Definition von Pipelineschritten auf Basis von Jobs und Skripten können Sie benutzerdefinierte Containerimages verwenden, um die Schrittlaufzeit zu definieren.
Sie können das Containerimage, den Befehl oder den Einstiegspunkt für die Containerausführung auswählen. Sie können den benutzerdefinierten Code in einem Skript oder einem komprimierten Archiv angeben, mit dem Sie den Code aktualisieren können, ohne das Image neu zu erstellen.
BYOC-Schrittkonfiguration
Modellartefakt
Das Hochladen eines Schrittartefakts bei Verwendung von BYOC ist optional. Sie können jedoch den Code ändern, der im Container ausgeführt wird, ohne das Image neu zu erstellen.
Die Schrittartefakte werden im Container im Ordner /home/datascience/
gemountet. Wenn ein Artefakt ein Archiv ist, wird sein Inhalt in den Ordner /home/datascience/decompressed_artifact
extrahiert.
- Allgemeines Docker-Bild
- Es ist praktisch, ein generisches Containerimage mit der erforderlichen Umgebung zu erstellen (z.B. Python 3.8 und Basisbibliotheken, wie im Schnellstart gezeigt), und Python-Skripte später als Schrittartefakte hinzuzufügen.
- Benutzerdefinierte Artefakte - Ordnerüberschreibung
- Wenn Sie ein benutzerdefiniertes Schrittartefakt verwenden, hängt der Service ein Volume mit dem Artefakt in den Ordner
/home/datascience
ein und überschreibt den Ordner in Ihrem Containerimage. Archivartefakte (zip/tar/...
) werden dekomprimiert, und der Inhalt wird im Ordner/home/datascience/decompressed_artifact
angezeigt.
Containerpipeline erstellen - Schnellstart
So erstellen Sie einen Container-Pipeline-Schritt:
Container erstellen
Container testen
Bevor Sie das Image in eine Container-Registry übertragen, können Sie es lokal testen.
Container an OCIR übergeben
Befolgen Sie die Schritte in der Container Registry-Dokumentation, um ein Authentifizierungstoken zu generieren, um sich bei OCIR anzumelden.
Pipeline erstellen
Im Abschnitt Pipeline-Policys können Sie sicherstellen, dass Sie über Policys verfügen, mit denen die Pipeline Containerimages aus der Container-Registry abrufen kann.
- Erstellen Sie eine Pipeline mit einem entsprechenden Namen, z.B.
BYOC Demo name
. - Wählen Sie Pipelineschritte hinzufügen aus.
- Benennen Sie den Schritt, z.B.
Step 1
. - Um "Eigenen Container verwenden" zu verwenden, wählen Sie Aus Container aus.
- Wählen Sie unter Containerkonfiguration die Option Konfigurieren aus.
- Gehen Sie unter Containerumgebung konfigurieren wie folgt vor:
- Wählen Sie den Repository-Schnellstart oder das Byoc aus der Liste aus. Wenn sich das Repository in einem anderen Compartment befindet, wählen Sie Compartment ändern aus.
- Wählen Sie das Bild
iad.ocir.io/idtlxnfdweil/quickstart/byoc:1.0.0
aus der Liste aus. - Wählen Sie Auswählen aus.
- Klicken Sie auf Speichern.
- Optional: Logging definieren.
- Wählen Sie Erstellen.
Pipelinelogs aktivieren
- Wählen Sie aus der Liste der Pipelines die Pipeline aus, die Sie aktivieren möchten.
- Wählen Sie auf der Seite mit den Pipelinedetails die Option Logs aus.
- Wählen Sie Logs aktivieren.
Unterstützte Konfigurationen
Wichtige Informationen zu unterstützten Konfigurationen.
- ML-Pipelines unterstützen nur Containerimages, die sich in der OCI-Registry befinden.
- Die Größe des Containerimages ist in unkomprimierter Form auf 40 GB begrenzt.
- Der Benutzer, der die ML-Pipelineressource erstellt, muss Zugriff auf das Containerimage in der OCI-Registry haben. Falls nicht, erstellen Sie eine IAM-Policy für den Benutzerzugriff, bevor Sie die ML-Pipelineressource erstellen.
Container-Images auf Apple Silicon M1 Mac
Weitere Informationen finden Sie unter Docker-Image auf Apple an M1 MacBook.
Imagedigests
Images in einer Container-Registry werden durch Repository, Name und Tag identifiziert. Außerdem gibt Docker jeder Version eines Images einen eindeutigen alphanumerischen Digest. Beim Push eines aktualisierten Containerimages wird empfohlen, dem aktualisierten Image ein neues Tag zur Identifizierung zu geben, anstatt ein vorhandenes Tag als Best Practice wiederzuverwenden. Selbst wenn Sie ein aktualisiertes Image übertragen und diesem den Namen und das Tag einer früheren Version geben, hat die neu übertragene Version einen anderen Digest als die frühere Version.
Wenn Sie eine Pipelineressource erstellen, geben Sie den Namen und das Tag einer bestimmten Version eines Images an. Um später Inkonsistenzen zu vermeiden, zeichnen Pipelines auch den eindeutigen Digest dieser bestimmten Version des Images auf. Sie können auch den Digest des Images beim Erstellen der Pipelineressource angeben.
Wenn Sie eine aktualisierte Version eines Images mit demselben Namen und Tag wie die ursprüngliche Version des Images in die Docker-Registry übertragen, verwenden Pipelines standardmäßig weiterhin den ursprünglichen Digest, um die ursprüngliche Version des Images abzurufen. Dies könnte das gewünschte Verhalten sein. Wenn Sie jedoch möchten, dass Pipelines die spätere Version des Images abrufen, können Sie den Imagenamen mit dem Tag explizit ändern und verdauen, mit dem Pipelines die abzurufende Version des Images identifizieren.