Migrieren Sie Ressourcen zu den neuesten Operatoren - Amazon SageMaker AI

Migrieren Sie Ressourcen zu den neuesten Operatoren

Wir stellen die Entwicklung und den technischen Support der Originalversion von SageMaker Operators für Kubernetes ein.

Wenn Sie derzeit eine Version v1.2.2 oder eine niedrigere Version von SageMaker Operators für Kubernetes verwenden, empfehlen wir, Ihre Ressourcen auf den ACK Service Controller für Amazon SageMaker zu migrieren. Der ACK Service Controller ist eine neue Generation von SageMaker Operators for Kubernetes, die auf AWSControllers für Kubernetes (ACK) basieren.

Antworten auf häufig gestellte Fragen zum Ende der Unterstützung der Originalversion von SageMaker Operators for Kubernetes finden Sie unter Ankündigung des Endes der Unterstützung für die Originalversion von SageMaker-AI-Operatoren für Kubernetes

Gehen Sie wie folgt vor, um Ihre Ressourcen zu migrieren, und verwenden Sie ACK, um Machine-Learning-Modell mit Amazon SageMaker AI zu trainieren, zu optimieren und bereitzustellen.

Anmerkung

Die neuesten SageMaker-AI-Operatoren für Kubernetes sind nicht abwärtskompatibel.

Voraussetzungen

Um Ressourcen erfolgreich auf die neuesten SageMaker-AI-Operatoren für Kubernetes zu migrieren, müssen Sie die folgenden Aufgaben ausführen:

  1. Installieren Sie die neuesten SageMaker-AI-Operatoren für Kubernetes. Eine schrittweise Anleitung finden Sie unter Einrichtung in Machine Learning mit dem ACK SageMaker AI Controller.

  2. Wenn Sie Hosten von AutoscalingPolicy-Ressourcen verwenden, installieren Sie die neuen Application Auto Scaling Operators. Eine schrittweise Anleitung finden Sie unter Einrichtung unter Skalieren von SageMaker-AI-Workloads mit Auto Scaling von Anwendungen. Dieser Schritt ist optional, wenn Sie keine HostingAutoScalingPolicy-Ressourcen verwenden.

Wenn die Berechtigungen korrekt konfiguriert sind, kann der ACK SageMaker AI Service Controller die Spezifikation und den Status der Ressource ermitteln und die AWS-Ressource abgleichen, als ob der ACK-Controller sie ursprünglich erstellt hätte.

Ressourcen übernehmen

Die neuen SageMaker-AI-Operatoren für Kubernetes bieten die Möglichkeit, Ressourcen zu übernehmen, die ursprünglich nicht vom ACK Service Controller erstellt wurden. Weitere Informationen finden Sie unter Adoption Existing AWS Resources in der ACK-Dokumentation.

Die folgenden Schritte zeigen, wie die neuen SageMaker-AI-Operatoren für Kubernetes einen vorhandenen SageMaker-AI-Endpunkt übernehmen können. Speichern Sie das folgende Beispiel in einer Datei mit dem Namen adopt-endpoint-sample.yaml.

apiVersion: services.k8s.aws/v1alpha1 kind: AdoptedResource metadata: name: adopt-endpoint-sample spec: aws: # resource to adopt, not created by ACK nameOrID: xgboost-endpoint kubernetes: group: sagemaker.services.k8s.aws kind: Endpoint metadata: # target K8s CR name name: xgboost-endpoint

Reichen Sie die benutzerdefinierte Ressource (CR) ein mit: kubectl apply

kubectl apply -f adopt-endpoint-sample.yaml

Verwenden Sie kubectl describe diese Option, um die Statusbedingungen Ihrer verwendeten Ressource zu überprüfen.

kubectl describe adoptedresource adopt-endpoint-sample

Stellen Sie sicher, dass der ACK.Adopted Zustand True ist. Die Ausgabe sollte ähnlich wie im folgenden Beispiel aussehen:

