翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
リソースを最新のオペレータに移行する
元のバージョンの SageMaker Operators for Kubernetes
Kubernetes 用の SageMaker Operators v1.2.2
以下を現在使用している場合は、ACKAmazon 用のサービスコントローラー SageMaker
SageMaker Operators for Kubernetes のオリジナルバージョンのサポート終了に関するよくある質問への回答については、「」を参照してください。 元のバージョンの SageMaker Operators for Kubernetes のサポート終了のお知らせ
以下のステップを使用してリソースを移行し、 ACKを使用して Amazon で機械学習モデルのトレーニング、調整、デプロイを行います SageMaker。
注記
最新の SageMaker Operators for Kubernetes は下位互換性がありません。
前提条件
リソースを最新の SageMaker Operators for Kubernetes に正常に移行するには、以下を実行する必要があります。
-
最新の SageMaker Operators for Kubernetes をインストールします。手順については step-by-step、「 ACK SageMakerコントローラーを使用したMachine Learningのセットアップ
」を参照してください。 -
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 コントローラーScalableTarget
と ScalingPolicy
リソースの両方を採用する必要があります。これらのリソースのリソース識別子は、HostingAutoscalingPolicy
リソースのステータス (status.ResourceIDList
) で確認できます。
HostingDeployment リソース
HostingDeployment
リソースは、Endpoint
、、EndpointConfig
および各 の複数の SageMaker リソースで構成されますModel
。で SageMaker エンドポイントを採用する場合はACK、Endpoint
、EndpointConfig
、およびそれぞれをModel
個別に採用する必要があります。Endpoint
、EndpointConfig
、Model
の名前は、HostingDeployment
リソースのステータス (status.endpointName
、status.endpointConfigName
、status.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 を使用する