車隊工作負載
IBM Cloud® Code Engine 是一個全面管理的無伺服器平台,可執行您的容器化工作負載,包括機群工作負載。 在 Code Engine 中學習如何運行車隊。
什麼是車隊?
機群也稱為無伺服器機群,是 Code Engine 的運算元件,可平行執行一個或多個使用者程式碼實體,以完成大量運算密集型任務的佇列。 車隊可連接至虛擬私有雲,以便在連接其他服務時安全地交換使用者資料。 與批次作業不同的是,fleets 提供動態任務排程和單租戶隔離,並與 vCPU 和 GPU 相容。
車隊如何運作?
車隊有三個主要元素:任務、實例和工作節點。 單一任務由使用者程式碼的單一實例完成,該實例在工作節點上執行。 每個 Worker 節點可以同時執行數個任務,讓許多任務可以並行完成。 當任務完成時,工作者節點上會產生一個新的實體,以完成佇列中下一個可用的任務。 每個工作站會重複此程序,直到所有任務完成為止,此時工作站會自動解除佈署。
車隊與工作有何不同?
與主要用於中小型任務的批次作業不同,機群是設計用來完成大型、運算密集的任務。 查看下表,瞭解工作和車隊之間的具體差異。
| 特性 | Fleet | 工作 |
|---|---|---|
| 隔離 | 單一承租戶 | 多租戶 |
| 任務大小 | 大型任務 | 中小型任務 |
| 實作 | 動態佇列 | 靜態陣列 |
| 機器配置 | 完全控制機器輪廓 | 無法控制機器輪廓 |
| VPC 連線 | 本機連接至現有的 VPC | 需要私人路徑 |
與 Code Engine 車隊合作的主要特點是什麼?
檢視下列主題,以瞭解在 Code Engine 中與車隊合作的更多資訊。
自動縮放
有了機群,您就可以利用大規模的平行性來完成大型的密集計算任務。Code Engine 會自動調整機群中的工作節點,以最有效率的方式滿足資源需求。 您可以讓 Code Engine 決定部署的工作人員的設定檔,也可以選擇特定的設定檔,例如 GPU 類型。 無論是哪一種情況,Code Engine 都會自動調整工作人員的數量,以達到最高的效率。
部署的 Worker 數量基於需要完成的任務數量、您的代碼實例所需的資源,以及您希望同時執行的最大並發實例數量。 透過調整這些設定,您可以擴大您的車隊,以完成少至 1 個或多至數百萬個任務。
例如,假設您有 4 個任務要完成。 完成任務的每個程式碼範例需要 1 vCPU and 2 GB memory,總需求為 4 vCPU and 8GB memory。 如果將最大並發實體數設定為 2,Code Engine,就可以部署 1 個 Worker 節點,2 vCPU and 4 GB memory,一次執行 2 個實體。 如果將最大並發實體數設定為 4,Code Engine,就可以部署
2 個相同的 Worker 節點,在兩個 Worker 上同時執行所有 4 個實體。 在第二種情況下,車隊完成得更快,但需要部署更多工人。 請記住,自動部署 Worker 節點有無限多的組合,而且可能會部署不同配置文件的 Worker 節點。
GPU 不提供自動縮放功能。 若要為機群部署 GPU,您必須指定要部署的 GPU Worker 類型。
任務與實例規格
部署機群時,使用者可以指定要完成的任務數量、同時執行的實例數量、完成任務的順序。 車隊可以透過同時啟動多個實體,並行處理許多任務。 所有實體都是以與機群規格相同的 vCPU 和記憶體數量建立。 此外,使用者可以建立任務規格檔案,為每個任務提供特定的指令和參數,或建立自訂的任務索引。
COS 中的任務儲存
您可以使用 COS 儲存桶為您的機群提供任務,方法是在建立機群時指定持久性資料儲存和儲存桶子路徑。 COS 桶中的每個物件代表單一任務。
隔離
與批次作業不同,機群提供單一租戶隔離。 您的車隊工作人員不會與其他使用者共用。
重試次數
每個車隊的實例都會執行完成。 但是,如果發生錯誤,Code Engine 會重新啟動實體。 您可以限制重試的最大次數,以避免重新啟動失敗的實體。
狀態
當至少有一個工作節點已佈建時,機群就會處於 Running 狀態。 機群不再執行時,如果所有任務都成功完成,則處於 Succeeded 狀態;如果一個或多個任務失敗,則處於 Failed 狀態。 您也可以取消車隊。
如需詳細資訊,請參閱 瞭解您車隊的狀態。
工人簡介
您可以選擇車隊工作人員的設定檔。 如果您沒有指定設定檔,Code Engine 會為您選取一個設定檔。
Code Engine 車隊支援下列設定檔系列:
| 實例設定檔 |
|---|
| bx2-2x8 |
| bx2-4x16 |
| bx2-8x32 |
| bx2-16x64 |
| bx2-32x128 |
| bx2-48x192 |
| bx2-64x256 |
| bx2-96x384 |
| bx2-128x512 |
| bx2a-2x8 |
| bx2a-4x16 |
| bx2a-8x32 |
| bx2a-16x64 |
| bx2a-32x128 |
| bx2a-48x192 |
| bx2a-64x256 |
| bx2a-96x384 |
| bx2a-128x512 |
| bx2a-228x912 |
| bx2d-2x8 |
| bx2d-8x32 |
| bx2d-16x64 |
| bx3d-2x10 |
| bx3d-4x20 |
| bx3d-8x40 |
| bx3d-16x80 |
| bx3d-24x120 |
| bx3d-32x160 |
| bx3d-48x240 |
| bx3d-64x320 |
| 實例設定檔 |
|---|
| cx2-2x4 |
| cx2-4x8 |
| cx2-8x16 |
| cx2-16x32 |
| cx2-32x64 |
| cx2-48x96 |
| cx2-64x128 |
| cx2-96x192 |
| cx2-128x256 |
| cx3d-2x5 |
| cx3d-4x10 |
| cx3d-8x20 |
| cx3d-16x40 |
| cx3d-24x60 |
| cx3d-32x80 |
| cx3d-48x120 |
| cx3d-64x160 |
| 實例設定檔 |
|---|
| mx2-2x16 |
| mx2-4x32 |
| mx2-8x64 |
| mx2-16x128 |
| mx2-32x256 |
| mx2-48x384 |
| mx2-64x512 |
| mx2-96x768 |
| mx2-128x1024 |
| mx2d-16x128 |
| mx2d-64x512 |
| mx2d-96x768 |
| mx3d-2x20 |
| mx3d-4x40 |
| mx3d-8x16 |
| mx3d-16x160 |
| mx3d-24x240 |
| mx3d-32x320 |
| mx3d-48x480 |
| mx3d-64x640 |
| 實例設定檔 |
|---|
| gx3-16x80x1l4 |
| gx3-32x160x2l4 |
| gx3-64x320x4l4 |
| gx3-24x120x1l40s |
| gx3-48x240x2l40s |
| gx2-8x64x1v100 |
| gx2-16x128x1v100 |
| gx2-16x128x2v100 |
| gx2-32x256x2v100 |
| gx3d-24x120x1a100p |
| gx3d-48x240x2a100p |
| gx3d-160x1792x8h100 |
| gx3d-160x1792x8h200 |
| gx4d-232x3840x8b300 |
| 實例設定檔 |
|---|
| nxf-2x1 |
| nxf-2x2 |
| bxf-2x8 |
| bxf-4x16 |
| bxf-8x32 |
| bxf-16x64 |
| bxf-24x96 |
| bxf-32x128 |
| bxf-48x192 |
| bxf-64x256 |
| cxf-2x4 |
| cxf-4x8 |
| cxf-8x16 |
| cxf-16x32 |
| cxf-24x48 |
| cxf-32x64 |
| cxf-48x96 |
| cxf-64x128 |
| mxf-2x16 |
| mxf-4x32 |
| mxf-8x64 |
| mxf-16x128 |
| mxf-24x192 |
| mxf-32x256 |
| mxf-48x384 |
| mxf-64x512 |
某些設定檔可能無法在所有 VPC 網路區域中使用。 您可以使用以下 CLI 指令,列出 Code Engine serverless 船隊在區域中支援的 Worker 設定檔。
ibmcloud ce fleet worker profiles
如何開始使用車隊?
若要使用 icr.io/codeengine/helloworld 範例影像建立並執行簡單的 Code Engine 機群,請參閱執行 您的第一個 Code Engine 機群。