Amazon ECS 服務參數的最佳實踐 - Amazon Elastic Container Service

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

Amazon ECS 服務參數的最佳實踐

為了確保沒有應用程式停機時間,部署程序如下:

  1. 啟動新的應用程式容器,同時保持現有容器執行。

  2. 檢查新容器是否健康。

  3. 停止舊的容器。

根據您的部署配置以及叢集中未保留的可用空間量,可能需要多輪次才能完成以新任務取代所有舊任務。

您可以使用兩個服務組態選項來修改號碼:

  • minimumHealthyPercent:100% (預設值)

    部署期間必須保持在RUNNING狀態下的服務工作數目下限。這是desiredCount四捨五入到最接近整數的百分比。此參數可讓您在不使用額外叢集容量的情況下進行部署。

  • maximumPercent: 200% (預設值)

    部署期間,RUNNINGPENDING狀態允許的服務工作數目上限。這是desiredCount四捨五入到最接近的整數的百分比。

範例:預設組態選項

請考慮下列有六項工作的服務,部署在叢集中,總共有八項工作的空間。預設服務設定選項不允許部署低於六個所需工作的 100%。

部署程序如下:

  1. 目標是替換六個任務。

  2. 排程器會啟動兩項新工作,因為預設設定要求有六個執行中的工作。

    現在有六個現有任務和兩個新任務。

  3. 排程器會停止兩個現有工作。

    現在有四個現有任務和兩個新任務。

  4. 排程器會啟動另外兩項新工作。

    現在有四個現有任務和四個新任務。

  5. 排程器會關閉兩個現有工作。

    現在有兩個現有任務和四個新任務。

  6. 排程器會啟動另外兩項新工作。

    現在有兩個現有任務和六個新任務

  7. 排程器會關閉最後兩個現有工作。

    現在有六個新任務。

在上述範例中,如果您使用選項的預設值,則每個啟動的新工作都需要等待 2.5 分鐘。此外,負載平衡器可能需要等待 5 分鐘才能停止舊工作。

範例:修改 minimumHealthyPercent

您可以將minimumHealthyPercent值設定為 50% 來加速部署。

請考慮下列有六項工作的服務,部署在叢集中,總共有八項工作的空間。部署程序如下:

  1. 目標是取代六個任務。

  2. 排程器會停止三個現有工作。

    仍有三個符合該minimumHealthyPercent值的現有任務正在運行。

  3. 排程器會啟動五項新工作。

    有三個現有的任務任務和五個新任務。

  4. 排程器會停止剩餘的三個現有工作。

    有五個新任務

  5. 排程器會啟動最後的新工作。

    有六個新任務。

範例:修改叢集可用空間

您也可以新增額外的可用空間,以便執行其他工作。

考慮下面的服務有六個任務,部署在具有十個任務總空間的集群中。部署程序如下:

  1. 我們的目標是替換現有的任務。

  2. 調度程序停止三個現有任務,

    有三個現有的任務。

  3. 排程器會啟動六項新工作。

    有三個現有任務和六個新任務

  4. 排程器會停止三個現有工作。

    有六個新任務。

建議

當您的工作閒置一段時間且沒有高使用率時,請使用下列服務組態選項值。

  • minimumHealthyPercent:50%

  • maximumPercent: 二百分之二十