協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
機器學習 (ML) 的容量區塊可讓您指定未來日期保留 GPU 執行個體,以支援短期 ML 工作負載。如需詳細資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的 ML 容量區塊。
考量事項
重要
-
容量區塊僅適用於特定 Amazon EC2 執行個體類型和 AWS 區域。如需相容性資訊,請參閱《Amazon EC2 Linux 執行個體使用者指南》中的使用容量區塊先決條件。
-
如需詳細資訊,請參閱「Amazon EC2 Auto Scaling 使用者指南」的使用容量區塊處理機器學習工作負載。
-
具有容量區塊的受管節點群組只能使用自訂啟動範本建立。
-
使用容量區塊升級受管節點群組時,請確定所需的節點群組大小設定為
0
。
使用 Amazon EC2 容量區塊建立受管節點群組
您可以使用容量區塊搭配 Amazon EKS 受管節點群組,來佈建和擴展 GPU 加速的工作者節點。以下 AWS CloudFormation 範本範例並未涵蓋生產叢集中所需的每個層面。一般而言,您也需要引導指令碼將節點加入叢集,並指定 Amazon EKS 加速 AMI。如需詳細資訊,請參閱為您的叢集建立受管節點群組。
-
建立適合您工作負載的啟動範本,並使用 Amazon EKS 受管節點群組。如需詳細資訊,請參閱使用啟動範本自訂受管節點。
除了上述程序中的要求之外,請確定
LaunchTemplateData
包含下列項目:-
InstanceMarketOptions
並將MarketType
設為"capacity-block"
-
CapacityReservationSpecification: CapacityReservationTarget
將CapacityReservationId
設定為容量區塊cr-
(例如:)02168da1478b509e0
-
InstanceType
設定為支援容量區塊的執行個體類型 (例如:p5.48xlarge
)以下是 CloudFormation 範本的摘錄,該範本會建立以容量區塊為目標的啟動範本。若要建立自訂 AMI 受管節點群組,您也可以新增
ImageId
和UserData
參數。NodeLaunchTemplate: Type: "AWS::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" InstanceType: p5.48xlarge
-
-
使用啟動範本來建立受管節點群組。
以下是容量區塊的建立節點群組命令範例。將
example-value
取代為您的叢集適用的範例值。建立容量區塊受管節點群組時,請執行下列動作:
-
將
capacity-type
設定為"CAPACITY_BLOCK"
。如果容量類型未設定為 ,"CAPACITY_BLOCK"
或缺少上述任何其他必要的啟動範本值,則建立請求將被拒絕。 -
在建立請求
subnets
中指定 時,請務必只在與容量保留相同的可用區域中指定子網路。 -
如果您在建立請求
desiredSize
中指定非零,Amazon EKS 將在建立 Auto Scaling 群組 (ASG) 時遵守該規則。不過,如果在容量保留作用中之前提出建立請求,則 ASG 將無法啟動 Amazon EC2 執行個體,直到它變成作用中為止。因此,ASG 擴展活動會有啟動錯誤。每當保留變成作用中時,執行個體的啟動就會成功,而 ASG 會在建立時擴展至desiredSize
上述。aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-mng \ --node-role node-role-arn \ --region region-code \ --subnets subnet-id \ --scaling-config minSize=node-group-min-size,maxSize=node-group-max-size,desiredSize=node-group-desired-size \ --ami-type "AL2023_x86_64_NVIDIA" \ --capacity-type "CAPACITY_BLOCK" \ --launch-template id="lt-id",version=1
-
-
請確定節點在擴展後聯結。使用具有容量區塊的受管節點群組的 Amazon EKS 叢集不會執行執行個體啟動的實際加入和註冊叢集的任何驗證。
-
如果您在建立時間
desiredSize
0
將 設定為 ,則當容量保留變為作用中時,您有不同的選項可以擴展節點群組:-
為 ASG 建立符合容量區塊保留開始時間的排程擴展政策。如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的為 Amazon EC2 Auto Scaling 排程擴展。
-
使用 Amazon EKS 主控台或
eks update-nodegroup-config
更新擴展組態,並設定節點群組所需的大小。 -
使用 Kubernetes Cluster Autoscaler。如需詳細資訊,請參閱 Cluster Autoscaler on AWS
。
-
-
節點群組現在已準備好排程工作負載和 Pod。
-
為了讓您的 Pod 在保留結束之前正常耗盡,Amazon EKS 會使用排程擴展政策,將節點群組大小縮減為
0
。此排程擴展將設定為名為Amazon EKS Node Group Capacity Scaledown Before Reservation End
的名稱。建議您不要編輯或刪除此動作。Amazon EC2 會在保留結束時間前 30 分鐘開始關閉執行個體。因此,Amazon EKS 將在節點群組的保留結束前 40 分鐘設定排程縮減規模,以安全且正常地移出 Pod。