本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 服務參數的最佳實務
為了確保沒有應用程式停機時間,部署程序如下:
-
啟動新的應用程式容器,同時保持現有容器的執行狀態。
-
檢查新容器是否健康。
-
停止舊的容器。
根據您的部署配置以及叢集中未保留的可用空間量,可能需要多輪次才能完成以新任務取代所有舊任務。
您可以使用兩個 ECS 服務組態選項來修改編號:
-
minimumHealthyPercent
:100% (預設值)部署期間必須保持在
RUNNING
狀態下的服務工作數目下限。這是desiredCount
四捨五入到最接近整數的百分比。此參數可讓您在不使用額外叢集容量的情況下進行部署。 -
maximumPercent
:百分之二十 (預設值)部署期間,
RUNNING
或PENDING
狀態允許的服務工作數目上限。這是desiredCount
四捨五入到最接近的整數的百分比。
請考慮下列有六個 tan 工作的服務,部署在叢集中,總共有八個工作的空間。預設的 Amazon ECS 服務組態選項不允許部署低於六個所需任務的 100%。
![圖表顯示叢集中有八項工作空間的六項工作。](images/deployment-1.png)
部署程序如下:
-
目標是用藍色任務替換棕褐色任務。
-
排程器會啟動兩個新的藍色工作,因為預設設定要求有六個執行中的工作。
-
排程器會停止其中兩個 tan 工作,因為總共會有六個工作 (四個 tan 和兩個藍色)。
-
排程器會啟動兩個額外的藍色工作。
-
排程器會關閉兩個 tan 工作。
-
排程器會啟動兩個額外的藍色工作。
-
排程器會關閉最後兩個 tan 工作。
在上述範例中,如果您使用選項的預設值,則每個啟動的新工作都需要等待 2.5 分鐘。此外,負載平衡器可能需要等待 5 分鐘才能停止舊工作。
您可以將minimumHealthyPercent
值設定為 50% 來加速部署。
請考慮下列有六個 tan 工作的服務,部署在叢集中,總共有八個工作的空間。
![圖表顯示叢集中的六項工作,其中有八項工作的空間,其minimumHealthyPercent值為 50%。](images/deployment-2.png)
部署程序如下:
-
目標是用藍色任務替換棕褐色任務。
-
排程器會停止三個 TAN 工作。仍然有三個棕褐色任務正在運行,這些任務符合該
minimumHealthyPercent
值。 -
排程器會啟動五個藍色工作。
-
排程器會停止剩餘的三個 TAN 工作。
-
排程器會啟動最後的藍色工作。
您也可以新增額外的可用空間,以便執行其他工作。
![圖表顯示叢集中有八項工作空間的六項工作。](images/deployment-3.png)
部署程序如下:
-
目標是用藍色任務替換棕褐色任務。
-
排程器會停止三個棕褐色工作
-
調度程序啟動六個藍色任務
-
排程器會停止三個 TAN 工作。
當您的任務閒置一段時間且沒有高使用率時,請使用以下 Amazon ECS 服務組態選項的值。
-
minimumHealthyPercent
:50% -
maximumPercent
: 二百分之二十