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

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

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

SageMaker Operators for Kubernetes のオリジナルバージョンの開発とテクニカルサポートを中止します。

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

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

次の手順に従ってリソースを移行し、ACK を使用して Amazon SageMaker AI で機械学習モデルをトレーニング、チューニング、デプロイします。

注記

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

前提条件

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

  1. 最新の SageMaker AI Operators for Kubernetes をインストールします。ステップバイステップの手順については、「ACK SageMaker AI Controller を使用した機械学習」の「設定」を参照してください。

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

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

リソースの採用

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

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

HostingDeployment リソース

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

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

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

最新の 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 AI Operators for Kubernetes を使用する

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