本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
耗盡 Amazon ECS 容器執行個體
有時候,您可能需要從叢集中移除容器執行個體,例如執行系統更新或縮減叢集容量。Amazon ECS 可讓您將容器執行個體轉換為 DRAINING
狀態。這稱為容器執行個體耗盡。將容器執行個體設定為 DRAINING
時,Amazon ECS 會避免在容器執行個體中放置新的任務排程。
服務的耗盡行為
會立即停止屬於 PENDING
狀態之服務的任何任務。如果叢集中有可用的容器執行個體容量,服務排程器將會啟動取代任務。如果容器執行個體容量不足,則會傳送服務事件訊息,指出該問題。
在容器執行個體上處於 RUNNING
狀態的服務的任務會轉換為 STOPPED
狀態。服務排程器會嘗試根據服務的部署類型和部署組態參數 (minimumHealthyPercent
和 maximumPercent
) 來取代任務。如需詳細資訊,請參閱Amazon ECS 服務及Amazon ECS 服務定義參數。
-
如果
minimumHealthyPercent
低於 100%,則排程器在任務取代期間可以暫時忽略desiredCount
。例如,desiredCount
為四項任務,下限 50% 允許排程器先停止兩項現有的任務,再開始兩項新的任務。如果下限為 100%,則直到替代任務視為正常運作前,服務排程器都無法移除現有的任務。如果未使用負載平衡器的服務任務為RUNNING
狀態,則視為運作良好。如果使用負載平衡器的服務任務為RUNNING
狀態,且負載平衡器回報託管所在的容器執行個體運作良好,任務即視為運作良好。重要
如果您使用 Spot 執行個體且
minimumHealthyPercent
大於或等於 100%,則在 Spot 執行個體終止之前,服務將沒有足夠的時間取代任務。 -
maximumPercent
參數代表任務取代期間的執行任務數量上限,這允許您定義替代批次大小。例如,如果desiredCount
為四項任務,可先啟動四項新任務再停止四項要耗盡任務的上限為 200% (前提是有執行此作業所需的可用叢集資源)。如果上限為 100%,則在要耗盡的任務停止之前,皆無法啟動替代任務。重要
如果
minimumHealthyPercent
和maximumPercent
兩者皆為 100%,則服務無法刪除現有任務,也無法啟動替換任務。這可以防止容器執行個體成功耗盡,並避免進行新部署。
獨立任務的耗盡行為
處於 PENDING
或 RUNNING
狀態的任何獨立任務不會受到影響;您必須等待其自行停止或手動停止。容器執行個體將維持 DRAINING
狀態。
當執行個體上執行的所有任務轉換為 STOPPED
狀態時,容器執行個體完成耗盡。容器執行個體會保持在 DRAINING
狀態,直到再次啟動或刪除為止。您可以確認容器執行個體上的任務狀態,方法是搭配使用 ListTasks 操作與 containerInstance
參數以取得執行個體上的任務清單,然後搭配使用 DescribeTasks 操作與每個任務的 Amazon Resource Name (ARN) 或 ID 以驗證任務狀態。
當您準備好讓容器執行個體重新開始託管任務時,您可以將容器執行個體的狀態從 DRAINING
變更為 ACTIVE
。然後,Amazon ECS 服務排程器將再次考慮容器執行個體以進行任務放置。
程序
透過運用新的 AWS Management Console,可使用下列步驟將容器執行個體設定為耗盡。
您也可以使用 UpdateContainerInstancesState API 動作或 update-container-instances-state 命令將容器執行個體的狀態變更成 DRAINING
。
AWS Management Console
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在導覽窗格中,選擇叢集。
-
在 Clusters (叢集) 頁面上,選擇託管您執行個體的叢集。
-
在 Cluster :
name
(叢集:名稱) 頁面上,選擇 Infrastructure (基礎基礎設施) 索引標籤。然後,在 Container instances (容器執行個體)下,選取您要耗盡之每個容器執行個體的核取方塊。 -
依序選擇動作、耗盡。