リソースを最新のオペレータに移行する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

リソースを最新のオペレータに移行する

元のバージョンの SageMaker Operators for Kubernetes の開発とテクニカルサポートは停止しています。

Kubernetes 用の SageMaker Operators のバージョン v1.2.2以下を現在使用している場合は、ACKAmazon 用のサービスコントローラー SageMakerにリソースを移行することをお勧めします。ACK サービスコントローラーは、 Controllers for Kubernetes () に基づく新世代の SageMaker Operators for Kubernetes です。 AWS ACK

SageMaker Operators for Kubernetes のオリジナルバージョンのサポート終了に関するよくある質問への回答については、「」を参照してください。 元のバージョンの SageMaker Operators for Kubernetes のサポート終了のお知らせ

以下のステップを使用してリソースを移行し、 ACKを使用して Amazon で機械学習モデルのトレーニング、調整、デプロイを行います SageMaker。

注記

最新の SageMaker Operators for Kubernetes は下位互換性がありません。

前提条件

リソースを最新の SageMaker Operators for Kubernetes に正常に移行するには、以下を実行する必要があります。

  1. 最新の SageMaker Operators for Kubernetes をインストールします。手順については step-by-step、「 ACK SageMakerコントローラーを使用したMachine Learningのセットアップ」を参照してください。

  2. HostingAutoscalingPolicy リソース を使用している場合は、新しい Application Auto Scaling Operator をインストールします。手順については、「Application Auto Scaling を使用した SageMaker ワークロードのスケールの設定」を参照してください step-by-step。 HostingAutoScalingPolicy リソースを使用していない場合、このステップはオプションです。

アクセス許可が正しく設定されている場合、ACK SageMaker サービスコントローラーは AWS リソースの仕様とステータスを判断し、ACKコントローラーが最初に作成したかのようにリソースを照合できます。

リソースの採用

新しい SageMaker Operators for Kubernetes では、ACKサービスコントローラーによって最初に作成されなかったリソースを採用できます。詳細については、 ACKドキュメントの「既存の AWS リソースの採用」を参照してください。

次の手順は、新しい SageMaker Operators for Kubernetes が既存の 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 リソース ScalableTargetと で構成されますScalingPolicy。でHAPリソースを採用する場合はACK、まず Application Auto Scaling コントローラー をインストールします。HAP リソースを採用するには、 リソースScalableTargetScalingPolicyリソースの両方を採用する必要があります。これらのリソースのリソース識別子は、HostingAutoscalingPolicy リソースのステータス (status.ResourceIDList) で確認できます。

HostingDeployment リソース

HostingDeployment リソースは、Endpoint、、EndpointConfigおよび各 の複数の SageMaker リソースで構成されますModel。で SageMaker エンドポイントを採用する場合はACK、EndpointEndpointConfig、およびそれぞれをModel個別に採用する必要があります。EndpointEndpointConfigModel の名前は、HostingDeployment リソースのステータス (status.endpointNamestatus.endpointConfigNamestatus.modelNames) にあります。

サポートされているすべての SageMaker リソースのリストについては、 ACKAPIリファレンス を参照してください。

古いリソースをクリーンアップする

新しい SageMaker Operators for Kubernetes がリソースを採用したら、古いオペレーターをアンインストールし、古いリソースをクリーンアップできます。

ステップ 1: 古いオペレーターをアンインストールする

古いオペレータをアンインストールするには、「オペレーターを削除する」を参照してください。

警告

古いリソースを削除する前に、古いオペレーターをアンインストールします。

ステップ 2: ファイナライザーを取り除いて古いリソースを削除する

警告

古いリソースを削除する前に、必ず古いオペレーターをアンインストールします。

古いオペレータをアンインストールしたら、ファイナライザーを明示的に削除して古いオペレータリソースを削除する必要があります。次のサンプルスクリプトは、特定の名前空間で古いオペレーターが管理していたトレーニングジョブをすべて削除する方法を示しています。追加のリソースが新しいオペレーターに採用された後、同様のパターンを使用して削除できます。

注記

リソースを取得するには、フルリソース名を使用する必要があります。例えば、kubectl get trainingjob ではなく kubectl get trainingjobs.sagemaker.aws.amazon.com を使用します。

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

新しい SageMaker Operators for Kubernetes を使用する

新しい SageMaker Operators for Kubernetes の使用に関する詳細なガイドについては、「」を参照してください。 SageMaker Operators for Kubernetes を使用する