--- kind: AdoptedResource metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"services.k8s.aws/v1alpha1","kind":"AdoptedResource","metadata":{"annotations":{},"name":"xgboost-endpoint","namespace":"default"},"spec":{"aws":{"nameOrID":"xgboost-endpoint"},"kubernetes":{"group":"sagemaker.services.k8s.aws","kind":"Endpoint","metadata":{"name":"xgboost-endpoint"}}}}' creationTimestamp: '2021-04-27T02:49:14Z' finalizers: - finalizers.services.k8s.aws/AdoptedResource generation: 1 name: adopt-endpoint-sample namespace: default resourceVersion: '12669876' selfLink: "/apis/services.k8s.aws/v1alpha1/namespaces/default/adoptedresources/adopt-endpoint-sample" uid: 35f8fa92-29dd-4040-9d0d-0b07bbd7ca0b spec: aws: nameOrID: xgboost-endpoint kubernetes: group: sagemaker.services.k8s.aws kind: Endpoint metadata: name: xgboost-endpoint status: conditions: - status: 'True' type: ACK.Adopted

Überprüfen Sie, ob Ihre Ressource in Ihrem Cluster vorhanden ist:

kubectl describe endpoints.sagemaker xgboost-endpoint

Hosten von AutoscalingPolicy-Ressourcen

Die HostingAutoscalingPolicy (HAP) -Ressource besteht aus mehreren Application Auto Scaling-Ressourcen: ScalableTarget und ScalingPolicy. Wenn Sie eine HAP-Ressource mit ACK verwenden, installieren Sie zuerst den Application Auto Scaling-Controller. Um HAP-Ressourcen einzusetzen, müssen Sie sowohl ScalableTarget als auch ScalingPolicy Ressourcen einsetzen. Die Ressourcen-ID für diese Ressourcen finden Sie im Status der HostingAutoscalingPolicy Ressource (status.ResourceIDList).

Ressourcen für die Bereitstellung hosten

Die HostingDeployment-Ressource besteht aus mehreren SageMaker-AI-Ressourcen: Endpoint, EndpointConfig und jedes Model. Wenn Sie einen SageMaker-AI-Endpunkt in ACK übernehmen, müssen Sie Endpoint, EndpointConfig und jedes Model separat übernehmen. Die Namen Endpoint, EndpointConfig und Model sind im Status der Ressource HostingDeployment zu finden (status.endpointName, status.endpointConfigName, und status.modelNames).

Eine Liste aller unterstützten SageMaker-AI-Ressourcen finden Sie in der ACK-API-Referenz.

Alte Ressourcen bereinigen

Nachdem die neuen SageMaker-AI-Operatoren für Kubernetes Ihre Ressourcen übernommen haben, können Sie alte Operatoren deinstallieren und alte Ressourcen bereinigen.

Schritt 1: Deinstallieren Sie den alten Operator

Informationen zur Deinstallation des alten Operators finden Sie unter Operatoren löschen.

Warnung

Deinstallieren Sie den alten Operator, bevor Sie alte Ressourcen löschen.

Schritt 2: Entfernen Sie die Finalizer und löschen Sie alte Ressourcen

Warnung

Stellen Sie vor dem Löschen alter Ressourcen sicher, dass Sie den alten Operator deinstalliert haben.

Nach der Deinstallation des alten Operators müssen Sie die Finalizer explizit entfernen, um alte Operatorressourcen zu löschen. Das folgende Beispielskript zeigt, wie Sie alle Trainingsauftrags löschen, die vom alten Operator in einem bestimmten Namespace verwaltet wurden. Sie können ein ähnliches Muster verwenden, um zusätzliche Ressourcen zu löschen, sobald sie vom neuen Operator übernommen wurden.

Anmerkung

Sie müssen die vollständigen Ressourcennamen verwenden, um Ressourcen abzurufen. Verwenden Sie z. B. kubectl get trainingjobs.sagemaker.aws.amazon.com statt kubectl get trainingjob.

namespace=sagemaker_namespace training_jobs=$(kubectl get trainingjobs.sagemaker.aws.amazon.com -n $namespace -ojson | jq -r '.items | .[] | .metadata.name') for job in $training_jobs do echo "Deleting $job resource in $namespace namespace" kubectl patch trainingjobs.sagemaker.aws.amazon.com $job -n $namespace -p '{"metadata":{"finalizers":null}}' --type=merge kubectl delete trainingjobs.sagemaker.aws.amazon.com $job -n $namespace done

Verwenden der neuen SageMaker-AI-Operatoren für Kubernetes

Ausführliche Anleitungen zur Verwendung der neuen SageMaker-AI-Operatoren für Kubernetes finden Sie unter Verwenden von SageMaker-AI-Operatoren für Kubernetes