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

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

Amazon ECS 任務生命週期

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

當請求任務狀態變更時 (例如停止任務或更新需要擴展或縮小的服務計數時),Amazon ECS 容器代理程式會以任務的最後已知狀態 (lastStatus),以及任務的所需狀態 (desiredStatus) 來追蹤這些變更。最後已知狀態和所需狀態,都可在主控台或透過使用 API 或 AWS CLI說明任務來查看。

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

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

生命週期狀態

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

佈建中

Amazon ECS 必須執行額外的步驟,然後再啟動任務。例如,對於使用 awsvpc 網路模式的任務,需要佈建彈性網路介面。

待定

這是一個轉換狀態,Amazon ECS 在容器代理程式上等待採取進一步的動作。任務會一直處於待處理狀態,直到任務有可用的資源為止。

啟動中

這是一種轉換狀態,其中 Amazon ECS 必須在啟動任務後但在任務可轉移為 RUNNING 狀態前執行額外的步驟。這是 Amazon ECS 提取容器映像、建立容器、設定任務聯網、註冊負載平衡器目標群組,以及設定服務探索的狀態。

RUNNING (執行中)

任務成功執行中。

停用中

這是一種轉換狀態,其中 Amazon ECS 必須在任務停止之前執行其他步驟。例如,對於屬於設定為使用 Elastic Load Balancings 目標群組之服務一部分的任務,目標群組會在此狀態期間取消註冊。

停止中

這是一個轉換狀態,Amazon ECS 在容器代理程式上等待採取進一步的動作。

對於 Linux 容器,容器代理程式會傳送SIGTERM訊號,通知應用程式需要完成並關閉,然後在等待任務定義中設定的StopTimeout持續時間SIGKILL後傳送 。

取消佈建中

Amazon ECS 必須在任務停止後但在任務轉移為 STOPPED 狀態之前執行額外的步驟。例如,對於使用 awsvpc 網路模式的任務,需要分離並刪除彈性網路介面。

已停止

已成功停止任務。

如果您的任務因錯誤而停止,請參閱 檢視 Amazon ECS 已停止的任務錯誤

DELETED

這是任務停止時的過渡狀態。此狀態不會在主控台中顯示,但是會顯示在 describe-tasks