Amazon EKS 上增強型叢集操作的持續佈建 - Amazon SageMaker AI

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

Amazon EKS 上增強型叢集操作的持續佈建

使用 Amazon EKS 協同運作建立的 Amazon SageMaker HyperPod 叢集現在支援持續佈建,這項新功能可提高執行大規模 AI/ML 工作負載的彈性和效率。持續佈建可讓您快速開始訓練、無縫擴展、在不中斷操作的情況下執行維護,以及精細了解叢集操作。

注意

連續佈建適用於使用 EKS 協同運作建立的 HyperPod 叢集。使用 Slurm 協同運作建立的叢集會使用不同的擴展模型。

運作方式

持續佈建透過事件驅動型架構運作,可獨立管理每個執行個體。當您建立 HyperPod 叢集時,您可以為每個執行個體群組指定所需的執行個體數量。連續佈建系統:

  • 接受請求:記錄每個執行個體群組的目標執行個體計數

  • 啟動佈建:開始啟動執行個體以符合目標計數

    追蹤進度:監控每個執行個體啟動嘗試並記錄狀態

  • 處理失敗:自動重試失敗的啟動

連續佈建預設為停用。若要使用此功能,請將 --node-provisioning-mode設定為 Continuous

啟用持續佈建後,您可以同時啟動多個擴展操作,而無需等待先前的操作完成。這可讓您同時擴展相同叢集中的不同執行個體群組,並將多個擴展請求提交至相同的執行個體群組。

持續佈建也可讓您存取 DescribeClusterEventListClusterEvent,以取得詳細的事件監控和操作可見性。

用量計量

具有持續佈建的 HyperPod 叢集會使用執行個體層級計量,提供反映實際資源用量的準確計費。這種計量方法與傳統的叢集層級計費不同,方法是獨立追蹤每個執行個體。

執行個體層級計費

透過持續佈建,帳單會在個別執行個體層級開始和停止,而不是等待叢集層級狀態變更。此方法提供下列優點:

  • 精確的帳單準確性:帳單會在生命週期指令碼執行開始時開始。如果生命週期指令碼失敗,將會重試執行個體佈建,並在生命週期指令碼執行時間期間向您收取費用。

  • 獨立計量:個別管理每個執行個體的計費生命週期,防止串聯計費錯誤

  • 即時計費更新:計費會在執行個體開始執行其生命週期指令碼時開始,並在執行個體進入終止狀態時停止

帳單生命週期

HyperPod 叢集中的每個執行個體都遵循此計費生命週期:

  • 帳單開始:當執行個體成功啟動並開始執行其生命週期組態指令碼時

  • 計費繼續:執行個體的整個操作生命週期

  • 計費停止:當執行個體進入終止狀態時,無論終止原因為何

注意

無法啟動的執行個體不會開始計費。如果執行個體啟動因容量不足或其他問題而失敗,則不會向您收取該失敗嘗試的費用。帳單是以執行個體層級計算,成本會以叢集的 Amazon Resource Name (ARN) 彙總和報告。

建立已啟用持續佈建的叢集

注意

您必須使用 VPC 聯網設定現有的 Amazon EKS 叢集,並安裝必要的 Helm Chart。此外,準備生命週期組態指令碼,並將其上傳至執行角色可存取的 Amazon S3 儲存貯體。

下列 AWS CLI 操作會建立啟用一個執行個體群組和連續佈建的 HyperPod 叢集。

aws sagemaker-dev create-cluster \ --cluster-name $HP_CLUSTER_NAME \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' \ --instance-groups '{ "InstanceGroupName": "ig-1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "TrainingPlanArn": "" }' \ --node-provisioning-mode Continuous // Expected Output: { "ClusterArn": "arn:aws:sagemaker:us-west-2:<account-id>:cluster/<cluster-id>" }

建立叢集之後,您可以使用 ListClusterNodesDescribeClusterNode 來進一步了解叢集中的節點。

呼叫這些操作將傳回具有下列其中一個值的 ClusterInstanceStatusDetails 物件:

  • 執行中:節點運作狀態良好,並已向叢集協調器 (EKS) 註冊。

  • 失敗:節點佈建失敗,但系統會使用新的 EC2 執行個體自動重試佈建。

  • 定:正在佈建或重新啟動節點。

  • ShuttingDown:節點終止正在進行中。如果終止遇到問題,節點將轉換為失敗狀態,或者成功從叢集中移除。

  • SystemUpdating:節點正在進行 AMI 修補,無論是手動觸發或作為修補 cronjob 的一部分。

  • DeepHealthCheckInProgress:正在執行深層運作狀態檢查 DHCs)。根據測試的性質,這可能需要幾分鐘到幾個小時。取代錯誤的節點,運作狀態良好的節點會切換到執行中。

  • NotFound :用於 BatchAddClusterNodes 回應,表示節點已在等冪重播期間刪除。