本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 服務調節邏輯
Amazon ECS 服務排程器包含保護性邏輯,可在任務重複無法啟動時調節任務啟動。這有助於防止不必要的資源消耗並降低成本。
當服務中的任務無法從 PENDING
轉換為 RUNNING
狀態,而是直接移至 時STOPPED
,排程器:
-
逐漸增加重新啟動嘗試之間的時間
-
在兩次嘗試之間持續增加延遲最多 27 分鐘
-
產生服務事件訊息以通知您問題
注意
27 分鐘的最大延遲期間可能會在未來更新中變更。
啟用限流時,您會收到此服務事件訊息:
(service
service-name
) is unable to consistently start tasks successfully.
調節邏輯的重要特性:
-
服務無限期繼續重試嘗試
-
唯一的修改是重新啟動之間的時間增加
-
沒有使用者可設定的參數
解決限流問題
若要解決限流問題,您可以:
-
更新服務以使用新的任務定義,這會立即將服務傳回正常、非限流的操作。如需詳細資訊,請參閱更新 Amazon ECS 服務。
-
解決任務失敗的根本原因。
觸發限流的任務失敗的常見原因包括:
-
叢集資源不足 (連接埠、記憶體或 CPU)
-
以資源服務事件訊息不足表示
-
-
容器映像提取失敗
-
可能由無效的映像名稱、標籤或許可不足造成
-
CannotPullContainerError
中的結果 檢視 Amazon ECS 已停止的任務錯誤
-
-
磁碟空間不足
-
導致
CannotCreateContainerError
已停止的任務錯誤 -
如需解析步驟,請參閱 對 Amazon ECS API error (500): devmapper中的 Docker 進行故障診斷
-
重要
下列案例不會觸發調節邏輯:
-
達到
RUNNING
狀態後停止的任務 -
任務因 Elastic Load Balancing 運作狀態檢查失敗而停止
-
容器命令在達到
RUNNING
狀態後以非零代碼結束的任務