本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 如何在容器執行個體上放置任務
您可以使用任務置放來設定 Amazon ECS,將任務置放在符合特定條件的容器執行個體上,例如可用區域或執行個體類型。
以下是任務置放元件:
-
任務置放策略 - 用於選取容器執行個體以進行任務置放或終止任務的演算法。例如,Amazon ECS 可以隨機選取容器執行個體,也可以選取容器執行個體,讓任務平均分散到一組執行個體。
-
任務群組 - 一組相關的任務,例如資料庫任務。
-
任務置放限制 - 必須符合這些規則,才能在容器執行個體上放置任務。如果不符合限制條件,則任務不會放置並保持
PENDING
狀態。例如,您可以使用限制條件來僅將任務放置在特定執行個體類型上。
Amazon ECS 具有不同的啟動類型的演算法。
EC2 啟動類型
對於使用 EC2 啟動類型的任務,Amazon ECS 必須根據任務定義中指定的需求,例如 CPU 和記憶體,來決定將任務放置在何處。同樣地,當您縮減任務計數時,Amazon ECS 必須判斷要終止的任務。您可以套用任務置放策略和限制條件,來自訂 Amazon ECS 如何放置和終止任務。
預設任務置放策略取決於您是手動執行任務 (獨立任務) 還是在服務內執行任務。如果任務是作為 Amazon ECS 服務的一部分來執行,任務置放策略會是使用 attribute:ecs.availability-zone
來 spread
。對於不在 服務中的任務,沒有預設任務置放限制。如需詳細資訊,請參閱在 Amazon ECS 上排程您的容器。
注意
任務置放策略是一種最佳作法。即使最佳置放選項無法使用,Amazon ECS 仍然會嘗試放置任務。不過,任務置放限制條件具有約束性,且可能妨礙任務置放。
您可以同時使用任務置放策略和限制條件。例如,您可以使用任務放置策略和任務放置限制,根據每個可用區域內的記憶體,跨可用區域和分箱封裝任務來分配工作,但僅適用於 G2 執行個體。
Amazon ECS 放置任務時,會使用下列程序來選取容器執行個體:
-
識別滿足任務定義中 CPU、GPU、記憶體和連接埠需求的容器執行個體。
-
識別滿足任務置放限制條件的容器執行個體。
-
識別滿足任務置放策略的容器執行個體。
-
選取要放置任務的容器執行個體。
Fargate 啟動類型
任務放置策略和限制條件不支援使用 Fargate 啟動類型的任務。Fargate 將盡力將任務分散至可存取的可用區域。如果容量提供者同時包含 Fargate 和 Fargate Spot,則每個容量提供者的分散行為均各自獨立。