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