透過取代任務來部署 Amazon ECS服務 - Amazon Elastic Container Service

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

透過取代任務來部署 Amazon ECS服務

當您建立使用滾動更新ECS) 部署類型的服務時,Amazon ECS服務排程器會將目前執行中的任務取代為新任務。Amazon 在滾動更新期間從服務ECS新增或移除的任務數量,是由服務部署組態所控制。部署組態由以下項目組成:

  • minimumHealthyPercent 代表在部署期間或容器執行個體耗盡時,應為服務執行的任務數量下限 (佔服務所需任務數量的百分比)。此值會向上捨入。例如,如果最小運作狀態良好的百分比為 50,且所需的任務計數為 4,則排程器可以先停止兩項現有的任務,再開始兩項新的任務。同樣地,如果最小運作狀態良好的百分比為 75%,而所需的任務計數為 2,則排程器無法停止任何任務,因為產生的值也是 2。

    如果任務變得運作狀態不佳,Amazon ECS服務排程器會先啟動替換任務,並維護minimumHealthyPercent任務,直到替換任務運作狀態良好為止。隨著替代任務啟動並變得運作狀態良好,運作狀態不佳的任務將逐漸停止。

  • maximumPercent 代表在部署期間或容器執行個體耗盡時,應為服務執行的任務數目上限 (佔服務所需任務數量的百分比)。此值會向下捨去。例如,如果最大百分比為 200,且所需的任務計數為四,則排程器可以先停止四項現有的任務,再開始四項新的任務。同樣地,如果最大百分比為 125,且所需的任務計數為 3,則排程器無法停止任何任務,因為產生的值也是 3。

重要

設定最小運作狀態良好的百分比或最大百分比時,您應確定排程器在部署初始化時,可以停止或啟動至少一項任務。如果您的服務部署因無效的部署組態而停滯,將傳送服務事件簡訊。如需詳細資訊,請參閱服務 (service-name) 因為服務部署組態,無法在部署期間停止或啟動任務。更新 minimumHealthyPercent 或 maximumPercent 值,然後再試一次。

滾動式部署會使用部署斷路器來判斷任務是否達到穩定狀態。部署斷路器可以選擇性在失敗時復原部署。

容器映像解析度

為了確保服務中的所有任務都使用相同的容器映像,Amazon 會將任務定義中指定的容器映像名稱和任何映像標籤ECS解析為容器映像摘要。如果您建立執行和維護單一任務的服務,該任務會用來建立容器映像摘要。如果您建立執行和維護多個任務的服務,服務排程器會在部署期間先啟動一個任務。第一個任務用於建立容器映像摘要。

建立容器映像摘要之後,Amazon ECS會使用摘要來啟動任何其他所需的任務,以及任何未來的服務更新。這會導致服務中所有任務一律執行相同的容器映像,導致軟體的版本一致性。

如果三次或更多次嘗試建立容器映像摘要失敗,則部署會繼續進行,而不需要映像摘要解析。如果啟用部署斷路器,則部署會額外失敗並復原。

映像摘要解析度的最低 Fargate Linux 平台版本為 1.3.0。映像摘要解析度的最低 Fargate Windows 平台版本為 1.0.0

低於 的 Amazon ECS Agent 版本1.31.0不支援影像摘要解析度。代理程式版本僅1.31.01.69.0支援推送至 Amazon ECR儲存庫的影像的映像摘要解析度。客服人員版本1.70.0或更高版本支援所有影像的影像摘要解析度。

注意
  • Amazon ECS不會擷取由 Amazon 管理的 Sidecar 容器摘要ECS,例如 Amazon GuardDuty 安全代理程式或 Service Connect 代理。

  • 若要在具有多個任務的 服務中減少與容器映像解析相關的潛在延遲,請在EC2容器執行個體上執行 Amazon ECS代理程式版本 1.83.0或更高版本。若要完全避免潛在的延遲,請在任務定義中指定容器映像摘要。

  • 如果您建立具有所需任務計數為零的服務,Amazon ECS將無法建立容器摘要,除非您觸發另一個部署具有大於零之所需任務計數的服務。

  • 若要建立更新的映像摘要,您可以強制新部署。此更新摘要將用於啟動新任務,不會影響已執行的任務。如需強制新部署的詳細資訊,請參閱 Amazon 參考 forceNewDeployment 中的 。 ECS API

失敗偵測

在部署失敗時快速識別,然後選擇性將失敗復原至上次運作中部署的兩種方法。

可以單獨使用或一起使用這些方法。使用這兩種方法時,一旦符合任一失敗方法的失敗條件,部署就會設定為失敗。

請遵循下列準則來協助判斷要使用的方法:

  • 斷路器 – 當您想要在任務無法啟動而停止部署時,請使用此方法。

  • CloudWatch 警示 - 當您想要根據應用程式指標停止部署時,請使用此方法。