Amazon ECS任務生命週期 - Amazon Elastic Container Service

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

Amazon ECS任務生命週期

無論是以手動方式或是做為服務的一部分,當任務啟動時,它可以在自動完成或手動停止之前通過數個狀態。有些任務是做為批次任務執行的,因此會很自然地從 PENDING 前進到 RUNNING,最後前進到 STOPPED。其他可做為服務一部分的任務會不限期的持續執行,或者可根據需要擴展或縮小。

當請求任務狀態變更時,例如停止任務或更新所需的服務計數,以將其向上或向下擴展時,Amazon ECS容器代理程式會將這些變更追蹤為任務的最後一個已知狀態 (lastStatus) 和任務的所需狀態 (desiredStatus)。您可以在 主控台中查看任務的最後一個已知狀態和所需狀態,或使用 API或 描述任務 AWS CLI。

下面的流程圖顯示任務生命週期流程。

任務生命週期狀態的圖表。狀態為 PROVISIONING、PENDING、ACTIVATING、RUNNING、DEACTOVATING、STOPPING。

生命週期狀態

以下是每個任務生命週期狀態的說明。

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