[英]Deploying new docker image with AWS ECS
我有一個ECS集群,其中包含正在運行我定義的任務的服務。 這只是一個簡單的Flask服務器,因為我正在學習如何使用ECS。 現在,我試圖了解如何更新我的應用程序並使其無縫部署。
Hello, World! (rev=1)
Hello, World! (rev=1)
。 app.py
以說“ Hello, World! (rev=2)
Hello, World! (rev=2)
image_name:latest
,因此我可以簡單地更新服務並使用以下命令強制進行新部署: aws ecs update-service --force-new-deployment --cluster hello-cluster --service hello-service
(rev=1)
然后(rev=2)
不會失敗(循環,不是隨機的)。 Hello, World! (rev=2)
Hello, World! (rev=2)
這里發生了什么? 這是在ECS中更新應用程序的正確方法嗎?
這是正常行為,它與您配置最小和最大健康百分比的方式有關。
至少100%的正常運行狀況百分比表示,每時每刻必須至少運行1個任務(對於應該運行1個任務實例的服務)。 最高健康百分比為200%表示您不允許同時運行2個以上的任務(同樣,對於應運行1個任務實例的服務)。 這意味着,在服務更新期間,ECS將首先啟動一項新任務(達到最大200%並避免低於100%),並且當此新任務被認為正常時,它將刪除舊任務(恢復為100%)。 這解釋了為什么兩個任務在短時間內同時運行(並且負載均衡)的原因。
這種配置可確保最大的可用性。 如果要避免這種情況,並且可以減少停機時間,可以將最小值設置為0%,將最大值設置為100%。
關於您的EC2實例:它們代表您的“集群” =您的服務用來啟動任務的硬件。 上述過程在此“固定”硬件上發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.