本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
主機需求和機群功能
功能和主機需求是補充。機群的功能會公告其工作者支援的內容,而步驟的主機需求會說明步驟的需求。三個概念說明它們如何互動:
-
需求會與機群比對,而不是與工作者比對 – 排程器會將步驟的需求與每個機群的宣告功能進行比較。它永遠不會檢查個別工作者。
-
功能排程;只有服務受管機群功能也會設定硬體:在服務受管機群上,執行個體功能會另外決定啟動哪些 Amazon EC2 執行個體類型。在客戶管理的機群上, 功能是自我報告的宣告,不會變更您的機器。
-
需求永遠不會提供硬體 – 主機需求篩選條件,機群可以執行該步驟。它不會啟動較大的執行個體或變更自動擴展決策。
| Mechanism | 您設定的位置 | 它的功能 | 它不會做什麼 |
|---|---|---|---|
機群執行個體功能 (服務受管機群) |
機群組態 ( |
設定硬體:可啟動的一組 Amazon EC2 執行個體類型。也會公告機群的排程功能 |
未在集合中選擇一個大小 – 滿足組態的任何執行個體類型都可以啟動 |
機群工作者功能 (客戶管理的機群) |
機群組態 ( |
公告機群的排程功能;機群中每個工作者提供的自我報告宣告 |
不設定或驗證硬體 – 更新宣告不會變更您的機器 |
步驟主機需求 |
任務範本 ( |
說明步驟的需求;在建立任務以選取相容的機群時,與機群功能相符 |
不會啟動較大的執行個體、變更自動調整規模決策,或比對個別工作者 |
工作者公告功能 |
由工作者代理程式在啟動時回報 |
記錄工作者報告的硬體,例如 |
不用於排程或硬體組態 |
機群組態提供硬體
對於服務受管機群,instanceCapabilities組態 (記憶體、vCPUs GPUs 以及允許和排除的執行個體類型清單) 會定義機群可以啟動的執行個體類型集。當機群向外擴展時,該集合中的任何執行個體類型都可以啟動,包括最小的執行個體。若要保證硬體樓層,請提高組態下限,例如 memoryMiB.min或限制 allowedInstanceTypes。如需詳細資訊,請參閱《截止日期雲端使用者指南》中的服務受管機群。
服務受管執行個體功能是設定硬體的唯一機制。在客戶管理的機群上,workerCapabilities宣告是自我報告:它會公告您在機群中每個工作者提供的硬體,並且更新宣告不會變更您的機器。如需詳細資訊,請參閱建立客戶受管機群。
主機需求 選取機群
當您建立任務時,排程器會將每個步驟的 hostRequirements 與與佇列相關聯的機群功能進行比較。滿足需求的機群可以執行 步驟;如果沒有機群執行,則步驟會標記為 NOT_COMPATIBLE。
比對僅限機群層級。例如,如果步驟需要 16 GiB 的記憶體,而機群宣告的記憶體容量為 8–32 GiB,則機群不相容,即使該機群中的工作者有 32 GiB。排程器永遠不會檢查個別工作者,因此會圍繞保證的硬體層設計機群,並讓每個步驟的需求將其路由到正確的機群。如需詳細資訊,請參閱判斷機群相容性及機群設計最佳實務。
工作者功能是資訊性的
每個工作者都會報告啟動時偵測到的硬體,例如 amount.worker.memory。這些值用於可見性和偵錯。排程器不會使用它們:相容性來自機群的宣告功能,而硬體來自機群組態。特別是, 等需求amount.worker.memory不會導致機群啟動更大的執行個體。將步驟需求視為需求陳述式,並將機群組態視為保證。
自動擴展計數任務
自動擴展器會根據兩個因素來調整服務受管機群的大小:該機群的就緒任務數量,以及機群的最小和最大工作者計數。它會選擇要執行多少工作者;機群組態會決定每個工作者是什麼。如需詳細資訊,請參閱機群擴展。
主機需求是 Open Job Description 規格的一部分。如需完整欄位參考,請參閱 GitHub 網站上的範本結構描述