協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
使用 ML 的容量區塊建立受管節點群組
機器學習 (ML) 的容量區塊可讓您指定未來日期保留 GPU 執行個體,以支援短期 ML 工作負載。如需詳細資訊,請參閱《適用於 Linux 執行個體 的 Amazon EC2 使用者指南》中 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
-
-
使用啟動範本來建立受管節點群組。
下是針對容量區塊的建立節點群組命令範例。將
範例值取代為適用於您叢集的值。建立容量區塊受管節點群組時,執行下列動作:
-
將
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。如需詳細資訊,請參閱 AWS 上的 Cluster Autoscaler
。
-
-
節點群組現在已準備就緒,可供工作負載和 Pod 進行排程。
-
為了在保留結束前優雅地排空您的 Pod,Amazon EKS 使用排程擴展政策將節點群組規模縮減至
0。此排程擴展將設定一個名為Amazon EKS Node Group Capacity Scaledown Before Reservation End的動作。我們建議不要編輯或刪除此動作。Amazon EC2 會在保留結束時間前的 30 分鐘開始關閉執行個體。因此,Amazon EKS 會在保留結束前的 40 分鐘於節點群組上設定排程縮減規模,以便安全且優雅地移出 Pod。