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