本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS任務生命週期
無論是以手動方式或是做為服務的一部分,當任務啟動時,它可以在自動完成或手動停止之前通過數個狀態。有些任務是做為批次任務執行的,因此會很自然地從 PENDING
前進到 RUNNING
,最後前進到 STOPPED
。其他可做為服務一部分的任務會不限期的持續執行,或者可根據需要擴展或縮小。
當請求任務狀態變更時,例如停止任務或更新所需的服務計數,以將其向上或向下擴展時,Amazon ECS容器代理程式會將這些變更追蹤為任務的最後一個已知狀態 (lastStatus
) 和任務的所需狀態 (desiredStatus
)。您可以在 主控台中查看任務的最後一個已知狀態和所需狀態,或使用 API或 描述任務 AWS CLI。
下面的流程圖顯示任務生命週期流程。
生命週期狀態
以下是每個任務生命週期狀態的說明。
- PROVISIONING
-
Amazon ECS 必須先執行其他步驟,才能啟動任務。例如,對於使用
awsvpc
網路模式的任務,需要佈建彈性網路介面。 - PENDING
-
這是 Amazon 正在ECS等待容器代理程式採取進一步動作的轉換狀態。任務會一直處於待處理狀態,直到任務有可用的資源為止。
- ACTIVATING
-
這是一個轉換狀態,其中 Amazon ECS 必須在任務啟動後,但在任務可以轉換到
RUNNING
狀態之前執行其他步驟。這是 Amazon ECS提取容器映像、建立容器、設定任務聯網、註冊負載平衡器目標群組,以及設定服務探索的狀態。 - RUNNING
-
任務成功執行中。
- DEACTIVATING
-
這是轉換狀態,其中 Amazon ECS 必須在任務停止之前執行其他步驟。例如,對於設定為使用 Elastic Load Balancings 目標群組之服務一部分的任務,目標群組會在此狀態期間取消註冊。
- STOPPING
-
這是 Amazon 正在ECS等待容器代理程式採取進一步動作的轉換狀態。
對於 Linux 容器,容器代理程式會傳送
SIGTERM
訊號,通知應用程式需要完成並關閉,然後在等待任務定義中設定的StopTimeout
持續時間SIGKILL
後傳送 。 - DEPROVISIONING
-
Amazon ECS 必須在任務停止後,但在任務轉換為
STOPPED
狀態之前執行其他步驟。例如,對於使用awsvpc
網路模式的任務,需要分離並刪除彈性網路介面。 - STOPPED
-
已成功停止任務。
如果您的任務因錯誤而停止,請參閱 檢視 Amazon ECS已停止的任務錯誤。
- DELETED
-
這是任務停止時的過渡狀態。此狀態不會在主控台中顯示,但是會顯示在
describe-tasks
。