翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker AI Operators for Kubernetes
SageMaker AI Operators for Kubernetes を使用すると、開発者やデータサイエンティストが Kubernetes を使用して SageMaker AI で機械学習 (ML) モデルを簡単にトレーニング、調整、デプロイできます。これらの SageMaker AI Operators を Amazon Elastic Kubernetes Service (Amazon EKS) の Kubernetes クラスターにインストールして、Kubernetes API と などのコマンドライン Kubernetes ツールを使用して SageMaker AI ジョブをネイティブに作成できますkubectl
。このガイドでは、 演算子を設定して使用し、Kubernetes クラスターから SageMaker AI でモデルトレーニング、ハイパーパラメータ調整、または推論 (リアルタイムおよびバッチ) を実行する方法を示します。この章で取り上げる手順とガイドラインは、ユーザーが Kubernetes とその基本的なコマンドに精通していることを前提としています。
重要
SageMaker Operators for Kubernetes
現在 SageMaker Operators for Kubernetesv1.2.2
以下を使用している場合は、リソースを Amazon SageMaker 用 ACK サービスコントローラー
移行ステップについては、「リソースを最新のオペレータに移行する」を参照してください。
元のバージョンの SageMaker Operators for Kubernetes のサポート終了に関するよくある質問への回答については、「元のバージョンの SageMaker AI Operators for Kubernetes のサポート終了を発表」を参照してください。
注記
これらのオペレーターの使用に Amazon SageMaker Studio を使用してモデルバージョンを比較します。追加料金はかかりません。これらの演算子を使用して使用する SageMaker AI リソースには料金が発生します。
オペレーターとは
Kubernetes オペレータは、Kubernetes ユーザに代わってアプリケーションを管理するアプリケーションコントローラーです。コントロールプレーンのコントローラーには、中央ステートマネージャー (ETCD) をリッスンして、制御するアプリケーションの状態を管理するさまざまな制御ループが含まれます。このようなアプリケーションの例には、Cloud-controller-managerkube-controller-manager
があります。オペレーターは通常、未加工の Kubernetes API よりも上位レベルの抽象化を提供するため、ユーザーはアプリケーションをデプロイして管理しやすくなります。Kubernetes に新しい機能を追加するには、デベロッパーがアプリケーション固有またはドメイン固有のロジックとコンポーネントを含むカスタムリソースを作成して Kubernetes API を拡張します。Kubernetes のオペレーターを使用すると、ユーザーはこれらのカスタムリソースをネイティブに呼び出して、関連するワークフローを自動化できます。
AWS Controllers for Kubernetes (ACK) の仕組み
SageMaker AI Operators for Kubernetes を使用すると、Kubernetes クラスターから SageMaker AI のジョブを管理できます。SageMaker AI Operators for Kubernetes の最新バージョンは AWS 、 Controllers for Kubernetes (ACK) に基づいています。ACK には、一般的なコントローラーランタイム、コードジェネレーター、および一連の AWS サービス固有のコントローラーが含まれており、そのうちの 1 つは SageMaker AI コントローラーです。
次の図は、ACK の仕組みを示しています。

この図では、Kubernetes ユーザーは、Kubernetes API を使用して Kubernetes クラスター内から SageMaker AI でモデルトレーニングを実行したいと考えています。ユーザーは kubectl
apply
への呼び出しを発行し、SageMaker トレーニングジョブを説明する Kubernetes カスタムリソースを記述するファイルを渡します。kubectl apply
は、マニフェストと呼ばれるこのファイルを、Kubernetes コントローラーノードで実行されている Kubernetes API サーバーに渡します (ワークフロー図のステップ 1)。Kubernetes API サーバーは、SageMaker トレーニングジョブの仕様が記載されたマニフェストを受け取り、ユーザーが sageMaker.services.k8s.aws/TrainingJob
の種類のカスタムリソースを作成するアクセス許可を持っているかどうか、またカスタムリソースが適切にフォーマットされているかどうかを判断します (ステップ 2)。ユーザーが承認され、カスタムリソースが有効な場合、Kubernetes API サーバーはカスタムリソースを etcd データストアに書き込み (ステップ 3)、カスタムリソースが作成されたことをユーザーに応答します (ステップ 4)。通常の Kubernetes ポッドのコンテキスト内で Kubernetes ワーカーノードで実行されている SageMaker AI コントローラーには、新しいカスタムリソース sageMaker.services.k8s.aws/TrainingJob
が作成されたことが通知されます (ステップ 5)。次に、SageMaker AI コントローラーは (ステップ 6) を SageMaker API と通信し、SageMaker AI CreateTrainingJob
API を呼び出してトレーニングジョブを作成します AWS。SageMaker API と通信した後、SageMaker AI コントローラーは Kubernetes API サーバーを呼び出して、SageMaker AI から受け取った情報でカスタムリソースのステータスを更新 (ステップ 7) します。したがって、SageMaker AI コントローラーは、開発者が AWS SDK を使用して受け取ったのと同じ情報を開発者に提供します。
アクセス許可の概要
オペレーターはユーザーに代わって SageMaker AI リソースにアクセスします。オペレーターが AWS リソースとやり取りするために引き受ける IAM ロールは、Kubernetes クラスターへのアクセスに使用する認証情報とは異なります。このロールは、機械学習ジョブの実行時に が AWS 引き受けるロールとも異なります。
以下の画像は、さまざまな認証レイヤーについて説明しています。
