本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
排空 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
狀態,直到再次啟動或刪除為止。您可以使用具有containerInstance
參數的ListTasks操作來驗證容器執行個體上的任務狀態,以取得執行個體上的任務清單,然後使用 Amazon Resource Name (ARN) 或每個任務的 ID 進行DescribeTasks操作以驗證任務狀態。
當您準備好讓容器執行個體重新開始託管任務時,您可以將容器執行個體的狀態從 DRAINING
變更為 ACTIVE
。然後,Amazon ECS 服務排程器將再次考慮容器執行個體以進行任務放置。
程序
透過運用新的 AWS Management Console,可使用下列步驟將容器執行個體設定為耗盡。
您也可以使用 UpdateContainerInstancesStateAPI 動作或更新容器執行個體狀態命令,將容器執行個體的狀態變更為。DRAINING
AWS Management Console
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在導覽窗格中,選擇叢集。
-
在 Clusters (叢集) 頁面上,選擇託管您執行個體的叢集。
-
在 Cluster :
name
(叢集:名稱) 頁面上,選擇 Infrastructure (基礎基礎設施) 索引標籤。然後,在 Container instances (容器執行個體)下,選取您要耗盡之每個容器執行個體的核取方塊。 -
依序選擇動作、耗盡。