自動 Amazon ECS任務和映像清除 - Amazon Elastic Container Service

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

自動 Amazon ECS任務和映像清除

每次將任務放置在容器執行個體時,Amazon ECS容器代理程式都會檢查任務中參考的影像是否為儲存庫中指定標籤的最新影像。如果沒有,預設行為可讓代理程式從個別的儲存庫提取映像。若您經常更新任務和服務中的映像,您的容器執行個體儲存體可能會很快的被不再使用且可能永遠不會再使用的 Docker 映像填滿。例如,您可以使用連續整合和連續部署 (CI/CD) 管道。

注意

您可以使用 ECS_IMAGE_PULL_BEHAVIOR 參數自訂 Amazon ECS 代理程式映像提取行為。如需詳細資訊,請參閱Amazon ECS容器代理程式組態

同樣的,屬於已停止任務的容器也會使用日誌資訊、資料磁碟區和其他成品取用容器執行個體儲存體。這些成品有助於偵錯未預期停止的容器,但其中大多數的儲存體都可在一段時間之後安全的釋放。

根據預設,Amazon ECS容器代理程式會自動清除已停止的任務,以及容器執行個體上任何任務未使用的 Docker 映像。

注意

自動化映像清除功能至少需要 Amazon ECS容器代理程式的 1.13.0 版。若要將您的代理更新到最新版本,請參閱「更新 Amazon ECS容器代理程式」。

以下代理組態變數可用來調整您的自動化任務和映像清除體驗。如需如何在您的容器執行個體上設定這些變數的詳細資訊,請參閱「Amazon ECS容器代理程式組態」。

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

此變數可指定移除屬於已停止任務的任何容器前,應等待的時間。只要有容器仍在參考該映像,映像清除處理序便無法刪除映像。當映像不再由任何容器 (停止的容器或正在執行的容器) 參考時,映像便可進行清除。根據預設,此參數會設為 3 小時,但您可以將此期間減少至 1 秒鐘 (若您的應用程式需要的話)。如果您將值設定為小於 1 秒,則會忽略此參數。

ECS_DISABLE_IMAGE_CLEANUP

若您將此變數設為 true,則系統會關閉您的容器執行個體上的自動化映像清除,並且不會自動移除任何映像。

ECS_IMAGE_CLEANUP_INTERVAL

此變數指定自動化映像清除處理序檢查要刪除之映像的頻率。預設值是每 30 分鐘,但您最多可以將此期間減少至 10 分鐘,以更頻繁的移除映像。

ECS_IMAGE_MINIMUM_CLEANUP_AGE

此變數可指定提取映像後,到可清除該映像之間最小的時間長度。這可防止清除才剛提取的映像。預設值為 1 小時。

ECS_NUM_IMAGES_DELETE_PER_CYCLE

此變數會指定單一清除週期中可移除多少映像。預設值為 5,最小值為 1。

當 Amazon ECS容器代理程式正在執行且自動映像清除未關閉時,代理程式會檢查是否有 Docker 映像,而這些映像並非由執行或停止容器依ECS_IMAGE_CLEANUP_INTERVAL變數決定的頻率所參考。若有找到未使用的映像,且其時間比 ECS_IMAGE_MINIMUM_CLEANUP_AGE 變數指定的最小清除時間還舊,則代理最多會移除 ECS_NUM_IMAGES_DELETE_PER_CYCLE 變數所指定數量的映像。最近參考時間距離現在最久的映像會先遭到刪除。在移除映像後,代理會等待直到下一個間隔,並重複此程序。