使用 ML 的容量區塊建立受管節點群組 - Amazon EKS

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

使用 ML 的容量區塊建立受管節點群組

機器學習 (ML) 的容量區塊可讓您在未來日期保留 GPU 執行個體,以支援您的短期 ML 工作負載。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的 ML 的容量區塊

考量事項

重要
  • 容量區塊僅適用於特定 Amazon EC2 執行個體類型和 AWS 區域。如需相容性資訊,請參閱適用於 Linux 執行個體的 Amazon EC2 使用者指南中的使用容量區塊先決條件

  • 如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 使用者指南中的使用機器學習工作負載的容量區塊

  • 具有容量區塊的受管節點群組只能使用自訂啟動範本建立。

  • 使用容量區塊升級受管節點群組時,請確定所需的節點群組大小設定為 0

使用 Amazon EC2 容量區塊建立受管節點群組

您可以使用容量區塊搭配 Amazon EKS 受管節點群組,來佈建和擴展 GPU 加速的工作者節點。以下 AWS CloudFormation 範本範例並未涵蓋生產叢集所需的每個層面。一般而言,您也需要引導指令碼將節點加入叢集,並指定 Amazon EKS 加速 AMI。如需詳細資訊,請參閱為您的叢集建立受管節點群組

  1. 建立適合您工作負載的啟動範本,並使用 Amazon EKS 受管節點群組。如需詳細資訊,請參閱使用啟動範本自訂受管節點

    除了上述程序的要求之外,請確定 LaunchTemplateData包含下列項目:

    • InstanceMarketOptions 並將 MarketType 設為 "capacity-block"

    • CapacityReservationSpecification: CapacityReservationTargetCapacityReservationId 設定為容量區塊 cr-02168da1478b509e0 (例如:)

    • InstanceType 設定為支援容量區塊的執行個體類型 (例如:p5.48xlarge)

      以下是 a CloudFormation 範本的摘錄,該範本會建立以容量區塊為目標的啟動範本。若要建立自訂 AMI 受管節點群組,您也可以新增 ImageIdUserData 參數。

      NodeLaunchTemplate: Type: "AWS::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" InstanceType: p5.48xlarge
  2. 使用啟動範本建立受管節點群組。

    以下是為容量區塊建立節點群組命令的範例。Replace (取代) example-values 適用於叢集的 。

    建立容量區塊受管節點群組時,請執行下列動作:

    • 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 \ --capacity-type "CAPACITY_BLOCK" \ --launch-template id="lt-id",version=1
  3. 請確保節點在擴展後聯結。使用具有容量區塊的受管節點群組的 Amazon EKS 叢集不會執行執行個體實際加入叢集並註冊的任何驗證。

  4. 如果您在0建立時間desiredSize將 設定為 ,則當容量保留變為作用中時,您有不同的選項可以擴展節點群組:

  5. 節點群組現已準備好用於工作負載和 Pods 要排程。

  6. 為了讓您的 Pods 若要在保留結束前正常耗盡,Amazon EKS 會使用排程的擴展政策,將節點群組大小縮減為 0 。此排程擴展將設定為名為 Amazon EKS Node Group Capacity Scaledown Before Reservation End 的名稱。建議您不要編輯或刪除此動作。

    Amazon EC2 會在保留結束時間前 30 分鐘開始關閉執行個體。因此,Amazon EKS 將在節點群組的保留結束前 40 分鐘設定排程縮減規模,以安全且正常地清除 Pods.