將資源遷移到最新的運算子 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將資源遷移到最新的運算子

我們正在停止 Kubernetes 的 SageMaker Operators 原始版本的開發和技術支援。

如果您目前正在使用 版本 v1.2.2或以下的 SageMaker Operators for Kubernetes,建議您將資源遷移至 ACK Amazon 的服務控制器 SageMaker。ACK 服務控制器是新一代的 Kubernetes 專用 SageMaker 運算子,以 Kubernetes AWS 專用控制器 (ACK) 為基礎。

如需 Kubernetes 原始版本 SageMaker Operators 支援結束時常見問題的解答,請參閱 宣佈 Kubernetes 運算子原始版本 SageMaker支援結束

使用下列步驟遷移您的資源,並使用 ACK來訓練、調整和部署使用 Amazon 的機器學習模型 SageMaker。

注意

Kubernetes 的最新 SageMaker 運算子不向後相容。

必要條件

若要成功將資源遷移至 Kubernetes 的最新 SageMaker 運算子,您必須執行下列動作:

  1. 安裝適用於 Kubernetes 的最新 SageMaker 運算子。如需指示,請參閱使用 ACK SageMaker 控制器在Machine Learning設定 。 step-by-step

  2. 如果您正在使用 HostingAutoscalingPolicy 資源,請安裝新的應用程式自動擴展運算子。如需指示, step-by-step請參閱使用 Application Auto Scaling 在擴展 SageMaker 工作負載中的設定。如果您不使用 HostingAutoScalingPolicy 資源,此步驟是選用的。

如果已正確設定許可,則ACK SageMaker 服務控制器可以判斷 AWS 資源的規格和狀態,並協調資源,就像ACK控制器最初建立一樣。

採用資源

適用於 Kubernetes 的新 SageMaker 運算子能夠採用原本不是由ACK服務控制器建立的資源。如需詳細資訊,請參閱 ACK 文件中的採用現有 AWS 資源

下列步驟顯示 Kubernetes 的新 SageMaker 運算子如何採用現有 SageMaker 端點。將下列範例儲存為名為 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

使用 kubectl apply 提交自訂資源 (CR):

kubectl apply -f adopt-endpoint-sample.yaml

使用 kubectl describe 檢查所採用資源的狀態條件。

kubectl describe adoptedresource adopt-endpoint-sample

確認 ACK.Adopted 條件為 True。輸出應類似以下範例:

--- 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

檢查您的資源是否存在於叢集中:

kubectl describe endpoints.sagemaker xgboost-endpoint

HostingAutoscalingPolicy 資源

HostingAutoscalingPolicy (HAP) 資源包含多個 Application Auto Scaling 資源: ScalableTargetScalingPolicy。使用 採用HAP資源時ACK,請先安裝 Application Auto Scaling 控制器 。若要採用 HAP 資源,您需要同時採用 ScalableTargetScalingPolicy 資源。您可以在 HostingAutoscalingPolicy 資源 (status.ResourceIDList) 的狀態中找到這些資源的資源識別碼。

HostingDeployment 資源

HostingDeployment 資源由多個 SageMaker 資源組成:EndpointEndpointConfig和每個 Model。如果您在 中採用 SageMaker 端點ACK,則需要Model分別採用 EndpointEndpointConfig和 。您可以在 HostingDeployment 資源 (status.endpointNamestatus.endpointConfigNamestatus.modelNames) 的狀態中找到 EndpointEndpointConfigModel 名稱。

如需所有支援 SageMaker 資源的清單,請參閱ACKAPI參考

清除舊資源

在新的 SageMaker Operators for Kubernetes 採用您的資源之後,您可以解除安裝舊的運算子並清除舊的資源。

第 1 步:解除安裝舊運算子

若要解除安裝舊運算子,請參閱刪除運算子

警告

刪除任何舊資源之前,請先解除安裝舊運算子。

第 2 步:移除終結器並刪除舊資源

警告

刪除舊資源之前,請確定您已解除安裝舊運算子。

解除安裝舊操作符後,您必須明確移除終結器以刪除舊運算子資源。下列範例指令碼展示如何刪除指定命名空間中由舊運算子所管理的所有訓練工作。當新運算子採用其他資源時,您可以使用類似的模式來刪除其他資源。

注意

您必須使用完整的資源名稱才能取得資源。例如,使用 kubectl get trainingjobs.sagemaker.aws.amazon.com 代替 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

使用適用於 Kubernetes 的新 SageMaker 運算子

如需使用 Kubernetes 新 SageMaker Operators 的深入指南,請參閱 使用 Kubernetes 的 SageMaker 運算子