SageMaker AI Operators for Kubernetes - Amazon SageMaker AI

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

SageMaker AI Operators for Kubernetes

SageMaker AI Operators for Kubernetes 可讓使用 Kubernetes 的開發人員和資料科學家更輕鬆地在 SageMaker AI 中訓練、調整和部署機器學習 (ML) 模型。您可以在 Amazon Elastic Kubernetes Service (Amazon EKS) 的 Kubernetes 叢集上安裝這些 SageMaker AI Operators,以使用 Kubernetes API 和命令列 Kubernetes 工具 (例如 kubectl) 原生建立 SageMaker AI 任務。本指南展示如何設定和使用運算子,以透過 Kubernetes 叢集在 SageMaker AI 上執行模型訓練、超參數調整或推論 (即時和批次)。本章中的程序和準則假設您熟悉 Kubernetes 及其基本命令。

重要

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

如果您目前使用的是 SageMaker Operators for Kubernetesv1.2.2 或以下版本,我們建議您將資源遷移到 Amazon SageMaker 的 ACK 服務控制器。ACK 服務控制器是新一代的 SageMaker Operators for Kubernetes,以 AWS Controllers for Kubernetes (ACK) 為基礎。

如需與移轉步驟相關的資訊,請參閱將資源遷移到最新的運算子

如需與終止支援 SageMaker Operators for Kubernetes 原始版本相關的常見問題的答案,請參閱宣布終止支援 SageMaker AI Operators for Kubernetes 原始版本

注意

使用這些運算子無須額外收費。透過這些運算子使用的任何 SageMaker AI 資源都會產生費用。

什麼是運算子?

Kubernetes 運算子是一種應用程式控制器,代表 Kubernetes 使用者管理應用程式。控制平面的控制器包括各種控制迴圈,這些迴圈監聽中央狀態管理器 (ETCD) 的指令來調節它們控制的應用程式的狀態。這類應用程式的範例包含 Cloud-controller-managerkube-controller-manager。運算子通常提供比原始 Kubernetes API 更高層級的抽象,方便使用者更輕鬆地部署和管理應用程式。若要將新功能新增至 Kubernetes,開發人員可以建立包含其應用程式特定或網域特定邏輯和元件的自訂資源來擴充 Kubernetes API。Kubernetes 中的運算子可讓使用者以原生方式調用這些自訂資源,並自動執行相關聯的工作流程。

Kubernetes (ACK) 的 AWS 控制器如何運作?

SageMaker AI Operators for Kubernetes 讓您可以透過 Kubernetes 叢集管理 SageMaker AI 中的任務。SageMaker AI Operators for Kubernetes 的最新版本是以 AWS Controllers for Kubernetes (ACK) 為基礎。ACK 包含常見的控制器執行時間、程式碼產生器,以及一組 AWS 服務特定的控制器,其中一個是 SageMaker AI 控制器。

下圖說明 ACK 的工作原理。

解釋 ACK 型 SageMaker AI Operator for Kubernetes。

在此圖中,Kubernetes 使用者想要使用 Kubernetes API,透過 Kubernetes 叢集在 SageMaker AI 上執行模型訓練。使用者呼叫 kubectl apply,並傳入用於描述 SageMaker 訓練工作之 Kubernetes 自訂資源的一個檔案。kubectl apply 將此檔案 (稱為資訊清單) 傳遞至 Kubernetes 控制器節點 (工作流程圖表中的第 1 步) 中執行的 Kubernetes API 伺服器。Kubernetes API 伺服器會接收具有 SageMaker 訓練工作規格的資訊清單,並決定使用者是否具有建立 sageMaker.services.k8s.aws/TrainingJob 類型自訂資源的許可,以及自訂資源是否已正確格式化 (第 2 步)。如果使用者獲得授權且自訂資源有效,Kubernetes API 伺服器會將自訂資源寫入 (第 3 步) 至其 etcd 資料存放區,然後回應 (第 4 步) 建立自訂資源的使用者。SageMaker AI 控制器 (在一般 Kubernetes Pod 上下文中的 Kubernetes 工作節點上執行) 會收到通知 (步驟 5),告知已建立 sageMaker.services.k8s.aws/TrainingJob 類型的新自訂資源。接著,SageMaker AI 控制器會與 SageMaker API 進行通訊 (第 6 步),呼叫 SageMaker AI CreateTrainingJob API 以在 AWS中建立訓練任務。與 SageMaker API 通訊後,SageMaker AI 控制器會呼叫 Kubernetes API 伺服器,以使用從 SageMaker 接收到的資訊更新 (步驟 7) 自訂資源的狀態。因此,SageMaker AI 控制器會提供與使用 AWS SDK 收到的開發人員相同的資訊。

權限概觀

運算子代表您存取 SageMaker AI 資源。運算子擔任與 AWS 資源互動的 IAM 角色與您用來存取 Kubernetes 叢集的登入資料不同。該角色也與執行機器學習任務時所 AWS 擔任的角色不同。

下列影像說明了各種驗證層。

SageMaker AI Operator for Kubernetes 的各種驗證層。