Amazon ECS 如何在容器執行個體上放置任務 - Amazon Elastic Container Service

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

Amazon ECS 如何在容器執行個體上放置任務

您可以使用任務放置來設定 Amazon ECS,將任務放在符合特定條件的容器執行個體上,例如可用區域或執行個體類型。

以下是任務放置元件:

  • 任務放置策略-用於為任務放置選擇容器實例或終止任務的算法。例如,Amazon ECS 可以隨機選取容器執行個體,也可以選取容器執行個體,以便將任務平均分配到一組執行個體。

  • 任務群組-一組相關工作,例如資料庫工作。

  • 任務放置限制-這些是將任務放置在容器實例上必須符合的規則。如果不滿足約束,則不會放置任務並保持在PENDING狀態中。例如,您可以使用條件約束僅將工作放置在特定例證類型上。

Amazon ECS 對於啟動類型有不同的算法。

EC2 啟動類型

對於使用 EC2 啟動類型的任務,Amazon ECS 必須根據任務定義中指定的要求 (例如 CPU 和記憶體) 決定要放置任務的位置。同樣地,當您縮減任務計數時,Amazon ECS 必須判斷要終止的任務。您可以套用任務置放策略和限制條件,來自訂 Amazon ECS 如何放置和終止任務。

預設任務放置策略取決於您是手動執行工作 (獨立工作) 還是在服務中執行工作。如果任務是作為 Amazon ECS 服務的一部分來執行,任務置放策略會是使用 attribute:ecs.availability-zonespread。服務中的任務無預設任務置放限制。如需詳細資訊,請參閱 在 Amazon ECS 上排程您的容器

注意

任務置放策略是一種最佳作法。即使最佳置放選項無法使用,Amazon ECS 仍然會嘗試放置任務。不過,任務置放限制條件具有約束性,且可能妨礙任務置放。

您可以同時使用任務置放策略和限制條件。例如,您可以使用任務放置策略和任務放置限制,根據每個可用區域內的記憶體,跨可用區域和分箱封裝任務來分配工作,但僅適用於 G2 執行個體。

Amazon ECS 放置任務時,會使用下列程序來選取容器執行個體:

  1. 識別符合工作定義中 CPU、GPU、記憶體和連接埠需求的容器執行個體。

  2. 識別符合任務放置限制的容器執行個體。

  3. 識別符合任務放置策略的容器執行個體。

  4. 選取要放置工作的容器執行個體。

Fargate 啟動類型

任務放置策略和限制條件不支援使用 Fargate 啟動類型的任務。Fargate 將盡力將任務分散至可存取的可用區域。如果容量提供者同時包含 Fargate 和 Fargate Spot,則每個容量提供者的分散行為均各自獨立。